动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.ORACLE SQL性能优化系列(九).
.详细讲解ORA-04030的产生原因及解.
.ORACLE SQL性能优化系列(八).
.Oracle 8i概述.
.用orabm测试oracle服务器的TPS值.
.Linux 档案属性与目录配置.
.Oracle数据库系统使用经验六则简.
.Oracle数据库软件包远程溢出漏洞.
.在Linux系统下优化Oracle具体步骤.
.如何使用exp以传输表空间的方式将.
.回滚段头重要的数据结构Control .
.about kernel exploit.
.用裸设备扩数据库表空间专题.
.使用快速失败转移还是灾难保护.
.在ORACLE里用存储过程定期分割表.
.案例学习Oracle错误:ORA-00054.
.如何使用Oracle case函数.
.Oracle中优化SQL的原则.
.理解NULL是如何影响IN和EXITS语句.
.分区和簇.

全面解读 startx

发表日期:2008-2-9 |



  总览:
  startx 只是xinit的一个前端工具,它所做的只是设置好一些变量,资源。然后再用xinit 启动X window.
  xinit的命令格式:
  xinit [ [client] clientargs] [-- [server] [display] serverargs]
  startx所做的工作:
  一.获取命令行参数
  1.client段
  clientargs:
  完全从命令行中获取,无默认值
  client:
  假如没有指定,但是已经指定clientargs,则使用/usr/X11R6/bin/xterm
  假如没有指定,且没有指定clientargs,则使用./defaultclientargs,即按以下顺序取值:
  $HOME/.xinitrc -> /usr/X11R6/lib/X11/xinit/xinitrc
  /usr/X11R6/lib/X11/xinit/xinitrc其实就是执行/etc/X11/Xsessions这个脚本
  而/etc/X11/Xsession又会检查$HOME/.xsession,假如存在则把它作为client.
  所以假如$HOME/.xinitrc不存在时,它可以使用$HOME/.xsession;而当$HOME/.xinitrc存在
  时,它并不会使用$HOME/.xsession
  2.server段
  跟client类似
  增加一个display的设置,默认为":0"
  二.设置标志认证
  三.通过xinit启动X
  四.关闭X时,进行一些收尾工作。
  对xinit来说,假如没有指定client,则使用$HOME/.xinitrc,假如这个也不存在则使用xterm;假如没有指定server,则使用$HOME/.xserverc,假如这这个不存在的话则使用X :0。
  所以当由startx启动X时
  client的顺序是: 命令行 -> $HOME/.xinitrc -> $HOME/.xsession -> /usr/X11R6/lib/X11/xinit/xinitrc
  server的顺序是: 命令行 -> $HOME/.xserverrc -> /usr/X11R6/lib/X11/xinit/xserverrc
  以上"->"表示:当前一个不存在时,则取下面一个,直到存在。
  源码:--------------------------------------------------------------------------------
  #!/bin/sh
  # $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld EXP $
  #
  # This is just a sample implementation of a slightly less primitive
  # interface than xinit. It looks for user .xinitrc and .xserverrc
  # files, then system xinitrc and xserverrc files, else lets xinit choose
  # its default. The system xinitrc should probably do things like check
  # for .Xresources files and merge them in, startup up a window manager,
  # and pop a clock and serveral xterms.
  #
  # Site administrators are STRONGLY urged to write nicer versions.
  #
  # $XFree86: xc/programs/xinit/startx.cpp,v 3.12.2.2 2002/01/28 18:27:34 tsi Exp $
  #注重:xinit 的参数格式:
  #xinit $client $clientargs -- $server $display $serverargs
  #各个参数的特点:
  #client必须是以"/"或者"./"开头。因为client其实就是一个程序,所以他是由路径来指出
  的
  #第一个clientargs不能是以"/"或者"./"开头的。
  #对于server跟serverargs的区别也是类似的。
  #而display跟serverargs的区别
  #display是第一个以":??"(??代表两个数字)开头的字符串。
  userclientrc=$HOME/.xinitrc
  userserverrc=$HOME/.xserverrc
  sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
  sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
  defaultclient=/usr/X11R6/bin/xterm
  defaultserver=/usr/X11R6/bin/X
  defaultclientargs=""
  defaultserverargs=""
  clientargs=""
  serverargs=""
  #===================参数配置文件================
  if [ -f $userclientrc ]; then
   defaultclientargs=$userclientrc
  elif [ -f $sysclientrc ]; then
  defaultclientargs=$sysclientrc
  fi
  if [ -f $userserverrc ]; then
  defaultserverargs=$userserverrc
  elif [ -f $sysserverrc ]; then
  defaultserverargs=$sysserverrc
  fi
  #接收命令行参数
  whoseargs="client"
  #谁的参数--之前是client的参数,--之后是server的参数。

  while [ x"$1" != x ]; do
  case "$1" in
   # '' required to prevent cpp from treating "/*" as a C comment.
   /''*\./''*)
  #这个参数是以"/"或者"./"开头
   if [ "$whoseargs" = "client" ]; then
   if [ x"$clientargs" = x ]; then
   # 假如clientargs为空,说明这个参数是从命令行传入的第一个参数
   # 故它应该是client
   client="$1"
   else
   clientargs="$clientargs $1"
   fi
   else
   if [ x"$serverargs" = x ]; then
   #为什么这里不用display是否为空来判定呢?
   #因为display可以省略,这时则不能正确判定了。
   server="$1"
   else
   serverargs="$serverargs $1"
   fi
   fi
   ;;
   --)
   whoseargs="server"
   ;;
   *)
   if [ "$whoseargs" = "client" ]; then
   clientargs="$clientargs $1"
   else
   # display must be the FIRST server argument
   if [ x"$serverargs" = x ] && expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
  #假如serverargs为空,并且$1是以":"跟数字组成,即为display参数。
   display="$1"
   else
   serverargs="$serverargs $1"
   fi
   fi
   ;;
   esac
   shift
  done
  #命令行参数接收完毕。
  # process client arguments
  if [ x"$client" = x ]; then
   # if no client arguments either, use rc file instead
   if [ x"$clientargs" = x ]; then
  client="$defaultclientargs"
   else
   client=$defaultclient
   fi
  fi
  # process server arguments
  if [ x"$server" = x ]; then
   # if no server arguments or display either, use rc file instead
   if [ x"$serverargs" = x -a x"$display" = x ]; then
   server="$defaultserverargs"
   else
   server=$defaultserver
   fi
  fi
  if [ x"$XAUTHORITY" = x ]; then
  XAUTHORITY=$HOME/.Xauthority
   export XAUTHORITY
  fi
  removelist=
  # set up default Xauth info for this machine
  # check for GNU hostname
  if hostname --version > /dev/null 2>&1; then
   if [ -z "`hostname --version 2>&1 grep GNU`" ]; then
   hostname=`hostname -f`
   #long hostname
   fi
  fi
  
  if [ -z "$hostname" ]; then
   hostname=`hostname`
  fi
  #以上是设置hostname
  #添加X标记认证。
  authdisplay=${display:-:0}
  #设置要验证的显示,假如display已经设置则取display的值;
  #假如display没有设置,则取:0
  mcookie=`mcookie`
  for displayname in $authdisplay $hostname$authdisplay; do
   if ! xauth list "$displayname" grep "$displayname " >/dev/null 2>&1; then
   #没有xauth认证,需要添加。
   xauth add $displayname . $mcookie
   removelist="$displayname $removelist"
   fi
  done
  #启动X window
  xinit $client $clientargs -- $server $display $serverargs
  #关闭X window时
  if [ x"$removelist" != x ]; then
  #删除标记认证
   xauth remove $removelist
  fi
  #释放不用的虚拟终端所占用的资源
  if command -v deallocvt > /dev/null 2>&1; then
   deallocvt
  fi
  由于本人对X机制也不是很了解,所以错误在所难免,欢迎大家指正。

  有关xauth部分,请参阅:http://thunder.prohosting.com/~bric...1/Xsafe.htm#5.1
上一篇:stty使用方法 人气:601
下一篇:linux日志管理(一) 人气:725
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-6 Menalto Gallery v2.3 Rc2 多国语
2008-10-6 花香盈路(Hxcms) v9.0
2008-10-6 华军软件下载系统 v1.5
2008-10-6 e107 v0.7.13
2008-10-6 (开源PHP框架) CodeIgniter v1.6
2008-10-6 PHP在线考试系统PPExam v1.2.6 b
2008-10-6 SiteDynamic企业网站管理系统 v1
2008-10-6 WebPlayer9 P2P视频点播电影整站
2008-10-6 BCMS v1.1 测试版
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成