找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 3952|回复: 2

[【讨论】] UNIX常用命令索引

[复制链接]
发表于 2008-12-21 11:56:31 | 显示全部楼层 |阅读模式
要熟悉一个操作系统,首先得得了解它的基本操作命令,才好谈深入学习,欢迎大家补充。

目  录

第一章 目录及文件操作
第二章 设备管理
第三章 进程管理
第四章 系统管理和用户管理
第五章 通信和邮件
第六章 Shell 编程
第七章 数学计算命令
附录 UNIX 常用命令简单说明



第一章 目录及文件操作命令

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 : n 跳到后面第 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 &#39;*.o&#39; \\) -atime +7 -exec  rm {} \\;
从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件


1.25 grep

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


1.26 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) 光标移至当前行第一个非空字符上
&#39; 连续两个&#39;&#39;表示将光标移至其移动前的位置,&#39;后跟字母表示光标字
  母标记的行首(参看 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 字母 用字母标记当前行,以后可用 &#39;字母使光标移动到当前行,
  (参看&#39;命令)
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 写文件之前不作对文件的检查




第二章  设备管理

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




附录 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  语法分析程序生成器
回复

使用道具 举报

发表于 2008-12-24 14:08:11 | 显示全部楼层
login
login [name][-p ][-h 主机名称]
-p:通知login保持现在的环境参数。
-h:用来向远程登录的之间传输用户名。
如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
shutdown
shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
shutdown [-h][-i][-k][-m][-t]
-t:在改变到其它运行级别之前,告诉init程序多久以后关机。
-k:并不真正关机,只是送警告信号给每位登录者。
-h:关机后关闭电源。
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改为单用户模式。
-i:关机时显示系统信息。
halt
halt命令的作用是关闭系统,它的使用权限是超级用户。
halt [-n] [-w] [-d] [-f] [-i] [-p]
-n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
-f:没有调用shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉所有的网络接口。
-f:强迫关机,不呼叫shutdown这个指令。
-p: 当关机的时候顺便做关闭电源的动作。
-d:关闭系统,但不留下纪录。
 halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。 
reboot
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
reboot [-n] [-w] [-d] [-f] [-i]
-n: 在重开机前不做将记忆体资料写回硬盘的动作。
-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i: 在重开机之前先把所有与网络相关的装置停止。
install
install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。
(1)install [选项]... 来源 目的地
(2)install [选项]... 来源... 目录
(3)install -d [选项]... 目录...
在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。
--backup[=CONTROL]:为每个已存在的目的地文件进行备份。
-b:类似 --backup,但不接受任何参数。
-c:(此选项不作处理)。
-d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
-D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。
-g,--group=组:自行设定所属组,而不是进程目前的所属组。
-m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
-o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
-p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。
-s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
-S,--suffix=后缀:自行指定备份文件的<后缀>。
-v,--verbose:处理每个文件/目录时印出名称。
--help:显示此帮助信息并离开。
--version:显示版本信息并离开。
mount
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
-h:显示辅助信息。
-v:显示信息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-t vfstype:显示被加载文件系统的类型。
-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。
在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备 ,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。 在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。
(1)Linux可以识别的文件系统
◆ Windows 95/98常用的FAT 32文件系统:vfat ;
◆ Win NT/2000 的文件系统:ntfs ;
◆ OS/2用的文件系统:hpfs;
◆ Linux用的文件系统:ext2、ext3;
◆ CD-ROM光盘用的文件系统:iso9660。
虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。
在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。 此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(Mount Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat):
软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。
umount
umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。
chsh
chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
-l:显示系统所有Shell类型。
-v:显示Shell版本号。
前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下:
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,
exit
exit命令的作用是退出系统,它的使用权限是所有用户。
exit
exit命令没有参数,运行后退出系统进入登录界面。
last
last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]
-n:指定输出记录的条数。
-f file:指定用文件file作为查询用的log文件。
-t tty:只显示指定的虚拟控制台上登录情况。
-h 节点:只显示指定的节点上的登录情况。
-i IP:只显示指定的IP上登录的情况。
-1:用IP来显示远端地址。
-y:显示记录的年、月、日。
-ID:知道查询的用户名。
-x:显示系统关闭、用户登录和退出的历史。
tar
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。
tar [主选项+辅选项] 文件或目录
  使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-x 从档案文件中释放文件。
辅助选项:
-b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20512 bytes)。
-f 使用档案文件或设备,这个选项通常是必选的。
-k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
-m 在还原文件时,把所有文件的修改时间设定为现在。
-M 创建多卷的档案文件,以便在几个磁盘中存放。
-v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w 每一步都要求确认。
-z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
tar是Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过Linux的源代码,或许已经碰到过tar文件。tar是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或者从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar与文件系统无关,可以使用在ext2、ext3、JFS、Reiser和其它文件系统上。它支持各种备份介质,包括软盘、光盘写入器、可重写的光盘、JazZip、磁带、高端磁带等。Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。如果使用Linux源代码安装程序,一定使用过tar文件。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。tar官方网址是http://www.gnu. org/software/tar/tar.html。
请注意,不要忘了Linux是区分大小写的。例如,tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t和-T执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。
  tar是一个命令行的工具,没有图形界面。使用Konsole打开一个终端窗口,接下来是一个简单的备份命令(在/temp目录中创建一个back.tar的文件,/usr目录中所有内容都包含在其中。):
