SCO UNIX基本命令

2004-9-21 13:14小李哥
第一章 目录及文件操作

1.1 ls
[语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]
[说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。
  -R 递归地列出每个子目录的内容
  -a 列出所有文件,包括第一个字符为“.”的隐藏文件
  -d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连用以显示目录状态。
  -C 输出时多列显示
  -x 横向按字符顺序排列
  -m 输出按流式格式横向排列,文件名之间用逗号(,)分隔
  -l 长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:文件存取模式 链接数 文件主 文件组 文件字节数 上次修改时间其中文件存取模式用10个字母表示,从左至右的意义如下:
  第一个字母表示文件种类,可以是以下几种情况:
    d 为目录文件
    l 为链接
    b 为块文件
    c 为字符型文件
    p 为命名管道(FIFO)
    - 为普通文件
  后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w 表示可写,x 表示可执行。如果是设备文件,则在文件字节数处显示:主设备 从设备。
  -n 与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字 (即GID)表示
  -o 与-l选项相同,只是不显示文件组
  -g 与-l选项相同,只是不显示文件属主
  -r 逆序排列
  -t 按时间顺序排列而非按名字
  -u 显示时间时使用上次访问时间而非上次修改时间
  -c 显示时间时使用上次修改i节点时间而非上次修改时间
  -p 若所列文件是目录文件,则在其后显示斜杠(/)
  -F 在目录文件后加’/’,在可执行文件后加’*’
  -b 文件名中若有非打印字符,则用八进制显示该字符
  -q 文件名中的不可打印字符用’?’表示
  -i 显示节点号
  -s 显示文件长度时使用块长度而非字节长度
  -f 将后面的参数解释为目录并列出其中的每一项
  -1 每行仅列一项
  [例子]:
  ls 列出当前目录下的文件
  ls -al /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件

1.2 pwd
[语法]: pwd
[说明]: 本命令用于显示当前的工作目录
[例子]:
  pwd 显示出当前的工作目录

1.3 cd
[语法]: cd [目录]
[说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。
[例子]:
  cd 回到注册进入时的目录
  cd /tmp 进入 /tmp 目录
  cd ../ 进入上级目录


1.4 mkdir
[语法]: mkdir [-m 模式] [-p] 目录名
[说明]: 本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID
-m 按指定存取模式建立目录
-p 建立目录时建立其所有不存在的父目录
[例子]:
  mkdir tmp 在当前目录下建立子目录 tmp
  mkdir -m 777 /tmp/abc 用所有用户可读可写可执行的存取模式
  建立目录 /tmp/aaa (存取模式参看命令 chmod)
  mkdir -p /tmp/a/b/c 建立目录 /tmp/a/b/c ,若不存在目录 /tmp/a
及/tmp/a/b 则建立之


1.5 rmdir
[语法]: rmdir [-p] [-s] 目录名
[说明]: 本命令用于删除目录
-p 删除所有已经为空的父目录
-s 当使用-p 选项时,出现错误不提示
[例子]:
  rmdir /tmp/abc 删除目录 /tmp/abc
  rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b及/tmp/a 空,则删除


1.6 cat
[语法]: cat [-u] [-s] [-v[-t] [-e]] 文件...
[说明]: 显示和连接一个或多个文件至标准输出
  -u 无缓冲的输出(缺省为有缓冲输出)
  -s 对不存在的文件不作提示
  -v 显示出文件中的非打印字符,控制字符显示成^n ,n为八进制数字,其他非打印字符显示成M-x,x为该字符低7位的8进制数值
  -t 在使用-v 选项时,将制表符(tab) 显示成 ^I,将换页符(formfeed)显示成 ^ L
  -e 在使用-v 选项时,在每一行的行尾显示 $
[例子]:
  cat file 显示文件
  cat -s -v -e file1 file2 file3 逐个显示文件 file1 file2 file3


1.7 head
[语法]: head [-n] [文件 ...]
[说明]: 将文件的头n 行显示输出,缺省值为 10 行,显示多个文件时,请按序列出文件名
[例子]:
 head -9999 file1 file2 显示文件 file1 和 file2 的头 9999 行


1.8 more
[语法]: more [-cdflrsuw] [- 行数] [+ 行数] [+ / 模式 ] [ 文件 ... ]
[说明]: 将文件显示在终端上,每次一屏,在左下部显示 --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more 命令中的子命令。
  -c 显示文件之前先清屏
  -d 当输错命令时显示错误信息而不是响铃(bell)
  -f 不折叠显示长的行
  -l 不将分页控制符(CTRL+D)当作页结束
  -r 一般情况下,more 不显示控制符,本选项使more 显示控制符,例如,将 (CTRL+C) 显示成 ^ C
  -s 将多个空行转换成一个空行显示
  -u 禁止产生下划线序列
  -w 一般情况下 more 显示完后立即推出,本选项在显示完后作提示,敲任意键后推出
  -n 行数 指定每屏显示的行数
   + 行号 从指定行号开始显示
  +/ 模式 在文件中搜索指定模式,从模式出现行的上两行开始显示。文件未显示完时,可以使用more 命令中的子命令,命令中除了! 和 / 以外均不回显,也不用敲回车,当命令破坏 more 提示行时,可用退格键恢复提示行。在以下子命令操作中,i 表示数字,缺省值为 1。
    i 空格  上滚一屏多 i 行
    i 回车  上滚 i 行
    i CTRL+D i 缺省时上滚 11 行,否则上滚 i 行
    id    i 缺省时上滚 11 行,否则上滚 i 行
    iz    i 缺省时上滚一屏,否则定义每屏为 i 行
    is    跳过 i 行后显示一屏
    if    跳过 i 屏后显示一屏
    i CTRL+B 跳回 i 屏后显示一屏
    b     跳回一屏后显示一屏
    q 或 Q  退出 more

  = 显示当前行号
  v 从当前行开始编辑当前文件编辑器由环境变量$EDITOR定义
  h 显示帮助信息
  i /模式向前搜索,直至模式的第 i 次出现 , 从该行的上两行开始显示一屏
    in 向前搜索,直至上一模式的第 i 次出现 , 从该行 的上两行开始显示一屏
    单引号 回到上次搜索的出发点,若无搜索则回到开始位置
    !   激活一个sh 去执行指定的命令
    :i   跳到后面第 i 个文件,若不存在则跳到最后一个文件
    :f   显示当前文件名和行号
   :q 或:Q 推出 more
   . (点) 重复上次命令

[ 例子]:
  more -c +50 file 清屏后,从第50行开始显示文件 file
  more -s -w file1 file2 file3 显示文件 file1 file2 file3


1.9 cp
[语法]: cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标
[说明]: 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名,若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
  -i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
  -p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表,但不拷贝UID 及 GID
  -r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录
[例子]:
  cp file1 file2 将文件 file1 拷贝到文件 file2
  cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
  cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp


1.10 mv
[语法]: mv [-f] [-i] 文件1 [文件2...] 目标
[说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
  - i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
  - f 覆盖前不作任何提示
[例子]:
  mv file1 file2 将文件 file1 改名为 file2
  mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下


1.11 rm
[语法]: rm [-f] [-i] 文件...
或 rm -r [-f] [-i] 目录名... [文件]
[说明]: 用来删除文件或目录
 - f 删除文件时不作提示
 - r 递归地删除目录及其所有子目录
 - i 删除文件之前先作提示
[例子]:
  rm file1 删除文件 file1
  rm -i /tmp/* 删除目录 /tmp 下的所有文件
  rm -r /mytmp 递归地删除目录 /mytmp


1.12 chmod
[语法]: chmod [-R] 模式 文件... 或 chmod [ugoa] {+|-|=} [rwxst] 文件...
[说明]: 改变文件的存取模式,存取模式可表示为数字或符号串,例如:
chmod nnnn file , n为0-7的数字,意义如下:
  4000 运行时可改变UID
  2000 运行时可改变GID
  1000 置粘着位
  0400 文件主可读
  0200 文件主可写
  0100 文件主可执行
  0040 同组用户可读
  0020 同组用户可写
  0010 同组用户可执行
  0004 其他用户可读
  0002 其他用户可写
  0001 其他用户可执行
nnnn 就是上列数字相加得到的,例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。
  -R 递归地改变所有子目录下所有文件的存取模式
  u 文件主
  g 同组用户
  o 其他用户
  a 所有用户
  + 增加后列权限
  - 取消后列权限
  = 置成后列权限
  r 可读
  w 可写
  x 可执行
  s 运行时可置UID
  t 运行时可置GID
[例子]:
  chmod 0666 file1 file2 将文件 file1 及 file2 置为所有用户可读可写
  chmod u+x file 对文件 file 增加文件主可执行权限
  chmod o-rwx 对文件file 取消其他用户的所有权限


1.13 chown
[语法]: chown [-R] 文件主 文件...
[说明]: 文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。
-R 递归地改变所有子目录下所有文件的存取模式
[例子]:
  chown mary file 将文件 file 的文件主改为 mary
  chown 150 file 将文件 file 的UID改为150


1.14 chgrp
[语法]: chgrp [-R] 文件组 文件...
[说明]: 文件的GID表示文件的文件组,文件组可用数字表示, 也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。
  -R 递归地改变所有子目录下所有文件的存取模式
[例子]:
  chgrp group file 将文件 file 的文件组改为 group


1.15 cmp
[语法]: cmp [-l] [-s] 文件1 文件2
[说明]: 比较两个文件,若文件1 为 "-" ,则使用标准输入, 两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。
  -l 显示每个不同处的字节数(10进制)和不同的字节(8进制)
  -s 不作任何提示,只返回码
[例子]:
  cmp file1 file2 比较文件 file1 和 file2
  cmp -l file1 file2 比较文件file1 和 file2 的每处不同

1.16 diff
[语法]: diff [-be] 文件1 文件2
[说明]: 本命令比较两个文本文件,将不同的行列出来
  -b 将一串空格或TAB转换成一个空格或TAB
  -e 生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2
[例子]:
  diff file1 file2
  diff -b file1 file2
  diff -e file1 file2 >edscript


1.17 wc
[语法]: wc [-lwc] 文件...
[说明]: 统计文件的行、字、字符数,若无指定文件,则统计标准输入
  -l 只统计行数
  -w 只统计字数
  -c 只统计字符数
[例子]:
  wc -l file1 file2 统计文件file1和file2 的行数


1.18 split
[语法]: split [-n] [ 文件 [名字]]
[说明]: split 将指定大文件分解为若干个小文件,每个文件长度为n行(n 缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入
[例子]:
   split -500 largefile little
   将文件largefile 每500行写入一个文件,第一个文件名为littleaa


1.19 touch

[语法]: touch [-amc] [mmddhhmm[yy]] 文件...
[说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。
  -a 只改变访问时间
  -m 只改变修改时间
  -c 若文件不存在,不创建它且不作提示
mmddhhmm[yy] 两位表示 月日时分[年]
[例子]:
  touch file
  更新文件file的时间
  touch 0701000097 HongKong
  将文件HongKong的时间改为97年7月1日0时0分


1.20 file
[语法]: file [-f 文件名文件] 文件...
[说明]: file 对指定文件进行测试,尽量猜测出文件类型并显示出来
  -f 文件名文件 文件名文件是一个包含了文件名的文本文件, -f 选项测试
文件名文件中所列出的文件
[例子]:
  file * 显示当前目录下所有文件的类型


1.21 pack
[语法]: pack 文件...
[说明]: pack 将指定文件转储为压缩格式,文件名后加 ".z ", 文件存取模式,访问时间,修改时间等均不变
[例子]:
  pack largefile 将largefile 压缩后转储为largefile.z


1.22 pcat 显示压缩文件
[语法]: pcat 文件...
[说明]: pcat 显示输出压缩文件
[例子]:
  pcat largefile.z 显示压缩前的largefile
  pcat largefile.z > oldfile 显示压缩前的laregfile,并将其重定向到文件oldfile中


1.23 unpack
[语法]: unpack 文件...
[说明]: 将压缩后的文件解压后转储为压缩前的格式
[例子]:
  unpack largefile.z 将压缩文件largefile.z解压后转储为largefile


1.24 find
[语法]: find 路径名... 表达式
[说明]: find 命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下 n 代表一个十进制整数,+n 代表打印 n , -n 代表小于 n ,下面是合法表达式说明:
  -name 模式 文件名与模式匹配则为真,(/ 为转意符)
  -perm [-]八进制数 文件存取模式与八进制数相同则为真若有- 选项,则文件存取模式含有八进制数规定模式即为真
  -size n[c] 文件块长度为 n 则真(一块为512字节),若有c 选项,则文件字节长度为 n 则真
  -atime n 若文件的最近访问时间为 n 天前则为真。
find 命令将改变其访问的目录的访问时间
  -mtime n 若文件的最近修改时间为 n 天前则为真
  -ctime n 若文件状态为 n 天前改变则为真
  -exec 命令 { }/; 若命令返回值为0则真,{ }内为命令参数,此命令必须以 /; 为结束
  -ok 命令 { }/; 与 exec 相同,只是在命令执行前先提示,若回答 y 则执行命令
  -print 显示输出使表达式为真的文件名
  -newer 文件 若文件的访问时间比newer 指定的文件新则真
  -depth 先下降到搜索目录的子目录,然后才至其自身
  -mount 仅查找包含指定目录的文件系统
  -local 文件在当前文件系统时为真
  -type c 文件类型为 c 则真,c 取值可为 b(块文件) c (字符文件) d(目录) l (符号链接) p (命名管道) f (普通文件)
  /( 表达式 /) 表达式为真则真
  -links n 文件链接数为 n 时为真
  -user 用户 当文件属于用户时为真,用户可用数字表示UID
  -nouser 当文件不属于 /etc/passwd 中的一个用户时为真
  -group 文件组 当文件属于文件组时为真,文件组可用数字表示GID
  -nogroup 当文件不属于 /etc/group 中的一个组时为真
  -fstype 类型 当文件所属文件系统类型为指定类型时真
  -inum n 当文件 i 节点号为 n 时为真
  -prune 当目录名与模式匹配时,不再搜索其子目录
  可以用逻辑操作符将简单表达式连接成复杂表达式。逻辑操作符有 ! 表示非操作, -o 表示或操作,两个表达式并列则表示与操作
[例子]:
  find / -name find* -print
  从根目录开始搜索文件名如 find* 的文件并显示之
  find ./ -exec sleep{1}/; -print
  每秒显示一个当前目录下的文件
  find $HOME /(-name a.out -o -name '*.o' /) -atime +7 -exec rm {} /;
  从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件


1.25 grep
[语法]: grep [选项] 模式 [文件...]
[说明]: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(') 中,若指定文件为缺省,则使用标准输入,正规表达式可以是:
  . 匹配任意一个字符
  * 匹配0个或多个*前的字符
  ^ 匹配行开头
  $ 匹配行结尾
  [] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,例如[a-z]表示字母a 至z 中的任意一个
  / 转意字符
命令中的选项为:
  -b 显示块号
  -c 仅显示各指定文件中包含模式的总行数
  -i 模式中字母不区分大小写
  -h 不将包含模式的文件名显示在该行上
  -l 仅显示包含模式的文件名
  -n 显示模式所在行的行号
  -s 指定文件若不存在或不可读,不提示错误信息
  -v 显示所有不包含模式的行
[例子]:
  grep 'good' * 在所有文件中搜索含有字符串 good 的行
  grep '^myline' mytext 在文件mytext中搜索行首出现myline字符串的行

第二章 设备管理

2.1 stty
[语法]: stty [-a] [-g] [选项]
[说明]: 本命令设置终端,无参数时报告终端设置,本命令功能十分强大,应谨慎使用,下面仅介绍部分常用功能
  -a 显示当前终端所有设置
  -g 以能作为 stty 命令参数的方式显示终端设置
以下是终端常用设置,在设置前加-表示清除设置:
(1).控制方式
  ispeed 0 110 300 600 1200 1800 2400 4800 9600 19200 38400
  本命令设置终端输入波特率,若为0则使用缺省波特率。
  例如 stty ispeed 9600
  ospeed 0 110 300 600 1200 1800 2400 4800 9600 19200 38400
  本命令设置终端输出波特率,参看 ispeed。
(2).输入方式
  ingbrk(-ignbrk) 忽略(不忽略)中断(BREAK)
  brkint(-brkint) 设置(清除)信号INTR为中断信号
  inlcr(-inlcr) 将换行转换(不转换)成回车
  icrnl( -icrnl) 将回车转换(不转换)成换行
  igncr(-ignrc) 忽略(不忽略)回车
  iuclc( -iuclc) 将大写字母转换(不转换)成小写字母
(3).输出方式
  olcut(-olcut) 将小写字母转换(不转换)为大写字母
  onlcr(-onlcr) 输出时将换行符转换(不转换)为回车换行
  ocrnl(-ocrnl) 输出时将回车符转换(不转换)为换行符
(4).本地方式
  echo (-echo) 设置(清除)回显
  stwrap(-stwrap) 截断(不截断)大于79个字符的行
  echoctl(-echoctr) 将控制键回显为^

2.2 tty
[语法]: tty
[说明]: 显示出终端的设备名
[例子]:tty

2.3 lp
[语法]: lp 文件...
[说明]: 将文件送打印机打印
[例子]: lp myfile 将文件myfile 送打印机输出

2.4 lpstat
[语法]: lpstat [选项] [打印任务号]
[说明]: 显示打印机状态,选项的意义如下:
  -a [打印机表] 显示打印机表中指定的打印机可否接收打印请求
  -c [打印机类名] 显示打印机种类及在该打印机种类下的成员
  -d 显示系统预设的打印机
  -p [打印机表] 显示打印机表中打印机状态
  -r 显示lp 请求程序表( lp request scheduler)
  -s 打印系统统计表
  -t 打印所有状态信息
  -u [用户] 显示由用户发出的打印请求
  -v [打印机名表] 显示每个打印机名称,是对应于该打印机设备文件的路径名
[例子]:
lpstat -t 打印所有状态信息

2.5 cancel
[语法]: cancel 打印任务号
cancel 打印机名
cancel -u 用户名 [打印机]
[说明]: 本命令可按打印机名,打印任务,用户来取消打印任务
[例子]: cancel -u mary 取消用户 mary 的所有打印请求

2.6 enable
[语法]: enable 打印机表
[说明]: 本命令可激活一个或多个打印机

2.7 disable
[语法]: disable [-cw] 打印机表
[说明]: 使一个或多个打印机不能打印
  -c 立即取消正在打印的打印请求
  -w 等正在打印的内容打完后,才禁止打印机

2.8 sync
[语法]: sync
[说明]: 将磁盘缓冲区内容写回磁盘

2.9 mount
[语法]: mount [-r] 设备 目录
[说明]: 将设备安装到目录下
  -r 以只读方式安装

2.10 umount
[语法]: umount 设备
[说明]: 将已安装的文件系统卸下

2.11 tar
[语法]: tar -c[vwfbL] [设备] [块] 文件...
  tar -r[vwfbL] [设备] [块] 文件...
  tar -t[vfL] [设备] [文件...]
  tar -u[vwfbL] [设备] [块] 文件...
  tar -x[lmovwfL] [设备] [文件...]
[说明]: 将多个文件归档,命令中各参数的意义为:
  r 附加方式归档
  x 抽取文件
  t 显示文件
  u 附加方式归档,同时删除旧版文件
  c 建立新档案文件
  v 显示所处理的文件名
  w 处理文件前,要求用户确认
  f 文件名 使用指定文件名作为档案文件
  bn 每次读写 n 块,缺省值为1,最大值为20
  m 将新的文件修改时间设为获取时的时间
  o 获取出来的文件以下达tar指令的UID和GID存储
[例子]:
  tar cvf file.tar *
  tar tvf file.tar

2.12 df
[语法]: df [-t] [文件系统]
[说明]: 显示剩余 i 节点和块数,使用 -t 选项,还显示总块数和 i 节点数
[例子]: df -t

2.13 du
[语法]: du [-ars] [目录]
[说明]: 显示磁盘空间专用情况
  -r 提供无法打开的文件信息
  -s 仅显示指定目录所占空间的总和
  -a 显示文件大小及目录总空间,其后可根文件名作参数

第三章 进程管理

3.1 sleep
[语法]: sleep 时间
[说明]: 挂起参数指定的秒数

3.2 ps
[语法]: ps [ -efl] [ -t 终端表] [ -u 用户表] [ -g 组表]
[说明]: 显示出有关进程的状态
  -e 显示出现在正在运行的所有进程
  -f 显示所有信息
  -l 产生一个长列表
  -t 显示指定终端进程
  -u 显示指定用户进程
  -g 显示指定组进程


3.3 at
[语法]: at [-f 命令文件] [-m] [-q 队列] -t 时间
[说明]: at命令由cron管理,在未来一个指定的时间内执行一组命令,命令可以从指定文件读入,也可从键盘读入,从键盘读入时以EOF结束,(通常为CTRL D)
  -f 从指定命令文件中读入命令
  -m 命令执行完后给用户发邮件
  -q 将命令放入指定队列
  -t 指定时间 指定的时间格式为 [[CC]YY]MMDDhhmm[.ss],CC表示年的前两位,YY表示年的后两位,MM表示月,DD表示日,hh表示时,mm表示分,ss表示秒


3.4 kill
[语法]: kill -信号 进程号
[说明]: kill 将信号传递给指定进程,信号意义如下:
  1 暂停(hangup)
  2 中断(interrupt)
  3 退出(quit)
  4 非法指令(illeqgal instruction)
  5 跟踪中断(trace trap)
  6 Abort
  7 EMT 指令(Emulation trap)
  8 浮点格式异常(floating point exception)
  9 kill(不可忽略)
  10 通道错误(bus error)
  11 不合法内存段
  12 错误的系统调用参数
  13 写入不可读的连通管道
  14 alarm clock
  15 软件结束信号
  16 用户定义信号一
  17 用户定义信号二
[例子]:
  kill -9 444 杀死进程号为 444 的进程
第四章 系统和用户管理

4.1 who
[语法]: who
who am i
[说明]: 列出现在系统中的用户,who am i 显示自己

4.2 whodo
[语法]: whodo [-h] [-l] [用户]
[说明]: 显示系统中用户及进程,若指定用户,则只列出该用户的信息
  -h 不显示头部信息
  -l 长列表格式输出

4.3 passwd
[语法]: passwd [用户]
[说明]: 修改密码,指定用户则修改指定用户密码

4.4 logname
[语法]: logname
[说明]: 取得当前用户注册名

4.5 su
[语法]: su [-] [用户名]
[说明]: su 命令使当前用户成为指定用户,若无指定,则成为超级用户,但必须输入该用户的密码,-选项表示用该用户的注册环境成为该用户

4.6 time
[语法]: time 命令
[说明]: 执行命令,并在执行完后显示其运行的时间

4.7 date
[语法]: date
date mmddhhmm[yy]
[说明]: date 无参数时用于显示系统时间,修改时间时参数形式为月日时分[年]

4.8 shutdown
[语法]: shutdown [-y] [-gn] [-in]
[说明]: UNIX 系统必须先关闭系统,再关电源-y 对提示的所有问题都回答 y
  -gn 给其他用户n 秒的时间退出,缺省值为60秒
  -in 系统退到第n种方式,方式如下:
  0 关机
  1 单用户模式
  2 多用户模式
  3 网络下的多用户模式
  6 关机并重新启动

4.9 fsck
[语法]: fsck [-y]
[说明]: 本命令用于检查和修复文件系统,当文件系统出现混乱时,可使用本命令,-y选项表示对所有提问都回答YES
第五章 通信和邮件

5.1 wall
[语法]: wall
[说明]: 向所有用户广播通知信息,常用于警告所有用户

5.2 mesg
[语法]: mesg [-n] [-y]
[说明]: mesg 用 -n 参数则禁止其他用户用 write 发消息,用 -y 参数则允许接收消息,若无参数则报告现在的状况


5.3 write
[语法]: write 用户 终端
[说明]: write 与指定的终端上的用户直接对话,直到接收到文件结束符
[例子]:write mary console


5.4 mailx
[语法]: mailx [选项] [名字]
[说明]: 本命令用于发送和接收邮件,名字是收信人的用户名,本命令有许多内部命令,选项说明如下:
  -e 检查是否有邮件,若有则返回0
  -f 文件名 从文件中读取邮件而非从邮箱中
  -H 只显示信件标题
  -s 标题 设定标题为指定标题
[命令说明]
  . 当前信件
  n 第 n 封信
  ^ 第一封未被处理的信
  $ 最后一封信
  * 所有的信
  n-m 第n 封至第m封信
  用户 由指定用户发出的信
  / 字符串 标题中包含字符串的信
  :c 满足指定类型c的信,类型可为
  d 已删除的信
  n 信传送的信
  o 旧信件
  r 已读过的信
  u 未读过的信
  p 一次显示多封信
  t 显示某封信的前若干行
  si 显示信件字符数
  h 显示信件标题
  d 删除信件
  u 恢复信件
  s [信件表] 文件名 将信件存入指定文件中
  q 退出
  r 回信
  ~e 编辑信件
  ~r 文件 从文件中读取信件
  [例子]:
  mailx mary < myletter
第六章 Shell编程

  shell 不但是 Unix 的用户交互界面,还是一门程序设计语言,系统注册进入时就会执行一个shell命令文件 .profile ,下面对shell中的常用命令作简单介绍。
  $n shell 程序命令行中的第n 个参数,n为0-9,当n 为0时表示命令名
  $# 命令行中参数的个数
  $$ 本shell 命令的进程号
  $! 最后一个后台进程的代号
  $* 所有命令行参数
  $@ 与$*相似,但其值不同
  $HOME 注册时进入的目录
  $PATH 命令的搜索目录
  $PS1 系统第一个提示符,一般为$
  $PS2 系统第二个提示符,一般为>
  shift [n] 将命令行参数往左移一位,但$0不变
  变量名=字符串 将字符串赋予变量名,以后可用$变量名引用该变量
  export 变量名表 将变量名表所列变量传递给子进程
  read 变量名表 从标准输入读字符串,传给指定变量
  echo 变量名表 将变量名表指定的变量显示到标准输出
  set 显示设置变量
  env 显示目前所有变量

  if 条件执行,语法是:
   if 条件
    then 指令
   fi

  case 分支执行,语法是:
   case 字符串变量 in
    值1) 指令...
    值2) 指令...
    ...
    esac

  while 条件为真时循环,语法是:
   while 条件
   do
    指令...
   done

  until 条件为假时循环,语法是:
   until 条件
   do
    指令...
   done

  for 变量在表中时循环,语法是:
   for 变量名 in 字组表
    do
     指令...
    done

  break 从循环中退出,语法:break n
  n 表示跳出循环的层数

  continue 继续循环,语法:continue n
  n 表示退到包含continue 语句的第n 层继续循环

  exit 退出shell
  func shell内部可定义函数,语法:
  func 函数名()
  {
   指令...
  }

  expr 将其后的串解释为表达式并计算其值,运算符前后需有空格
  trap 捕获信号,语法 trap n ,捕获信号 n (信号说明参见kill)

  test 条件测试,语法 test [选项] 参数
  选项 -f 文件 若文件存在且可读则真
  -w 文件 若文件存在且可写则真
  -x 文件 若文件存在且可执行则真
  -f 文件 若文件存在且为普通文件则真
  -d 文件 若文件存在且为目录文件则真
  -p 文件 若文件存在且为fifo文件则真
  -s 文件 若文件存在且不空则真
  -z 串 若串长度为0则真
  -n 串 若串长度不为0则真
  串 若串不是空串则真
  串1=串2 若串1等于串2则真
  串1!=串2 若串1不等于串2则真
  n1 -eq n2 若n1与n2数值相当则真
  n1 -ne n2 若n1与n2数值不相当则真
  n1 -lt n2 若n1小于n2则真
  n1 -le n2 若n1小于等于n2则真
  n1 -gt n2 若n1大于n2则真
  n1 -ge n2 若n1大于等于n2则真
  可用 与 -a 或 -o 非 ! 将条件表达式连接起来
第七章 数学计算命令

[语法]: bc [-c] [-l] [文件...]
[说明]: bc是一个交互式的高精度计算工具,采用类似于C语言的语法,能够从指定文件中读出命令执行,然后再进入交互式执行,事实上,bc是dc的预编译器,它自动激活dc,将语句经预编译后传递给dc,退出bc的命令是quit,bc中的ibase,obase,scale分别表示输入基数,输出基数,小数点右边的位数。
  -c bc 只编译,而不将编译结果送dc,将其送到标准输出上
  -l 预定义一个数学函数库,可在bc中使用以下函数
  s(x) sine
  c(x) cosine
  e(x) exponential
  l(x) log
  a(x) arctangent
  j(n,x) Bessel
[例子]:
  bc -l 进入bc
  scale=10 将小数位定为10位
  e(1) 计算e的小数点后10位
  quit 退出bc

第八章 VI命令

vi
[语法]:vi [-wn] [-R] 文件...
[说明]: vi 是一个基于行编辑器 ex 上的全屏幕编辑器,可以在vi中使用ex,ed的全部命令,vi选项中 -wn 指将编辑窗口大小置为n行,-R为将编辑的文件置为只读模式, vi工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令 a A i I o O c C s S R 可进入输入模式,在输入模式下按 ESC 键可推出输入模式,回到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符 : ,此时可使用任意ex命令,屏幕底行也用来作/ ? ! 命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi 的命令集,^ 表示(CTRL)键
  ^B 退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行
  ^D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至左边的自动缩进处
  ^E 显示屏幕底线之下的一行
  ^F 前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行
  ^G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置
  ^H(退格) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符
  ^I(TAB) 在输入模式下,产生一串空格
  ^J(LF) 光标下移一行
  ^L 刷新屏幕,即将屏幕重新显示
  ^M(回车) 在命令模式下,光标移动至下行开头在输入模式下,开辟一新行
  ^N 光标下移一行
  ^P 光标上移一行
  ^Q 在输入模式下,将其后的非打印字符作为正文插入
  ^R 刷新屏幕
  ^U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D ^U 命令有效
  ^V 在输入模式下,将其后的非打印字符作为正文插入
  ^W 在输入模式下,使光标回退一个字
  ^Y 显示屏幕底线之上的一行
  ^Z 暂停编辑,退回上层Shell
  ^[(ESC) 退出输入模式,回到命令模式
  ! 暂时退出编辑,执行Shell命令
  "(双引号) 用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文
  $ 将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动到下一行行尾
  % 将光标移动到配对的小括号()或大括号{}上去
  ( 退回句子开头
  ) 前移到句子开头
  - 退到上一行第一个非空格字符
  . 重复上一次改变缓冲区内容的命令
  / 模式 向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式,(参看 grep)
  : 在屏幕底部提示:,其后可使用ex命令
  ? 功能同 / ,但方向是向前查找
  [[ 光标回退至前一节分界处
  / 转意符
  ]] 光标前移至节分界处
  ^(不是CTRL) 光标移至当前行第一个非空字符上
  ' 连续两个''表示将光标移至其移动前的位置,'后跟字母表示光标字母标记的行首(参看 m 命令)

  A 在行尾插入正文,进入输入模式
  B 光标回退一个字
  C 替换光标后的内容
  D 删除光标后的内容
  E 光标前移到字尾
  F 字符 在当前行向左查找指定字符
  G 光标移动到其前面数字指定的行,若未指定则移动到最后一行
  H 光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字指定的行
  I 在行开头插入正文
  J 连接两行,若前面有数字则连接数字指定的行
  L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该数字指定的行
  M 光标移动到屏幕中线
  N 使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相反,其功能同 n ,但方向相反
  O 在当前行上开辟一新行
  P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文
  Q 从vi 推出进入ex命令状态
  R 替换字符串
  S 替换整行
  T 字符 向左查找字符
  U 将当前行恢复至第一次修改前的状态
  W 光标移至下一个字首
  X 删除光标前的字符
  Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有名缓冲区来保存,以后可用命令p或P将其取出
  ZZ 存盘退出vi
  a 光标后插入正文
  b 光标回退至上一个字首
  cw 替换当前字
  c) 替换当前句子
  dw 删除一个字
  dd 删除一行
  e 光标移到下一个字末
  f 字符 在当前行向前查找字符
  h 光标左移一格
  i 在光标前插入正文
  j 光标下移一行
  k 光标上移一行
  l 光标右移一格
  m 字母 用字母标记当前行,以后可用 '字母使光标移动到当前行,(参看'命令)
  n 重复上次 / 或 ? 命令
  o 在当前行下开辟一新行
  p 将用户缓冲区内容放到光标位置(参看P命令)
  r 替换当前字符
  s 用一串字符替换当前字符
  t 字符 光标移动至字符前
  u 取消上次操作
  w 光标移至下一字首
  x 删除当前字符
  yw 将当前字存入无名缓冲区,前面可加"x,表示存入名字为x的有名缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p命令取出
  yy 将当前行存入无名缓冲区,用法参看yw
  { 光标移动至前一段开头
  | 光标移至行首,若前面加数字,则移到数字指定行的行首
  } 光标移至下一段开头在:提示符下,常用命令如下:
  :w 当前文件存盘
  :w! 强制存盘
  :w 文件 将内容写入指定文件
  :w! 文件 强制写入指定文件
  :x,y w 文件 将 x至 y 行写入指定文件中
  :r 文件 将文件读到光标位置
  :r ! 命令 将系统命令的输出读到光标位置
  :q 退出编辑
  :q! 强制退出
  :x 与命令ZZ相同
  :e 文件名 编辑另一文件
  :e ! 重新编辑文件,放弃任何改变
  :sh 执行sh,结束后回到编辑
  :! 命令 执行命令后回到编辑
  :n 编辑下一文件
  :n 文件表 重新定义待编辑文件表
  :set 设置 vi 的选项,例如 set nu 表示每行前显示行号,在选项前加no则表示清除该选项,例如 set nonu 表示每行前不显示行号,下面是一些常用的选项:
  ai 自动缩进
  aw 编辑下一文件前自动存盘
  ic 查找字符串时不区分大小写
  nu 每行前显示行号
  sm 输入)及}时显示与之配对的( 或 {
  slow 插入时延迟屏幕刷新
  ws 使查找能绕过文件尾从头进行
  wa 写文件之前不作对文件的检查
附录 UNIX 常用命令简介

UNIX 命令大多数可用联机帮助手册 man 获得帮助,下面是常用命令及简单说明,可供用户快速查找使用。

命令 功能简述
  acctcom 等于进程记帐文件
  accton 启动或中止记帐进程
  adb 汇编语言调试工具
  admin 创建和管理SCCS文件
  ar 档案文件和库文件管理程序
  as 汇编器
  asa 回车控制
  at 在指定时间执行程序
  awk 模式搜索和处理语言
  banner 制作标题
  basename 生成文件基本名(无前。后缀)
  batch 命令的延迟执行
  bc 计算器
  bdiff 大型文件比较
  bfs 大文件搜索
  break 退出循环
  cal 打印日历表
  calendar 打印日历表
  cancel 取消打印任务
  case 分支语句
  cb C语言整理程序
  cd 改变当前目录
  cc C语言编译器
  cdc SCCS实用程序
  cflow 生成C语言流程图
  checkeq 数学公式排版命令
  chgrp 改变文件组
  chmod 改变文件存取模式
  chown 改变文件主
  chroot 改变根目录
  cksum 显示校验和
  clri 清除指定的I节点
  cmp 文件比较
  col 过滤反向换行
  comb SCCS实用程序
  comm 显示两个排序文件的公共行
  command 执行简单命令
  continue 进入下一循环
  cp 复制文件
  cpio 复制文件档案
  cpp C语言预处理程序
  crash 检查系统内存映象
  create 建立临时文件
  cref 生成交叉引用表
  cron 在指定时间执行一组命令
  crontab 为命令cron 准备crontab文件
  crypt 加密/解密
  csplit 将一个文件分解
  ct 远程终端注册
  ctags 创建供vi使用的标识符
  cu 呼叫另一UNIX系统
  cut 断开一文件中所选择的字段
  cxref 生成C程序交叉访问表
  date 打印和设置时间
  dc 桌面计算器
  dd 转换和复制文件
  delta SCCS实用程序
  deroff 去掉排版格式
  devnm 标识设备名
  df 显示可用磁盘空间
  diff 显示两个文件的差异
  diff3 显示三个文件的差异
  dircmp 目录比较
  dis 反汇编程序
  du 显示对磁盘的占用情况
  dump 对指定文件备份
  echo 回显指定参数
  ed 行编辑器
  edit 文本编辑器
  egrep 在文件中查找指定模式
  env 设置命令执行环境
  eqn 数学公式排版命令
  eval 执行指定命令
  ex 行编辑器
  exec 执行指定命令
  exit 进程中止
  expand 使表格占满行宽
  export 将变量传递给子程序
  expr 计算表达式值
  factor 因式分解
  false 返回FALSE
  fgrep 在文件中查找指定模式
  file 确定文件类型
  find 查找符号条件的文件
  fmt 安排简单的文本格式
  fold 折行
  for 循环语句
  fsck 文件系统检查和修复
  fsdb 文件系统调试程序
  fumount 强制性拆协指定资源
  function 函数说明
  fuser 列出使用文件的进程
  fwtmp 产生记帐记录
  get SCCS实用程序
  getconf 查找配置参数
  getopt 获得命令中的选择项
  getopts 获得命令中的选择项
  getty 设置终端类型、模式、行律等
  grep 在文件中查找指定模式
  head 打印文件的头若干行
  hexdump 按十六进制转储文件
  id 显示用户号
  if 条件语句
  init UNIX 初启进程
  install 安装一个文件到文件系统
  ipcrm 删除IPC队列
  ipcs 显示IPC状态
  join 连接两个文件(关系操作〕
  kill 中止指定进程
  killall 中止所有活动进程
  labelit 给文件系统提供标号
  ld 目标文件链接编辑器
  lex 词法分析程序
  line 读一行
  link 连接文件
  lint C程序检查程序
  ln 链接文件
  local 建立局部变量
  logger 显示注册信息
  login 注册
  logname 获取注册名
  look 在排序文件中查找某行
  lorder 查找目标库的次序关系
  lp 打印文件
  lpr 打印文件
  lpstat 显示打印队列状态
  ls 目录列表
  mail 发送或接收电子邮件
  mailx 发送、接收或处理电子邮件
  make 执行有选择的编译
  makekey 生成加密码
  man 显示命令用法
  mesg 接收或取消对话方式
  mkdir 建立目录
  mkfifo 建立FIFO文件
  mkfs 建立文件系统
  mknod 建立文件系统的I节点
  mount 安装文件系统
  mv 移动文件
  mvdir 移动目录
  ncheck 按节点号生成节点名清单
  neqn 数学公式排版命令
  newgrp 把用户加入到新组
  news 打印消息
  nice 改变命令执行优先级
  nl 给文件加行号
  nm 显示目标文件符号表
  nohup 忽略挂起或退出执行命令
  nroff 文本文件排版
  od 按八进制转储文件
  pack 压缩文件
  passwd 改变口令
  paste 文件合并
  pax 可移植档案管理程序
  pcat 显示压缩格式文件
  pg 分屏显示
  pr 按打印格式显示文件
  pstat 报告系统信息
  pwck 口令文件校验程序
  pwd 显示当前工作目录
  quot 检查文件系统所有权
  ratfor 转换成标准FORTRANC程序
  read 从标准输入读一行
  readonly 标记变量为只读
  red 文本编辑器
  regcmp 正规表达式编辑
  restor 文件系统恢复程序
  restore 文件系统恢复程序
  return 返回语句
  rev 颠倒文件中每行字符次序
  rm 删除文件
  rmdel SCCS使用程序
  rmdir 删除目录
  rsh(net) 远程SHELL
  rsh(sec) 受限SHELL
  runacct 运行日常记帐程序
  sact SCCS实用程序
  sag 打印系统活动图
  sar 报告系统活动
  sccsdiff SCCS实用程序
  sdb 符号调试器
  sdiff 并列显示两个文件的差别
  sed 流编辑器
  sendto 发送邮件
  set 设置选项或参数
  setmnt 建立文件系统安装表
  sh SHELL解释器
  shift 命令行参数移位
  shl SHELL层(layer)管理程序
  shutdown 关机
  size 显示目标文件长度
  sleep 挂起进程一段时间
  sort 文件排序和合并
  spell 拼写错误检查程序
  spellin 拼写错误检查
  spellout 拼写错误检查
  spline 按平滑曲线输出数据
  split 分解一个文件
  strings 在目标文件中寻找可打印字符
  strip 删除符号表
  stty 设置终端模式
  su 改变用户
  sum 显示文件校验和及块数
  sync 更新磁盘
  tabs 设置制表符
  tbl 表格排版
  tee 在管道上建立多通路
  tic 终端数据库编译程序
  time 打印执行命令所花时间
  tiemx 报告命令所花时间及活动
  touch 更新文件时间
  tput 恢复终端或查询数据库
  tr 转换字符
  trap 捕获信号
  troff 文本文件排版
  true 返回TRUE
  tsort 拓扑排序
  tty 显示终端设备名
  umask 设置文件掩码
  umount 拆卸文件系统
  uname 显示系统名
  unget SCCS实用程序
  uniq 删除文件中重复行
  units 度量单位转换
  unlink 删除文件
  unpack 将压缩文件还原
  until 循环语句
  update 更新磁盘
  val SCCS实用程序
  vc SCCS实用程序
  vi 全屏幕编辑器
  volcopy 文件系统的文字拷贝
  wait 等待所有字进程结束
  while 循环语句
  who 显示谁在使用系统
  whodo 显示哪些用户在做什么
  write 和另一用户直接对话
  xargs 建立参数表并执行命令
  yacc 语法分析程序生成器
2004-9-21 13:17小李哥
在SCO OpenServer 5中,用./configure或scoadmin→Hardware /Kernel Manager→Parameters可以配置系统的核心参数,这些系统可调核心参数共分为18大类,
1 Buffers Management 缓存区管理参数
2 Process and paging 进程管理参数
3 TTYS 与字符设备驱动程序相关的数据结构大小和其它限制参数
4 Name Cache 与文件名和节点号之间映射相关的Name Cache有关参数
5 AIO 异步I/O性能相关参数
6 Virtual Disks 虚拟硬盘管理和配置相关参数
7 User and group configuration 控制与单个用户或组相关的系统资源参数
8 Security 系统安全性懿问?
9 TTY and console configuration 终端相关参数
10 Filesystem configuration 不同文件系统的配置参数
11 Table limits 动态核心表相关的内存配置参数
12 Streams 字符I/O接口的配置相关参数
13 Messages queues 进程间通讯消息相关参数
14 Event queues 事件队列配置相关参数
15 Semaphores 进程间通讯信号灯相关参数
16 Shared data 进程间通讯共享相关参数
17 Miscellaneous system string buffer和kernel profiler symbol table相关参数
18 Miscellamious device drivers and hardware parameters相关参数
Buffers Management 缓存区管理参数包括:
NBUF:total system buffers the value is wrrenty determined at system start up
以KB为单位,定义系统启动时分配的全部缓存区的数量.buffer cache是硬盘和用户地址空间之间的临时缓存区域.NBUF控制buffer cache的数量.改变NBUF必须同时改变NHBUF参数,通常NBUF/NHBUF约等于4.
系统引导时所显示的"kernel i/o bufs"表示buffer cache的大小,在文件/usr/adm/messages中也记录了buffer cache的大小.增加buffer cache的大小,可以提高buffer cache的使用频率,减少硬盘的读写次数,从而整体提高硬盘的I/O性能.使用命令sar -b可以获得系统buffer cache使用频率的有关报告.
通常情况下,系统buffer cache的数量为300~600,在大型的服务器系统上buffer cache的数量为8000或者更多,NBUF缺省值设置为0,表示系统在引导时自动设置buffer cache的大小.
NHBUF:hash buffers(for disk block sorting)
表示系统上有多少个混队队列要分配,每一个混队队列占用8个字节的内存.NHBUF必须是2的乘幂,取值范围是32~524288,缺省值为0,表示系统在引导时自动设置NHBUF的大小.
在单CPU的计算机系统上,NHBUF的值必须少于NBUF大小的1/2.
在多CPU的计算机系统上,NHBUF的值一般设置为单CPU情况下设置的2倍以上,这可以减少需要访问同一混对队列的多个进程之间的可能链接.
NMPBUF:number of dmaable page for scatter-gather and dma reguests
以4KB内存页面为单位,定义16KB簇缓存区、4KB传输缓存区transfer buffer以及1KB复制请求缓存区copy request buffer的数量.如果系统上建立了许多用户,以及系统内存大于16MB,NMPBUF的数量不能少于40.NMPBUF的缺省值为0,这种情况下,系统在启动时,根据内存数量的多少,将NMPBUF设置为40~64之间的某个数值.NMPBUF的最大取值为512.
PLOWBUFS:Percentage og buffers,below 16MB
以百分比的形式,表示第一个16MB的RAM中,所包含的buffer cache数量.如果系统中硬盘等外围设备的控制器不能执行DMA到内存的操作(例如24位地址控制器),那么应该将PLOWBUFS值尽可能地设置的大些,如果允许,可以把PLOWBUFS值设置为100,这样可以消除16MB以上内存和复写内存copy buffer之间的复制需要.PLOWBUFS的取值范围是1~100,缺省值为30.系统内存多于16MB,可以调整PLOWBUFS的值,否则建议使用缺省值.
PUTBUFSE:Size of the circular buffer putbuf
这个参数确定循环缓冲区PUTBUF的大小,PUTBUF包含了最近的由操作系统传输给终端的PUNBUFSE自负,可以使用crash(ADM)查看PUTBUF的内容.PUTBUFSE缺省值是2000,最大值是10000.
MHINODE:inode hash table size
确定inode hash table的大小,MHINODE的取值必须是2的乘幂,取值范围是64~8192,缺省值是128.
BDFLUSHR:interval in secouds between bdflush being run
这个参数以秒为单位定义系统守护进程bafflush的运行时间长度,既定以buffer cache中的内容写入硬盘的时间.BDFLUSHR必须和NAUTOUP联合调整.取值范围是1~300秒,缺省值为30秒.加大该值会降低硬盘性能,增大数据丢失概率.如果将BDFLUSHR设置为300秒,平均而言,buffer cache中大约150秒的数据将丢失.
NAUTOUR:age,in secouds,tat a delayed-write buffer must be before bdflush writes it out
以秒为单位,定义缓冲区数据的寿命,既定义文件系统自动更新的时间间隔.其值大小应该同BDFLUSHR匹配.只有当bdflush守护进程运行,并且缓存区被安排了一段NAUTOUR时间或者更长的时间用于写操作,缓存区里的数据才被写入硬盘.也就是说,并不是所有的写缓存区在bdflush守护进程运行时都会被更新.因为bdflush守护进程运行的时间相对NAUTOUP时间短一些,这样就可以实现某个进程对缓存区多次进行写操作,减少对硬盘的实际写操作.
如果减少BDFLUSHR/NAUTOUP比值,实际的硬盘读写次数也会减少,系统的I/O性能将得到提高,但I/O过程目煽啃越档?如果增加BDFLUSHR/NAUTOUP比值,系统的I/O过程的可靠性会得到提高,但I/O性能将下降.
NAUTOUP取值范围是0~60,缺省值是10.
Process and paging所包含的参数:
GPGSLO:Lowest amount freemen can be,before pages are stolen form processes
以页面为单位,为进程vhand确定以页面为单位的自由内存低限标志。通常,GPGSLO设置为页面内存的1/16。GPGSLO的取值范围是0~200,并且必须小于GPGSHI的大小。
GPGSHI:once pages are stolen form processes , don't stop before freemen reaches this value
以页面为单位,为进程vhand确定以页面为单位的自由内在高限标志。通常,GPGSHI设置为页面内在的1/10。GPGSHI的取值范围是1~300,并且必须大于GPGSLO的大小。
MINARMEN:mininun available resident memory,in pages,to maintain in order to avoid deadlock.
用户进程的文本和数据段保留的最小内存页面数。可以使用crash(ADM)中的od-davailrmen命令行查看为用户进程所保留的物理内存。MINARMEN娜≈捣段?5~40个内存页面,缺省取值为25个内存页面。
如果系统内存显示:
CONFIG:routine -n resident pages wanted
这表明系统内存不足,需要增加MINARMEN的大小。
MINASMEN:mininum available swappble menory , in pages;to maintain in order to avoid deadlock。
定义系统所保留的内存和交换区的最小页面数。可以使用crash(ADM)中的od -d availsmen命令行查看系统交换区的大小。MINASMEN的取值范围是25~40个内存页面,缺省取值为25个内存页面。
如果系统显示:
CONFIG:swapdel - Total swap area too small (MINASMEM = number exceeded)
这表明需要增加MINASMEN的大小。
如果系统显示:
CONFIG:routine -n swappable pages wanted
这表明系统没有足够的物理内存分配给MINASMEN,会导致系统上的应用程序经常出现故障,需要增加系统的内存或交换区的大小,才能从根本上解决这个问题。
MAXSLICE:maxinmum time slice for processes , in clock ticks。
以系统时钟计时方式定义用户进程的最大时间片。当一个进程执行完分配给它的CPU时间片后,返回就绪状态或封锁状态,系统从τ诰托髯刺慕潭恿兄醒≡裼畔燃蹲罡叩囊桓鼋蹋玀AXSLICE时间片分配给这个进程。MAXSLICE取值范围为25~100,缺省值为每秒100个时间片。
SPTMAP:size of system virtual space allocation map。
用来定义Unix核心虚拟地址空间分配变换表项数组的长度。SPTMAP取值范围是100~500,缺省取值为200。
TTYS所包含的参数:
NCLIST:number of characeter list buffers
以字符块为单位,指定要分配的字符队列缓存区的数量,每一个字符块包含64字节数据.这些buffer动态地链接起来,组成终端等低速设备的输入输出队列.每个终端所需要的平均buffer数目为5~10个,每一个buffer空间连同所附加的头表项共占用72个字节.
如果系统显示:
CONFIG:Out of clists(NCLIST=number exceeded)
这表明系统的字符队列缓存区已经被占满,终端相关的输入输出字符将会被丢失.
如果系统上用户通过9600bps以上的串行线登录进入系统,NCLIST的大小一般设置为同时登录进入系统最大用户数期望值的10倍.NCLIST的取值范围是120~16640,缺省值的大小为120.NCLIST的大小应该和TTHOG共械鹘?
TTHOG:size of raw gueue of tty driver
以字节为单位,定义tty驱动程序字符队列的大小,以及tty缓存区储存字符的能力.增加TTHOG的大小,可以提高tty缓存区储存字符的能力,从而使得在系统极度繁忙时,减少输入字符的丢失概率.TTHOG的取值范围是256个字节至8192字节,缺省是256个字节.如果数据传输速度超过9600bps,那么应该根据系统上所运行的应用程序的情况,将TTHOG的大小设置为2048或者4096.TTHOG的大小应该和NCLIST共同进行调节,TTHOG是对一个串口的定义,NCLIST是对系统所有串口的定义,在改变TTHOG值时,一定要改变NCLIST的值.
例如,TTHOG为2048,NCLIST的大小为320,这表明每个串口最多可使用2048/64=32个字符块,系统总共有320/32=10个串口.如果根据需要把TTHOG增加为4096,那么这个串口最多可使用64个字符块,NCLIST的大小应该调整为640.
Name cache所包含的参数:
CACHEENTS:maximum number of name components in name cache
取值范围是1~4096,缺省值是256.设置CACHEENTS大小时,可以通过sar -v命令查看in-core inode table增长的最大值,然后将CACHEENTS值设置为in-core inode table的最大增长大小的3倍.
AIO所包含的参数:
NAIOPROC:number of processes-which may be simultaneously doing AID
定义异步I/O(AIO)进程表process table的大小,既定义系统能够同时执行的异步I/O进程的最大数目.NAIPROC的取值范围是1~16,缺省值是5.
如果系统提示:
CONFIG:aio memlock - AIO process table overflow(NAIOPROC=number exceeded)
这表明系统AIO进程表溢出,需要将NAIOPROC 值适当调大.
NAIOREQ:maximum number of pending AIO reguests
定义异步I/O1请求表AIO request table的大小,既定义系统异步I/O请求的最大值.NAIOREQ的取值范围是5~200,缺省设置值是120.
如果系统提示:
CONFIG:aio breakup-AIO request table overflow(NAIOREQ=number exceeded)
这表明系统AIO请求表溢出,需要将NAIOREQ值适当调大.
NAIOBUF:number of AIO buffer(should be the same as NAIOREQ)
定义AIO缓存区表的大小,既定义系统异步I/O缓存区的最大值.NAIOBUF值必须与NAIOREQ的大小一致.
如果系统提示:
CONFIG:aio breakup-AIO buffer table overflow(NAIOBUF=number exceeded)
这表明系统AIO缓存区表溢出,需要将NAIOBUF值适当调大.
NAIOHBUF:number of AIO hash gueues(internal)
定义AIO混列队列的数量.NAIOHBUF的取值范围是1~50,缺省值是25.
NAIOREQPP:maximum number of AIO reguests that a single proless can have pending
定义一个单个进程可以拥有的未完成的异步I/O请求的最大数量.NAIOREQPP的取值范围是30~200,缺省设置值是120,这个缺省值的大小意味着一般情况下单个进程可能能够消耗掉所有的异步I/O资源.
NAIOLOCKTBL:number of entries in the internal kernel table for AIO lock permissions
(定义用于异步I/O加锁许可的内部核心表中的表项数.NAIOLOCKTBL的取值范围是5~20,缺省值是10.如果文件/usr/lib/aiomemlock重的表项数目比较多,就需要将NAIOLOCKTBL值适当增大.
如果系统提示:
CONFIG:aio setlockauth - AIO buffer table overflow(NAIOLOCKTBL=number exceeded)
这表明系统AIO加锁表溢出,需要将NAIOLOCKTBL 值适当调大.
只有系统上配置了虚拟磁盘阵列,此类参数才有意义。
VDUNTIMAX:maximum number of virtual disks which may be configured
所能配置的虚拟磁盘的最大数目。如果系统上配置的虚拟硬盘的数目是固定的,那么用户可以将VDUNITMAX的大小设置成实际值的大小。VDUNITMAX的取值范围是5~256,缺省值是100。
VDJOBS:maximum number of virtual disks jobs
系统允许的虚拟硬盘任务项数目的最大值。VDJOBS的取值范围是100~400,缺省值是200。
VDUNITJOBS:maximum number of jobs per virtual disk
定义系统中每一个虚拟硬盘的任务项数目的最大值。VDUNITJOBS的取值范围是50~200,缺省值是100。
VDHASHMAX:size of data integrity hash table
定义用于保证在读、修改、写操作过程中数据完整性的混队队列表的大小。每一个混队队列表的表项占用24个字节的内容。VDHASHMAX的大小必须是2的乘幂。VDHASHMAX的取值范围是512~8192,缺省值是1024。
VDASYNCPARITY:parity on RAID 4&5 up dated asynchronously
控制RAID 4和RAID 5上的奇偶阵列设备进行的写操作是否是异步的。VDASYNCPARITY的取值是0或者1。VDASYNCPARITY的缺省值是1,表示是异步的;如果将VDASYNCPARITY设为0,表示是同步的。
VDASYNCWRITES:parity on RAID updated asynchronously
控制对RAID 1的镜像硬盘进行的写操作是否是异步的。VDASYNCWRITES的取值是0或者1。VDASYNCWRITES的缺省值是1,表示是异步的;如果将VDASYNCWRITES设为0,表示是同步的。
VDASYNCMAX:maximum number of outstanding asynchronous parity writes
表示在VDASYNCWRITES和VDASYNCMAX中有一个或者两个设置为1时,能够对RAID 1、RAID 4、RAID 5进行异步写操作的最大数目。VDASYNCMAX的取值范围是20~64,缺省值时20。
VDWRITEBACK:write back of read-modify-write jobs completed asynchronously
控制是否将读、修改、写任务项异步地回写。VDWRITEBACK的取值时0或者1。VDWRITEBACK的缺省值时0,表示禁止回写;如果将VDWRITEBACK设置为1,表示允许回写,这样可以使得在读、修改、写任务项的最后阶段异步地进行写操作,从而提高虚拟硬盘的输入、输出量。允许回写的功能可以一定程度地保证在系统崩溃的突发情况下提高系统数据的完整性。
VDRPT:Interval in seconds between error conditions being reported
以秒为单位,定义报告错误意识的时间间隔。VDRPT的取值范围是0~86400,缺省值是3600。如果将VDRPT的大小设置为0,表示系统在探测错误时立即进行报告。
2004-9-21 13:18小李哥
作业调度是shell的一个特性,它允许用户使用作业调度命令,所谓作业调度实际上是时钟守护进程cron按照用户所提交的确定的时间在这个时间内执行某些运行作业,cron守护进程将在设定的日期规定的时间内自动地执行某样任务。可在系统负载较轻时安排这些非交互式作业的运行,在unix中与cron配合提交任务的命令有三种:at,batch,crontab。

  cron进程的活动可存放在日志文件中,该日志文件为/usr/lib/cron/log文件,是否对cron活动进行记录还要一个变量CRONLOG的设置,这个变量存放于/etc/default/cron文件中。缺省情况下,这个变量设置值为NO,这说明cron进程的活动内容不保留在任何文件中,若需要可将其值改为yes或将其文件名改为其他用户需要的文件名。此外,在/etc/default/cron中MAXLOGSIZE 限制了log文件的大小,该变量以512字节为单位设定的log的最大块数,确省为2048块。 在/etc/default/cron中的MAXCRON变量,控制在同一时刻允许运行的最大进程数量,确省为100。

  若系统的若干用户要使用cron进程,那么这个用户必须授予cron子系统的权限,给特定用户授予cron子系统的权限的操作为 scoadmin->system->cron manager->shecdule->default->user->allow 或
scoadmin account manager ->选中用户->users->user authorizations->authorized add cron(取消use system default ...)->ok
  对应有两个文件可看到那些用户具备此权限,分别为:
  /usr/lib/cron/cron.allow谁能安排cron作业的确切列表
  /usr/lib/corn/cron.deny表示谁不能安排cron作业的确切列表,只有cron.allow不存在时才有作用
  如果这两个文件都不存在,表示只有root用户才有安排cron作业的权限。若两个文件都在,则cron.allow具有更高的优先权。

一、at,batch使用方法
  at,batch的功能是在以后某个时间内执行某些命令。at命令允许指定作业执行时间,batch命令只有在系统负载允许的情况下执行该作业。每个作业的id号和执行时间都可输出到错误输出上。
  at的命令行结构:
  at [ -m ] [ -f file ] [ -q letter ] time [ date ] [ increment ]
  at [ -m ] [ -f file ] [ -q letter ] -t [[CC]YY]MMDDhhmm.[SS]
  at -r job-id ... job-id指at命令作业的id号,-r指删除该id号的作业
  at -l [job -d ...] 显示当前的at作业
  at -l -q letter

  batch不带参数,其提交的作业比at提交的作业比具有较低的优先级,其何时执行要看系统中已提交的作业数量。系统空闲时,提交的作业即可运行。 at,batch,crontab三个命令的使用范围是有一定限制的,一般情况下,at,batch提交一次性的作业,作业运行完后不再运行。而crontab所提交的作业一般以固定的周期运行,在系统允许的情况在指定的周期内系统反复执行该作业。

  相关文件与目录
  /usr/lib/cron        main cron directory
  /usr/lib/cron/at.allow   list of allowed users
  /usr/lib/cron/at.deny    list of denied users
  /usr/lib/cron/queuedefs   scheduling information
  /usr/spool/cron/atjobs   spool area
  /usr/lib/cron/.proto    at and batch environment information
  /usr/lib/cron/.proto.a   at shell environment
  /usr/lib/cron/.proto.b   batch shell environment
  /usr/lib/cron/.proto    at and batch environment information
  /usr/lib/cron/.proto.a   at shell environment
  /usr/lib/cron/.proto.b   batch shell environment

  部分参数说明分别如下
  1)time
   表示时间,可指定为1,2,或4个数字,1或2个数字被认为是小时,4个数字被认为是小时和分钟,格式为 hh:mmm
  2)date 表示日期
  3)increment 表示要在前面所指定的时间(time[date])再推后一段时间
  4)-t [[cc]YY]MMDDhhmm.[SS]
    CC 世纪
    YY 年
    MM 月
    DD 日
    hh 时
    mm 分
    SS 秒
  5)-q letter
   把指定作业置于指定字母所指示的队列内,可以是从a到z的任何小写字母以下队列有特殊意义
    a at 队列
    b batch 队列
    c cron 队列
  6)-m
   不使用-m 选项时,作业的标准输出将直接mail给相应用户(除非作业被明确重新定向)。使用-m 选项时,即使作业没有输出,也将以邮件形式通知用户。
  7)-f file
   指定包含有at 作业的源文件名,以代替从标准输入。
  8)-l [job-id]
   列出指定作业的相关信息
  9)-r job-id
   删除指定作业

  at 和 batch 作业提交后,均被指定一个相应的作业标识符,at作业带有 后缀.a, batch作业带有后缀 .b 。所有作业以其作业标识符为文件名,保存在/usr/spool/cron/atjobs目录中。

二、crontab的使用方法
  crontab命令的功能是在一定的时间间隔调度一些命令的执行。通常这些要运行的命令放在crontab文件中,该文件为/usr/spool/cron/crontabs下面与用户名相同的文件,或在每次执行时不使用该文件名直接使用crontab -e 指令。(在at命令中,命令文件的存放是任意的)。命令执行默认的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。

  crontab命令有三种形式的命令行结构:
  crontab [cronfile]
  crontab [-e|-l|-r]
  crontab -l -u [-e|-l|-r]

  相关文件目录
  /usr/lib/cron         main cron directory
  /usr/spool/cron/crontabs   crontab directory
  /usr/lib/cron/cron.allow   list of allowed users
  /usr/lib/cron/cron.deny    list of denied users
  /usr/lib/cron/queuedefs    cron data file

  1) crontab [cronfile]
  cronfile是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。 (不建议使用该方式,如果用crontab cronfile ,将会把原来的已经提交的cron作业删除)
  cronfile 是具有一定格式的普通文件,在文件中可以包含多余一个的作业信息,每个作业作为一个登记项,独占一行,用空格分开的6个字段,前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。具体格式如下
  minutes hours day_of_month month day_of_week command
  minutes      分钟   0-60
  hours       小时   0-23
  day_of_month   日    1-31
  month       月    1-12
  day_of_week    星期的日 0-6(0表示星期日)
  command      命令   任何非交互的命令
  2) -l
  显示已经提交的cron 作业
  3)-e
  对已经提交的cron 作业编辑,或添加,删除作业建议使用该方式添加cron作业,相比手工修改/usr/spool/cron/crontabs/username文件,使用crontab -e 可以对提交的作业进行语法检查,如果没有按照规定6个字段提交作业,会提示相应错误信息。 如果手工对/usr/spool/cron/crontabs/username 编辑,为确保作业提交可按照以下步骤执行用crontab -e 编辑该文件 :x存盘退出或用ps 命令查找cron进程,用kill 杀下/etc/cron进程, rm /usr/lib/cron/FIFO;/etc/cron
   注释: /usr/lib/cron/FIFO,当新的作业提交由crontab完成时,一个发送消息到cron守护进程的命令管道。
   4) -r 删除当前已经提交的cron 作业
   5) -u user 对指定用户的cron 作业进行维护。

三、环境文件
  /usr/lib/cron/.proto定义的shell环境适用于 at和batch 。
  /usr/lib/cron/.proto.a 适用于at
  /usr/lib/cron/.proto.b 适用于batch
  .proto.a ,.proto.b 与 .proto相比有更高的优先权。
  默认情况下,只存在 .proto.b 和 .proto ,且内容相同。

  以上相关维护可以使用 cron manager 实现
  cron作业提交后,未能定时完成相应任务,可按照下面的方法查找原因
  1。查看 /usr/lib/cron/log 中的提示
  2。将提交的作业输出重新定向,查看相应的log文件
  作业提交后未能完成相应任务,通常是因为环境变量设置的问题
  例如:因PATH等变量的设置未找到相关的程序等
crontab命令简介


  简介
  crontab-操作每个用户的守护程序和该执行的时间表。

  部分参数说明
  crontab file [-u user]-用指定的文件替代目前的crontab。
  crontab-[-u user]-用标准输入替代目前的crontab.
  crontab-1[user]-列出用户目前的crontab.
  crontab-e[user]-编辑用户目前的crontab.
  crontab-d[user]-删除用户目前的crontab.
  crontab-c dir- 指定crontab的目录。
  crontab文件的格式:M H D m d cmd.
  M: 分钟(0-59)。
  H:小时(0-23)。
  D:天(1-31)。
  m: 月(1-12)。
  d: 一星期内的天(0~6,0为星期天)。
  cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环
  境变量。
  下面是一个例子文件:
  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  #每天早上6点
  0 6 * * * date

  #每两个小时
  0 */2 * * * date

  #晚上11点到早上8点之间每两个小时,早上8点
  0 23-7/2,8 * * * date

  #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
  0 11 4 * mon-wed date

  #1月份1日早上4点
  0 4 1 jan* date
  范例
  lark:~>crontab-1 列出用户目前的crontab.
  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  10 6* * * date
  0*/2* * * date
  0 23-7/2,8 * * * date
2004-9-21 13:19小李哥
当SCO UNIX 系统发生灾难性的故障时,应急引导软盘组能够帮你恢复系统。它可以恢复损坏了的root文件系统,而无需重装整个系统。如果在分布式网络应用环境下,应用系统本身也已损坏,要从网络中的其它计算机上查询或复制应用系统,就需要制作带网络功能的SCO UNIX 5.05应急软盘组,以便可以使用rlogin、telnet、ftp等命令来登录远程计算机系统读取文件。可以用两张3.5英寸1.44MB软盘来创建应急引导软盘组,具体步骤如下:
  1用root注册;
  2使用SCOadmin 中Filesystems 目录下的Floppy Manager.或键入以下命令:
  mkdev fd;
  3在主菜单下,选择2来创建应急引导软盘组;
  4在紧接着的提问中,选择使用的软盘类型为2;
  5当出现选择文件系统类型的菜单时,选择2先创建boot引导软盘;
  6对于引导软盘,你可以有两种选择:一种是针对特定系统的引导盘,它包含有与当前系统一样的核心,另一种是较小的通用核心,它链接的驱动程序较少。一般应选择特定的核心,如果你当前的核心相对你的软盘来说太大,就只能选择建立一个通用核心;
  7插入一张空白软盘,并回答是否要格式化软盘;
  8在创建引导盘时,你会看到文件复制到软盘上的消息,然后,使用 fsck 检查文件系统,当全部完成时,从驱动器上移开软盘,贴上boot标签;
  9按Enter键继续,返回选择文件系统类型菜单,选择1创建root根文件系统软盘;
  10插入一张空白软盘,并回答是否要格式化软盘;
  11在软盘上建立文件系统之后,将把系统文件复制到RAM盘上以便压缩,其中包括将/dev/cmos 复制为/etc/cmosroot 。以后可以使用这个文件来恢复CMOS设置;
  12当看到如下消息时:
  Do you want a shell escape to place extra files on the root filesystem?(y/n)回答y,你将会看到如下信息:
  You can copy files into/mnt to customize your root filesystem floppy
  After you finish,type “exit 0”to continue
  You have n free blocks(512 bytes each)available on the floppy
  此时,命令提示符是;
13在提示符下用下列命令复制网络服务文件:
  cp/etc/services /mnt/etc/services
  cp/etc/tcp mnt/etc/tcp
  cp/etc/slink /mnt/etc/slink
  cp/etc/ifconfig /mnt/etc/ifconfig
  cp/etc/inconfig /mnt/etc/inconfig
  cp/bin/who /mnt/bin/who
  cp/bin/ps /mnt/bin/ps
  cp/usr/bin/telnet /mnt/usr/bin/telnet
  cp/usr/bin/rlogin /mnt/usr/bin/rlogin
  cp/usr/bin/ftp /mnt/usr/bin/ftp
  exit 0
  14输入完成使用 fsck 检查文件系统,当全部完成时,从驱动器上移开软盘,贴上root标签,带网络功能的SCO UNIX 5.05应急软盘组便制作完成。
  若要使用应急软盘组中的网络服务功能,可在用应急软盘组引导系统后,输入tcp start 手工启动网络服务。
2004-9-21 13:19小李哥
作为一个SCO UNIX的用户,为系统创建一套系统应急引导软盘是很有必要的,当系统发生意外的灾难性故障时,应急引导盘可帮你恢复系统,从而省去许多麻烦。但通常情况下所创建的应急引导盘是没有vi编辑功能的,这对于系统管理员来说,有时候是很不方便的,例如,要修改被遗忘的超级用户口令等。因此,我们在创建应急盘时,可以适当地将vi编辑功能所需要的一些文件添加进去,使创建的系统应急引导盘带有vi编辑功能。下面就以SCO UNIX OPENSERVER 5.05为例,介绍其创建方法。
  1以root注册;
  2使用scoadmin中filesystem下的floppy manager或键入命令mkdev fd进入创建应急盘的界面;
  3根据提示制作boot盘和root盘。
  在制作boot盘时有两个选项:
  1System spacific boot
  2.Generic boot(builds a special kemel)
  选择1,制作——特定系统的应急盘,包含与本机系统相同的内核。
  选择2,制作 一个较小的通用内核应急盘。只连接较少的设备驱动。一般选择2,制作一个较小的通用内核应急盘。
  在创建root盘时,系统在创建基本的映象之后提示:
  Do you want to place extra files on the root filesystem?(y/n)
  这时输入y/并在提示符下键入如下拷贝命令:
    cp/usr/bin/vi/ mnt/usr/bin
    mkdir -p /mnt/usr/lib/terminfo/a
    cd /usr/lib/tcrminfo/a
    cp ansi /mnt/usr/lib/terminfo/a
    exit
  这样, 一套带vi功能的应急引导盘就制作好了。用应急盘启动后,首先要指定终端类型,如果你使用的是Bourne或Kom shell(sh(C)或ksh(C))。可用下列命令设置:
    TERM=ansi;cxport TERM
  如果你使用的是 C shcll(csh(C)),则可用下列命令:
    sctcnv TERM ansi
  正确设置终端类型后,就可以使用vi编辑工具了。
2004-9-21 13:21小李哥
UNIX下文件压缩命令compress大家都比较熟悉了,它的压缩率比较高, 和tar命令结合使用来做数据备份是最合适不过了。但compress压缩也有缺点,就是被压缩后的文件需要用命令uncompress解压后才能正常使用。而用strip命令就没有这个问题,它能清除执行文件中不必要的标示符及调试信息,可减小文件大小而不影响正常使用。但与compress 不同的是,文件一旦strip后就不能恢复原样了,所以strip是一个减肥工具而不是压缩工具。而且,被strip后的文件不包含调试信息,就不能用dbx来调试程序了。现在让我们来具体效果如何,看下面一个程序:

#include
main()
{
  printf("hello, world/n");
}
  用cc编译以后长度为46176字节,用strip后变为了30648,足足减小了 1/3,而且仍然可以正常执行。除了用strip外,用共享库也是减小执行文件长度的方法。

注:
1.如果文件大小没有减小,那就是已经strip过了.
2.cc 编译时加上"-s"参数,具有同样的作用。

某种节约空间的办法:
  那就是对于单个比较大的可执行文件可以编写一个zexec脚本.下面的脚本只是针对/usr/bin/cc的
  uncompress ./cc.Z
  mv cc /tmp
  cd /tmp
  ./cc
2004-9-21 13:21小李哥
目前,UNIX作为一种功能强大,性能可靠和通用性较好的操作系统,已被广泛地运行在个人计算机、工作站及小型、中型、大型和巨型计算机上。在系统管理过程中,我们常常会遇到这样或那样的问题,这当中绝大部分可以通过特权用户去解决,但有一类问题是非常棘手的,比如:系统无法启动,无法进入超级用户等等。当遇到这类问题时,如何正确处理呢?如果选择重新安装操作系统,必定造成业务数据无法备份而丢失。那么有没有好的办法既能恢复系统又能使业务数据不被丢失呢?答案是肯定的,那就是借助UNIX“应急引导软盘”来恢复系统。下面就谈谈有关这方面的问题。

一、 系统无法引导

  系统无法引导常常是/boot或/unix等系统文件被损坏或丢失了,引起的原因有系统突然断电,使用mkdev命令不当等。
  1/boot找不到
  当计算机加电自检后,系统显示如下信息时,说明/boot文件被丢失了:
  /boot not found
  Stage 1 boot failure:error loading/boot
  如果/boot丢失了,计算机加电后就无法装入和执行系统核心,最好的办法就是使用“应急引导软盘”引导系统,进而恢复/boot文件。步骤如下:
  (1)将软盘插入软驱,给机器重新加电,使系统从软盘执行初始引导。
  (2)当系统出现boot:提示时,输入如下字符串:
  hd(40)unix
  这个命令表示从主硬盘装入核心并执行。
  说明:如果要从第二个硬盘装入核心,则上述命令括号中的数字变为104,从软盘装入核心,则括号中的数字变为64。
  (3)当出现下面提示时,输入超级用户口令,将系统引入系统维护模式。
  Type CONTROL-d to procceed with normal start up,
  (or give root password for system maintenance):
  (4)安装软盘文件系统:
  #mount/dev/fd0/mnt
  (5)恢复/boot文件:
  #cp/mnt/boot/
  (6)卸下软盘文件系统:
  #umount/mnt
  (7)取出软盘,使用haltsys命令关闭系统。
  自此,硬盘上的/boot系统文件恢复完成,系统可从硬盘启动了。
  2/unix找不到
  如果开机后,系统出现如下信息,说明/unix文件被破坏或丢失了:
  unix not found
  /unix文件包含UNIX系统核心,如果/unix文件被破坏或丢失了,可先试一试是否能用/unix.old启动系统,即重新热启动机器,当出现boot:提示时,输入下面命令:
  hd(40)unix.old
  如果利用unix.old不能启动,那么就只有借助“应急引导软盘”启动并恢复unix系统文件。方法如下:
  (1)在软驱中插入软盘并给机器重新加电。
  (2)当出现boot:提示符时,输入如下命令:
  fd(64)unix root=hd(40)swap=hd(41)pipe=hd(40)
  这条命令表示从软盘装入UNIX核心并从硬盘安装根文件系统。
  (3)将系统引入系统维护模式;
  (4)安装软盘文件系统:
  #mount/dev/fd0/mnt
  (5)恢复unix文件:
  #cp/mnt/unix/
  (6)卸下软盘文件系统:
  #umount/mnt
  (7)取出软盘,使用haltsys命令关闭系统。
  至此,硬盘上的unix文件得到恢复,系统可从硬盘上启动。
  3系统在引导中途挂起
  有时,当系统在引导显示“Kernel:i/o bufs“后挂起,这说明/etc/init文件被丢失或破 坏,系统无法产生进程。这时需要从应急软盘上恢复init文件。方法如下:
  (1)把引导盘插入软驱,重新加电。
  (2)当出现boot:提示符时,键入回车键从软盘引导系统。
  (3)当系统引导成功后,再安装硬盘根文件系统;
  #mount/dev/hd0root/mnt
  (4)恢复init文件:
  #cp/etc/init/mnt/etc/init
  (5)卸下硬盘文件系统:
  #umount/mnt
  (6)利用haltsys关闭系统并取出软盘。至此init文件得到恢复,系统能正常启动。有关系统无法启动的类似问题,可参照上面的办法去处理。

  二、 无法进入超级用户

  无法进入超级用户常常是因为超级用户口令被盗并被篡改,或某种原因口令被遗忘了,有 时,当磁盘空间用完时也会发生无法进入超级用户的现象,这时就需要借助“应急引导软盘”进入系统对超级用户口令进行维护:
  (1)用“应急引导软盘”引导系统并装载硬盘文件系统。
  (2)备份硬盘上的/etc/passwd:
  #cp/mnt/etc/passwd/mnt/etc/passwd.bak
  (3)将软盘上的passwd复制到硬盘上:
  #cp/etc/passwd/mnt/etc/passwd
  (4)卸下硬盘文件系统,从硬盘启动系统,以空口令进入超级用户。以下的工作就非常容易 了。
  当硬盘空间满无法进入超级用户时,可先采用强行关机,再启动系统进入系统维护模式的办法对磁盘空间进行维护,如果不成功,则只有借助““应急引导软盘”启动系统,再加载硬盘文件系统对其空间进行维护。

三、 “应急引导软盘”的制作和使用中的注意事项

  “应急引导软盘”是利用mkdev命令制作的,要同时制作boot盘和root盘。制作和使用过程中应注意以下几点:
  (1)当系统配置发生改变时,要重新制作引导盘;
  (2)每次制作时,应将软盘中/etc/passwd文件的root用户口令清空。办法是装载软盘文件系统,用编辑软件修改/mnt/etc/passwd,将此文件的root:x:0:1:Superuser:/:改为root::0:1:Superuser:/:。
  (3)在用引导盘启动系统的过程中,boot:提示符下直接回车和键入命令是有区别的。
  (4)遇到不能加载硬盘根文件系统时,得先用fsck命令对其检查并修复,然后再加载

1. /etc/conf/cf.d/configure -x|more
用于显示内核参数的大小,实际上显示的是/etc/conf/cf.d/config.h文件的内容

2. /etc/sysdef
显示影响内核数据结构的可调核心参数的当前值

3. /usr/bin/swconfig -p
显示安装在系统上或者已经从系统上删除的软件包

4 /etc/hwconfig -h
显示仪已经安装的驱动程序,实际上显示的是/dev/string/cfg的文件的内容

5 /etc/custom
显示经完全安装或者部分安装的软件包

6 /etc/custom -v quick SCO:Unix:RTS -x
确认系统运行文件的存在、许可、所有权内容。-x指定在可能的情况下进行修理

7 /usr/bin/displaypkg
显示使用installpkg(ADM)实用程序安装的软件的有关信息

8 /tcb/bin/fixmog -v
修改系统文件许可,,以便与Authentication数据库相匹配。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值