第二章 UNIX基本命令
本章重要讲述有关UNIX系统的基本指令格式及用法。在UNIX系统中,有着许多不同的指令,它们完成不同的功能。而通常一条指令也会有不同的用法,用以完成相似但不尽相同的功能。
第一节 指令格式
操作系统都要提供一个人与机器对话的环境,在这个环境中,人把想做的操作以“指令”的格式告诉计算机,当计算机“看懂”这条“指令”以后,将作相应的工作,必要时将结果显示或打印出来,这个环境通常就叫作人机界面。在这个界面下,计算机显示出一个提示符(就是每行最左边由计算机显示的字符),提示符的后面表示用户可以紧接着在这里从健盘输入命令。UNIX系统中一般有三种提示符:
通常情况下: $
在c-shell中: %
超级用户: #
一:指令一般格式:
UNIX的指令一般分为三个部分:
提示符 指令名 选择项 参数
指令都要给出其名称,否则UNIX不知道你要运行哪一条指令,每条指令都有具体的名称,但是有些指令没有选项或参数。在指令的名称,选项,参数之间需要有一个以上的空格隔开。例如:

指令都执行一定的工作,选项决定些工作如何去做,参数描写指令处理的对象,最后由回车键结束输入,并开始指令的执行。如果要在同一行输入多个指令,只要在指令间以分号(;)隔开,这样,UNIX会依次执行这些指令.
如:$ ls -l dev ; cat book <CR>
与 $ ls -l dev <CR>
$ cat book <CR>
的效果相同,只是前者是一次性输入两条指令,让UNIX依次执行,而后者每输入一条指令UNIX便执行一条。
二:指令的选项
指令的选项,让人们去指挥指令,让同一指令去完成不同的具体操作,或者说,让我们去控制每一条指令的完成方式。指令的选项都以减号“-”的打头,后面跟一个或多个字母。 如:列出当前目录下的文件名称一般用ls命令,然而当我们使用不同的选项时,同是列目录,列出来的效果也不一样:
$ls <CR>
bnf
bnhi
bnm
cal
hu
jan.rosa
ls1
mbox
trash
$ls -l <CR>
total 10
-rw------- 1 fhl group 476 Dec 04 11:05 bnf
-rw------- 1 fhl group 146 Dec 04 10:59 bnhi
-rw------- 1 fhl group 267 Dec 04 11:00 bnm
-rw------- 1 fhl group 144 Dec 04 10:42 cal
drwx------ 2 fhl group 64 Nov 28 11:50 hu
-rw------- 1 fhl group 40 Dec 02 18:19 jan.rosa
-rw------- 1 fhl group 0 Dec 04 11:29 l2
-rw------- 1 fhl group 107 Dec 04 11:29 ls1
-rw------- 1 fhl group 1173 Dec 02 18:09 mbox
drwxr-xr-x 2 fhl group 48 Nov 26 15:05 trash
当一个指令有多个选项时,可以将选项的代号(字母)连成一串写在一个“-”的后面,也可以分别以几个“-”来说明,而各个选项的先后顺序其实并无所谓
。如:
$ls -FIR deve
与 $ls -F -I -R deve
就是完全相同的指令。
UNIX有许多指令,而通常每一指令又有许多选项,不过一般来说,我们不必记住这么多指令的每一项,只要记住常用选项,其它待使用时再查阅有关资料。
三:指令的参数
指令的参数就是指令的操作对象,一般在每次执行指令时都不一样,比如说我们想到某一目录下的文件列表,就得在列表指令的参数中说明到底要到哪个目录下的列表,但当我们下次用这条指令时,就不一定是上次同一目录的列表了。比如说:
$ls -l /dev <CR>
total 28
crw-rw-rw- 1 root other 60,126 Dec 04 10:35 X0R
crw-rw-rw- 1 root other 60,127 Jun 04 1992 X0S
crw-rw-rw- 1 root other 60,124 Jun 04 1992 X1R
crw-rw-rw- 1 root other 60,125 Jun 04 1992 X1S
crw-rw-rw- 1 root other 60,122 Jun 04 1992 X2R
crw-rw-rw- 1 root other 60,123 Jun 04 1992 X2S
crw-rw-rw- 1 root other 60,120 Jun 04 1992 X3R
crw-rw-rw- 1 root other 60,121 Jun 04 1992 X3S
crw-rw-rw- 1 root other 60,118 Jun 04 1992 X4R
crw-rw-rw- 1 root other 60,119 Jun 04 1992 X4S
crw-rw-rw- 1 root other 60,116 Jun 04 1992 X5R
crw-rw-rw- 1 root other 60,117 Jun 04 1992 X5S
$ls -l /etc <CR>
total 14690
-rwxr-xr-x 1 root sys 649 Jun 04 1992 TIMEZONE
-rw-r--r-- 1 root root 27 Jun 04 1992 X0.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X1.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X2.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X3.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X4.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X5.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X6.hosts
-rw-r--r-- 1 root root 27 Jun 04 1992 X7.hosts
-rwx--x--x 1 bin bin 82480 May 07 1992 _fst
这两条指令虽是同一指令“ls”,选项也一样“-l”,但因为它们的参数不一样,所以执行效果也不一样:一个是列/dev目录下的文件,另一个是列/etc目录下的文件,两个目录下的文件不一样,当然列出来的内容就不一样。
我们在用一条UNIX指令之前,只要弄清它的选项和参数,就可以在指示符下输入这条指令并让机器执行它了。