$tar cvf - /usr > /temp/back.tar
另外,tar命令支持前面第三讲中讲过的crontab命令,可以用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目录备份到hda-第一个IDE接口的主驱动器 (总是位于第一个硬盘)中,只要将下面语句添加到root的crontab中即可:
  $00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
一般情况下,以下这些目录是需要备份的:
◆    /etc 包含所有核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组,以及其它全局系统项。
◆    /var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。
◆    /home 包含所有默认用户的主目录,包括个人设置、已下载的文件和用户不希望失去的其它信息。
◆    /root 根(root)用户的主目录。
◆    /opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。
有些目录是可以不备份的:
◆    /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
◆    /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,就可以备份/dev。然而,如果计划还原到一个已安装的Linux 系统,那么备份/dev是没有必要的。
unzip
unzip命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>]
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f:更新现有的文件。
-l:显示压缩文件内所包含的文件。
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t:检查压缩文件是否正确。
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。
-v:执行是时显示详细的信息。
-z:仅显示压缩文件的备注文字。
-a:对文本文件进行必要的字符转换。
b:不要对文本文件进行字符转换。
-C:压缩文件中的文件名称区分大小写。
-j:不处理压缩文件中原有的目录路径。
-L:将压缩文件中的全部文件名改为小写。
-M:将输出结果送到more程序处理。
-n:解压缩时不要覆盖原有的文件。
-o:不必先询问用户,unzip执行后覆盖原有文件。
-P<密码>:使用zip的密码选项。
-q:执行时不显示任何信息。
-s:将文件名中的空白字符转换为底线字符。
-V:保留VMS的文件版本信息。
-X:解压缩时同时回存文件原来的UID/GID。
[.zip文件]:指定.zip压缩文件。
[文件]:指定要处理.zip压缩文件中的哪些文件。
-d<目录>:指定文件解压缩后所要存储的目录。
-x<文件>:指定不要处理.zip压缩文件中的哪些文件。
-Z unzip:-Z等于执行zipinfo指令。在Linux中,还提供了一个叫zipinfo的工具,能够察看zip压缩文件的详细信息。unzip最新版本是5.50。
gunzip
gunzip命令作用是解压文件,使用权限是所有用户。
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]
或者gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
-a或--ascii:使用ASCII文字模式。
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。
-h或--help:在线帮助。
-l或--list:列出压缩文件的相关信息。
-L或--license:显示版本与版权信息。
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。
-N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-q或--quiet:不显示警告信息。
-r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。
-t或--test:测试压缩文件是否正确无误。
-v或--verbose:显示指令执行过程。
-V或--version:显示版本信息。
gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。
unarj
unarj解压缩格式为.arj格式的文件,使用权限是所有用户。
unarj [eltx][.arj压缩文件]
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在Linux平台上几乎不存在与其功能匹配的工具,要解压缩.arj文件,就要使用unarj实用程序。unarj比ARJ慢,能力也不如ARJ,但至少能够顺利地抽取大多数.arj文件。unarj只能将文件抽取到当前的工作目录、列出档案内容,或者测试档案。从ARJ Software的站点或携带所需Linux发行版的FTP服务器上可以下载unarj源码。另外,unarj通常是基本Linux发行版的一部分,因此可以在主要发行版本的CD-ROM上找到它。如果需要可到所有Linux发行版链接的列表下载,ARJ软件网址为http://www.arjsoft.com,ARJ的下载页面为http://www.arjsoft.com/files.htm。unarj最新版本是2.65,注意unarj选项不是以减号(-)开头的。
mtools
mtools实际上是一个命令集合,是DOS文件系统的工具程序,它可以模拟许多DOS命令,使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:
mcopy a:*.*
也就是说,只需要在相应的DOS命令之前加上一个字母“m”,就可以完成对应的功能了。一般Linux发行版本中都有这个软件,可以使用下面命令检查一下。
rpm -qa|grep mtools
如果没有安装,也没有关系,可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是3.9.9,下载链接为http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。
mcd 目录名:改变MS DOS下的目录。
mcopy 源文件 目标文件:在MS DOS和Unix之间复制文件。
mdel 文件名:删除MS DOS下的文件。
mdir 目录名:显示MS DOS下的目录。
mformat 驱动器号:在低级格式化的软盘上创建MS DOS文件系统。
rnlabel 驱动器号:产生MS DOS下的卷标
mmd 目录名:建立MS DOS下的目录。
mrd 目录名:删除MS DOS下的目录。
mren 源文件 目标文件:重新命名已存在的MS DOS文件。
mtype 文件名:显示MS DOS文件的内容。
请注意,这些命令和对应的MS DOS命令非常相似。在mtools命令中,“/”和“\”是可以混用的。因为文件列表的是DOS系统下的文档,对大小写并不敏感,所以“CDE”和“cde”在这里是一样的。
(1)如果把软盘进行快速格式化,可以使用命令mformat:
mformat A:
mtools当初发展的目的是用来处理DOS文件系统的,所以只能用在FAT文件格式的分区上。需要注意的是,如果用mount命令来挂载了FAT16/32分区,那么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下,Linux就会将其视为文件系统本身的一部分,这时如果要对其操作就必须使用Linux本身所附带的指令集。
(2)将DOS盘上的文件htca.c复制到当前目录下,并用ls命令进行验证。
$ mcopy a:\htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c
man
man命令用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便和实用。
man 命令名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。
-M path:指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定;如果没有使用MANPATH, 则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。
-P pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变数MANPAGER设定,然后是环境变数PAGER;man缺省使用/usr/bin/less -is。
-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT的设定。
-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。
-c:即使有最新的cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。
-d:不要真的显示联机手册,只显示除错讯息。
-D:同时显示联机手册与除错讯息。
-h:显示求助讯息然后结束程式 。
-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。
-m system:依所指定的system名称而指定另一组的联机手册。
man:是manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难,可以输入man ps得到帮助信息,此时会显示出ps的手册页(man page)。
由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。
less中比较重要的功能键有:
[q] 退出;
[Enter] 一行行地下翻;
[Space] 一页页地下翻;
[/] 后跟一个字符串和[Enter]来查找字符串;
[n] 发现上一次查找的下一个匹配。
unencode
unencode命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。
uuencode [-hv] [源文件] 目标文件
-h:列出指令使用格式(help) 。
-v:列出版本信息。
uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始,以end作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。
uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。
uuencode [-hv] [file1 ...]
-h:列出指令使用格式(help)。
-v:列出版本信息。
mkdir
mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。
mkdir [options] 目录名
-m, --mode=模式:设定权限<模式>,与chmod类似。
-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。
-v, --verbose:每次创建新目录都显示信息。
--version:显示版本信息后离开。
在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:
$ mkdir -m 777 tsk
grep
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep [options]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
$grep [0-9 ]\{3 \}\.[0-0\\ ipfile
补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。
dd
dd命令用来复制文件,并根据参数将数据转换和格式化。
dd [options]
bs=字节:强迫 ibs=<字节>及obs=<字节>。
cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
count=块数目:只复制指定<块数目>的输入数据。
ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。
obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。
dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。
find
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
find [path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录。
-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。
-version:打印版本。
[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。
-name:支持统配符*和?。
-atime n:搜索在过去n天读取过的文件。
-ctime n:搜索在过去n天修改过的文件。
-group grpoupname:搜索所有组为grpoupname的文件。
-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。
-size n:搜索文件大小是n个block的文件。
-print:输出搜索结果,并且打印。
find命令查找文件的几种方法:
(1)根据文件名查找
例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:
find / -name lilo.conf
find命令后的“/”表示搜索整个硬盘。
(2)快速查找文件
根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
find /etc -name smb.conf
这样,使用“快速查找文件”方式可以缩短时间。
(3)根据部分文件名查找方法
有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:
find / -name *abvd*
输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
(4) 使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。
find /etc -size +500000c -and -mtime +1
mv
mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。
mv[options] 源文件或目录 目标文件或目录
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:
$ mv /usr/cbu/ * .
(2)将文件cjh.txt重命名为wjz.txt:
$ mv cjh.txt wjz.txt 
ls
ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。
ls [options][filename]
-a, --all:不隐藏任何以“.” 字符开始的项目。
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。
--author:印出每个文件著作者。
-b, --escape:以八进制溢出序列表示不可打印的字符。
--block-size=大小:块以指定<大小>的字节为单位。
-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。
-f:不进行排序,-aU参数生效,-lst参数失效。
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每个文件的inode号。
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。
-k:即--block-size=1K。
-l:使用较长格式列出信息。
-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。
-m:所有项目以逗号分隔,并填满整行行宽。
-n, --numeric-uid-gid:类似-l,但列出UID及GID号。
-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。
-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。
-Q, --quote-name:将项目名称括上双引号。
-r, --reverse:依相反次序排列。
-R, --recursive:同时列出所有子目录层。
-s, --size:以块大小为序。
ls命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l,
cat
cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。
cat [options] 文件1 文件2……
-n:由第一行开始对所有输出的行数编号。
-b:和-n相似,只不过对于空白行不编号。
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令
$ cat README 
(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:
$ cat README INSTALL File1
(3)cat还有一个重要的功能就是可以对行进行编号,这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。
使用cat命令/etc/named.conf文件进行编号
对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:
$ cat -b /etc/named.conf
ln
ln命令用来在文件之间创建链接,它的使用权限是所有用户。
ln [options] 源文件 [链接名]
-f:链结时先将源文件删除。
-d:允许系统管理者硬链结自己的目录。
-s:进行软链结(Symbolic Link)。
-b:将在链结时会被覆盖或删除的文件进行备份。
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。
1.利用符号链接快速访问关键目录

符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。
为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。
为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。
2.使用dd命令将init.rd格式的root.ram内容导入内存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命令系统调用
grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。
(1)如果要查询目录列表中的目录,方法如下:
$ ls -l | grep ∧d
(2)如果在一个目录中查询不包含目录的所有文件,方法如下:
$ ls -l | grep ∧[∧d]
(3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
PWD 显示当前的绝对路径
cd .. 退回上一层目录
cd ../.. 退回上两层目录
cd /home/alex3531/   移动到用户alex3531的主目录
cd -   移动到自己的主目录
ls -l  列出当前目录中的所有格式,包括当前目录(.)和父目录(..),包括长度、拥有者和权限,称为长列表格式。
touch
在目标目录中生成空文件aquota.user或aquota.group
# touch /home/aquota.user /home/aquota.group
改变现有文件的时间标志,使用不带开关的Touch命令时,文件的最后访问时间变成当前时间。
# touch /root/f0601.tif
CP命令:
cp file1 file2    /将file1的内容复制到目标文件file2中,目标文件得到新的生成日期和inode编号。
cp file* Dir1    /将多个文件复制到一个目录
cp -f file1 file2  /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示。
cp -i file1 file2  /如果文件file2已经存在,则这个命令覆盖其内容时会先发出提示。
cp -p file1 file2  /将file1内容复制到目标文件file2中,目标文件保持原有的生成日期和inode编号。
cp -r Dir1 Dir2  /将目录Dir1及其子目录内容复制到Dir2.(递归效果)
cp -u file1 file2  / 如果文件file2已经存在,但file1更新,则这个命令覆盖其内容是不发出提示。
说明:从一个分区向另一个分区复制文件时,不能使用cp -p file1 file2命令。
MV命令:如果要在Linux中更名文件,则要移动文件。
mv file1 file2     /将文件从file1变成file2,如果源与目标文件在同一卷中,则文件的inode号不变。
mv file* Dir1      /将多个文件移动到一个目录。
mv -f file1 file2    /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示。
mv -i file1 file2    /如果文件file2已经存在,则这个命令覆盖其内容时会先发出提示。
RM命令:用于删除文件与目录
rm file1   /删除file1而不提示确认。但这个命令不会覆盖alias rm=&#39;rm -i&#39;,其要求确认。
rm -d Dir1  /删除Dir1而不提示确认,但这个命令不会覆盖alias rm=&#39;rm -i&#39;,其要求确认。
rm -i file1  /提示用户确认之后删除file1
rm -f file2  /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示,甚至覆盖alias rm=&#39;rm -i&#39;
rm -r *    /递归删除文件,如果当前目录中还有子目录,则也删除其中的文件和目录。但这个命令不会覆盖alias rm=&#39;rm -i&#39;,其要求确认。
ln 文件连接命令
如果你和同时都在使用文件project,这个可以在主目录中生成一个连接文件。
命令格式:
假设project文件在/home/jm目录中,要生成mj的主目录中文件连接,使用下列命令:
# ln /home/jm/project /home/mj/project (硬链接)
# ln -s /home/jm/project /home/mj/project (软链接)
mkdir和rmdir命令
mkdir -p Dir1/Dir2   /生成目录Dir2。如果Dir1不存在,则-p开关让Linux也生成这个目录。两者都作为当前目录的子目录。
mkdir -m 755 /usr/Dir3 /生成目录Dir3,作为/usr的子目录。权限(755)是拥有者rwx,组中的其他成员和别人为rx
rmdir -p Dir1/Dir3   /删除目录Dir1和Dir3

Linux常用命令
(1)命令规则、路径和文件
命令规则:命令动词  [参数]  [操作对象]
路径:绝对路径、相对路径
文件:命名规则
文件通配符:* 匹配多个字符
?匹配单个字符
[abc] 匹配abc中任意一个字符
[!abc] 匹配abc之外的任意一个字符
(2)文件目录操作命令
ls touch cp mv rm ln
ls ----list 列文件或目录
用法:ls 参数:
-a:显示所有文件,包括隐藏文件
-l:以长格式显示
-F:附加文件类别信息
-d:显示目录
-t:按修改时间先后显示
-R:显示目录及下级子目录结构
范例:
ls -a        ls -alR      ls -F  

touch: 生成一个空文件或修改文件的时间
范例:
touch * :将当前目录下所有文件时间修改为当前系统时间
touch –d 20010602 test:将文件test的时间修改为20010602
touch test2:如果abc存在,则修改为当前系统时间,如果不存在,则生成一个为当前时间的空文件

cp - copy file
用法:cp –afpx source target
-a:尽可能保持文件的结构和属性
-p:保持原始文件日期
-f :如果目标文件已经存在,则覆盖它
-i :提示是否覆盖现有的普通目标文件
-R:包含子目录
范例:
cp ls.txt mydir1
cp -a mydir1 mydir2
cp /etc/syslog.conf ./
cp -a /etc/sound/ /home/so/

mv - move file
用法:mv –b source target
-b:给被覆盖的文件建立一个备份
范例:
mv abc bcd      mv abc mydir/     mv -b abc mydir/

rm - remove
rm –irf 文件或目录
i:交互模式
r:删除目录及以下所有内容
f:强制删除
注意:Root用户在删除文件时要特别小心、权限问题

cat more less head tail
cat:输出文本文件内容(文本文件合并)
范例: cat tt.txt
   cat  txta txtb > txt

more:按页显示文件
范例:more tt.txt

less:按页显示文件,可以使用翻页键
范例:less tt.txt

head:显示文件的前?行
范例:head –20 /etc/passwd

tail:显示文件的后?行
范例:tail -20 /etc/passwd      tail +20 /etc/passwd

pwd cd mkdir rmdir
cd - change directory
用法:cd [目录] 作用:切换路径
范例:cd ..      cd /      cd ../usr

pwd - print work directory
用法:pwd
作用:显示当前工作目录
范例:配合cd

mkdir创建和删除目录
mkdir 用法: mkdir 目录名
作用:创建目录新的目录
范例:mkdir abc
rmdir
用法: rmdir目录名
作用:删除空目录
范例:rmdir abc

find grep
find作用:查找文件或目录
用法:find 查找路径 匹配条件
动作 常用匹配条件
name ‘字符串’
lname ‘字符串’
user 用户名
group 组名
perm xxxx
links n
atime n
mtime n
grep功能:在文件中查找匹配的字符串
格式:grep [参数] “待查字符串” 文件
例子: grep ‘abc’ myfile
    grep ‘abc’ *
    grep -B 4 ‘abc’ *
grep -2 ‘abc’ *.txt

tar gzip compress
压缩与解压缩-常用压缩工具
gzip,gunzip   .gz
zip,unzip    .zip
tar       .tar
compress    .Z
bzip2     .bz2

sort paste
sort:将文本文件排序
范例
sort passwd
sort –n test :将test按照数字大小排序
sort test1 test2 test3:将文件test1,test2,test3的内容联合排序
paste:将不同文件合并
范例:paste test1 test2 > test3

(3)信息显示命令
dmesg显示机器引导时内核显示的状态信息
file :测试文件类型
stat:显示文件访问、修改、变更时间、大小、属主和组以及许可模式等信息范例: stat abc.txt
who w :查看其他登录的用户
who和w使用范例
who
who -wi
w
whoami:查看登录用户自己的信息
hostname:查看主机名
uname:显示系统信息
du:报告指定的文件(目录)已使用的磁盘空间的总量
df:报告文件系统磁盘空间的使用情况
free:查看当前内存和交换空间的使用情况

(4)用户通信与网络命令
write:向另外一个用户发信息。以CTRL+D作为结束
使用举例 : $ write webmaster
wall:向所有用户广播信息。
格式:wall [message] [文件名]
$ wall Happy new year!
mesg:是否接受其它用户发来的信息 mesg [y|n]
talk:适用于双向通信的工具 ,格式:talk 用户名
mail:字符界面下的MUA
格式:mail [选项] [用户地址]
使用:阅读邮件  {mail    ( h  f )}
发送邮件  {mail username@domain}
删除邮件  {mail    ( d  u )}
保存邮件到文件 {mail  ( s n filename)}
保存到  {mail  ( s n+filename)}
将信的内容保存邮件到文件或文件夹(w)
从文件中读取邮件 {mail -f filename}
从文件夹中读取邮件 {mail -f +filename}
回复邮件  {mail  ( r n)}
ftp:客户端程序,常用子命令:
        open close asc bin
        dir/mdir  ls  pwd cd
        get/put mget/mput newer
        delete/mdelete mkdir/rmdir rename
        lcd !cmd
        system bye/quit help/?
lynx:字符界面的浏览器
(5) 其他命令:
     clear:清屏
     wc:文本文件中单词的计数(word count)
     date:显示和更改系统日期
     cal:显示日历
su:切换登录用户
passwd:更改用户密码
help:用于查看Linux内置命令的帮助信息
man:列出指定命令的帮助手册

7、Shell的高级使用
(1)重定向:
标准输入、输出:Study、 Stout、Stderr
输出重定向:> 、>>
错误输出重定向:2> 、&>
输入重定向:< 、<<!…………!
(2)管道:将一个命令的输出传送给令一个命令,作为另一个命令的输入
使用方法:命令1|命令2|命令3……|命令n
使用举例 ls -Rl /etc |more
$ cat /etc/passwd | wc
$ cat /etc/passwd | grep lrj
$ ps -aux |tail +2 |more

(3)命令替换
`cmd`或$(cmd)
例如:$wall `date`
$cd `pwd`

(4)命令执行顺序:命令间隔符说明
;  用;间隔的各命令按顺序依次执行
&& 前后命令的执行存在“逻辑与”关系,只有&&前面的命令执行成功后,它后面的命令才被执行
||  前后命令的执行存在“逻辑或”关系,只有||前面的命令执行失败后,它后面的命令才被执行
几个命令间隔符同时出现在同一个命令行上时,其优先级为: ;的优先级最低 ||和&&具有相同的优先级 ,同优先级,按从左到右的结合原则执行命令行 ,使用()可以组合命令行中的命令,改变执行顺序。
命令的多种执行顺序举例:
$ date ;pwd
顺序执行date和pwd命令。
$ mail jjh < message && rm message
若文件message被mail发送出去,就把它删除,否则不删除。
$ write jjh < report || mail jjh < report
若对方拒绝对话,就将信息发送到他的信箱里。
$ date ; cat file |wc
只有cat命令的信息通过管道送给wc命令。
$ (date; cat file) |wc
  date和cat命令的信息都通过管道送给wc命令。

8、磁盘和文件系统管理
(1)什么是文件系统?
文件系统是指存放在某个已格式化的存储介质上(如:软盘、硬盘、CDROM)的、能被操作系统管理的一组文件,以及实施管理所需的一些数据结构的总体。 Linux的文件系统是树形结构的。

(2)磁盘分区(fdisk)
fdisk命令的子命令:
m:显示帮助(命令清单)
a:激活分区的可引导标志
l:列出可选的分区类型
n:添加新分区
d:删除已经存在的分区
p:显示分区表
t:改变分区的文件系统类型
w:写分区表
q:退出

(3)创建文件系统
# mkfs -t ext3 -c /dev/hda2
# mkfs -c /dev/hda2
-t:指定文件系统类型
-c:建立文件系统前先检测有无坏块
# mkfs -t ext2 -c /dev/sda1
# mkfs -t vfat -c /dev/hdb2

(4)挂装和卸装文件系统
# mount -t ext3 /dev/sdb1 /opt
# mount -t vfat /dev/hda6 /mnt/win
# mount /mnt/cdrom
# mount /mnt/floppy
# mount
注意:挂装目录必须存在
Linux专门提供了挂装目录/mnt
不要在挂装目录下进行挂装操作
将软盘或光盘放入驱动器后在实施挂装操作
卸载前不要取出软盘或光盘
不能在同一个目录下挂装两个文件系统
# umount /mnt/cdrom
# umount /mnt/floppy
# umount /dev/hda6
# umount /dev/sdb1
# umount /opt
注意:不能在挂装目录下进行卸载操作

(5)文件系统管理的常用命令
df:  显示文件系统的统计数据
du:  显示硬盘使用情况
ln:  创建链接文件
find :查找文件
dd: 文件拷贝(diskdump),将指定的输入文件拷贝到输出文件上去
几个参数 if:输入文件  of:输出文件 bs:块字节大小 count:块数
命令的目的  MS-DOS  Linux  Linux的简单实例  
复制文件  copy  cp  cp thisfile.txt /home/thisdirectory  
转移文件  move  mv  mv thisfile.txt /home/thisdirectory  
列举文件  dir  ls  ls  
清除屏幕  cls  clear  clear  
关闭shell提示  exit  exit  exit  
显示或设置日期  date  date  date  
删除文件  del  rm  rm thisfile.txt  
把输出显示到屏幕上  echo  echo  echo this message  
用简单文本编辑器来编辑文件  edit  gedit(注a)  gedit thisfile.txt  
比较文件内容  fc  diff  diff file1 file2  
在文件中找字串  find  grep  grep词或词组thisfile.txt  
格式化软盘  format a:(如果软盘是在A驱动器中)  mke2fs或mformat (注b)  /sbin/mke2fs /dev/fd0 (/dev/fd0是Linux中与A驱动器等同的驱动器)  
显示命令帮助  命令 /?  man(注c)  man命令  
创建目录  mkdir  mkdir  mkdir目录  
查看文件  more  less(注d)  less thisfile.txt  
重新命名文件  ren  mv(注e)  mv thisfile.txt thatfile.txt  
显示用户在文件系统中的位置  chdir  pwd  pwd  
用指定的路径(绝对路径)来更换目录  cd 路径名  cd 路径名  cd /directory/directory  
用一个相对路径(relative path)来更换目录  cd..  cd..  cd..  
显示时间  time  date  date  
显示已被使用的内存数量  mem  free  free
回复

使用道具 举报

发表于 2009-2-18 09:23:24 | 显示全部楼层
谢谢,收了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-22 16:58 , Processed in 0.264012 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表