附录A Linux常用命令
名称:cat
使用权限:
所有使用者
使用方式:
cat[-AbeEnstTuv][—help][—version]fileName
说明:
把文件串连接后传到基本输出(屏幕或加>fileName到另一个文件)
参数:
-n或—number由1开始对所有输出的行数编号
-b或—number-nonblank和-n相似,只不过对于空白行不编号
-s或—squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行
-v或—show-nonprinting
范例:
把textfile1的文件内容加上行号后输入到textfile2这个文件里:
cat-n textfile1>textfile2
把textfile1和textfile2的文件内容加上行号(空白行不加)之后将内容附加到text-file3:
cat-b textfile1 textfile2>>textfile 3
名称:cd
使用权限:
所有使用者
使用方式:
cd[dirName]
说明:
变换工作目录至dirName。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的主目录(也就是刚login时所在的目录)。
另外,“~”也表示为主目录的意思,“.”则是表示目前所在的目录,“..”则表示目前目录位置的上一层目录。
范例:
跳到/usr/bin/:cd/usr/bin
跳到自己的主目录:cd~
跳到目前目录的上上两层:cd../..
指令名称:chmod
使用权限:
所有使用者
使用方式:
chmod[-cfvR][—help][—version]mode file…
说明:
Linux/UNIX的文件存取权限分为三级:文件拥有者、群组、其他。利用chmod可以藉以控制文件如何被他人所存取。
参数:
mode:权限设定字符串,格式如下:[ugoa…][+-=][rwxX]…][,…],其中u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限、-表示取消权限、=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
-c:若该文件权限确实已经更改,才显示其更改动作
-f:若该文件权限无法被更改也不要显示错误信息
-v:显示权限变更的详细资料
-R:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
—help:显示辅助说明
—version:显示版本
范例:
将文件file1.txt设为所有人皆可读取:
chmod ugo+r file1.txt
将文件file1.txt设为所有人皆可读取:
chmod a+r file1.txt
将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmod ug+w,o-wfile1.txt file2.txt
将ex1.py设定为只有该文件拥有者可以执行:
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取:
chmod-R a+r*
补充:
此外chmod也可以用数字来表示权限,如chmod 777 file。
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7。
若要rw-属性则4+2=6。
若要r-x属性则4+1=7。
范例:
chmod a=rwx file和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程序具有root的权限
名称:chown
使用权限:
root
使用方式:
chmod[-cfhvR][—help][—version]user[:group]file…
说明:
Linux/UNIX是多用户多任务操作系统,所有的文件皆有拥有者。利用chown可以将文件的拥有者加以改变。一般来说,这个指令只是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以将自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
参数:
user:新的文件拥有者的使用者IDgroup:新的文件拥有者的使用者群体 (group)-c:若该文件拥有者确实已经更改,才显示其更改动作-f:若该文件拥有者无法被更改也不要显示错误信息-h:只对于连接(link)进行变更,而非该link真正指向的文件-v:显示拥有者变更的详细资料-R:对目前目录下的所有文件与子目录进行相同的拥有者变更(即以递归的方式逐个变更)—help:显示辅助说明—version:显示版本。
范例:
将文件file1.txt的拥有者设为users群体的使用者jessie:
chown jessie:users file1.txt
将目前目录下的所有文件与子目录的拥有者皆设为users群体的使用者lamport:
chmod-R lamport:users*
名称:cp
使用权限:
所有使用者
使用方式:
cp[options]source dest
cp[options]source…directory
说明:
将一个文件复制至另一文件,或将数个文件拷贝至另一目录。
选项:
-a尽可能将文件状态、权限等资料都照原状予以复制
-r若source中含有目录名,则将目录下之文件亦皆依序复制至目的地
-f若目的地已经有相同文件名的文件存在,则在复制前先予以删除再行复制
范例:
将文件aaa复制(已存在),并命名为bbb:
cp aaa bbb
将所有的C语言程序复制至Finished子目录中:
cp*. c Finished
名称:cut
使用权限:
所有使用者
用法:
cut-cnum1-num2 filename
说明:
显示每行从开头算起num1到num2的文字。
范例:
假如文件example内容如下:
test2
this is test1
显示开头算起前6个字符
cut-c0-6 example
test2
this i
名称:find
用法:
find[expression]
说明:
将文件系统内符合expression的文件显示来。你可以指出文件的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的才会被显示来。
find根据下列规则判断path和expression,在命令列上第一个-(),!之前的部分为path,之后的是expression。如果path是空字符串则使用目前路径,如果expression是空字符串则使用-print为缺省expression。
expression中可使用的选项有二三十个之多,在此只介绍最常用的部分。
-mount,-xdev:只检查和指定目录在同一个文件系统下的文件,避免显示其他文件系统中的文件
-amin n:在过去n分钟内被读取过
-anewer file:比文件file更晚被读取过的文件
-atime n:在过去n天过读取过的文件
-cmin n:在过去n分钟内被修改过
-cnewer file:比文件file更新的文件
-ctime n:在过去n天过修改过的文件
-empty:空的文件-gid n or-group name:gid是n或是group名称是name
-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写
-name name,-iname name:文件名称符合name的文件。iname会忽略大小写
-size n:文件大小是n单位,b代表512字节的区块,c表示位数,k表示kilo bytes,w是二个字节。-type c:文件类型是c的文件
d:目录
c:字型设备文件
b:区块设备文件
p:具名队列
f:一般文件
l:符号连结
s:socket
-pid n:process id是n的文件
可以使用()将运算式分隔,并使用下列运算。
exp1-and exp2
!expr
-not expr
exp1-or exp2
exp1,exp2
范例:
将目前目录及其子目录下所有延伸文件名是c的文件显示出来。
#find.-name“*.c”
将目前目录及其下子目录中所有一般文件显示
#find.-ftype f
将目前目录及其子目录下所有最近20分钟内更新过的文件显示
#find.-ctime-20
名称:less
使用权限:
所有使用者
使用方式:
less[Option]filename
说明:
less的作用与more十分相似,都可以用来浏览文字文件的内容,不同的是less允许使用者往回卷动。
已浏览已经看过的部分,同时因为less并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文书编辑器(如vi)来的快速。
范例:
分屏显示文件text1的内容:
less text1
名称:ln
使用权限:
所有使用者
使用方式:
ln[options]source dist,其中option的格式为:
[-bdfinsvF][-S backup-suffix][-V{numbered,existing,simple}][—help][—version][—]
说明:
Linux/UNIX文件系统中,有所谓的连接(link),我们可以将其视为文件的别名,而连接又可分为两种:硬连接(hard link)与软连接(symbolic link),硬连接的意思是一个文件可以有多个名称,而软连接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。硬连接是存在同一个文件系统中,而软连接却可以跨越不同的文件系统。ln source dist是产生一个连接(dist)到source,至于使用硬连接或软连接则由参数决定。不论是硬连接或软连接都不会将原本的文件复制一份,只会占用非常少量的软盘空间。
参数:
-f:链接时先将与dist同文件名的文件删除
-d:允许系统管理者硬连接自己的目录
-i:在删除与dist同文件名的文件时先进行询问
-n:在进行软连接时,将dist视为一般的文件
-s:进行软连接(symbolic link)
-v:在连接之前显示其文件名
-b:将在连接时会被覆写或删除的文件进行备份
-S SUFFIX:将备份的文件都加上SUFFIX的字尾
-V METHOD:指定备份的方式
—help:显示辅助说明
—version:显示版本
范例:
将文件yy产生一个symbolic link:zz
ln-s yy zz
将文件yy产生一个hard link:zz
ln yy xx
名称:locate
使用权限:
所有使用者
使用方式:
locate[-q][-d][—database=]
locate[-r][—regexp=]
locate[-qv][-o][—output=]
locate[-e][-f]<[-l][-c]
<[-U][-u]>
locate[-Vh][—version][—help]
说明:
locate让使用者可以很快速的搜寻文件系统内是否有指定的文件。其方法是先建立一个包括系统内所有文件名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入文件系统之中了。在一般的发行版之中,资料库的建立都被放在contab中自动执行。一般使用者在使用时只要用locate your_file_name的形式就可以了。
参数:
-u/-U:建立资料库,-u会由根目录开始,-U则可以指定开始的位置
-e:将……排除在寻找的范围之外
-l:如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的文件。这会使速度减慢,因为locate必须至实际的文件系统中取得文件的权限资料
-f:将特定的文件系统排除在外,例如我们没有道理要把proc文件系统中的文件放在资料库中
-q:安静模式,不会显示任何错误信息
-n:至多显示几个输出
-r:使用正则表达式做寻找的条件
-o:指定资料库存的名称
-d:指定资料库的路径
-h:显示辅助信息
-v:显示更多的信息
-V:显示程序的版本信息
范例:
locate chdrv:寻找所有叫chdrv的文件
locate-n100 a.out:寻找所有叫a.out的文件,但最多只显示100个
locate-u:建立资料库
名称:ls
使用权限:
所有使用者
使用方式:
ls[-alrtAFR][name…]
说明:
显示指定工作目录下的内容(显示目前工作目录所含的文件及子目录)。
选项:
-a显示所有文件及目录(ls内定将文件名或目录名称开头为“.”的视为隐藏文件,不会显示)
-l除文件名称外,亦将文件型态、权限、拥有者、文件大小等信息详细显示
-r将文件以相反次序显示(原定依英文字母次序)
-t将文件依建立时间之先后次序显示
-A同-a,但不显示“.”(目前目录)及“..”(父目录)
-F在显示的文件名称后加一符号。例如可执行文件则加“*”,目录则加“/”
-R若目录下有文件,则以下之文件亦皆依序显示
范例:
显示目前工作目录下所有名称是s开头的文件,愈新的排愈后面:
ls-ltr s*
将/bin目录以下所有目录及文件详细资料显示:
ls-lR/bin
显示目前工作目录下所有文件及目录。目录于名称后加“/”,可执行文件于名称后加“*”:
ls-AF
名称:more
使用权限:
所有使用者
使用方式:
more[-dlfpcsu][-num][+/pattern][+linenum][fileNames..]
说明:
类似cat,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字符串的功能(与vi相似),使用中的说明文件,请按h。
选项:
-num一次显示的行数
-d提示使用者,在画面下方显示[Press space to continue,q to quit.],如果使用者按错键,则会显示[Press h for instructions.]而不是“哔”声
-l取消遇见特殊位^L(送纸位)时会暂停的功能
-f计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p不以卷动的方式显示每一页,而是先清除屏幕后再显示内容-c跟-p相似,不同的是先显示内容再清除其他旧资料
-s当遇到有连续两行以上的空白行,就代换为一行的空白行
-u不显示下引号(根据环境变数TERM指定的terminal而有所不同)
+/在每个文件显示前搜寻该字符串(pattern),然后从该字符串之后开始显示+num从第num行开始显示
fileNames欲显示内容的文件,可为复数个数
范例:
more-s testfile逐页显示testfile的文件内容,如有连续两行以上空白行则以一行空白行显示。
more+20 testfile从第20行开始显示testfile的文件内容。
名称:mv
使用权限:
所有使用者
使用方式:
mv[options]source dest
mv[options]source…directory
说明:
将一个文件移至另一文件,或将数个文件移至另一目录。
选项:
-i若目的地已有同名文件,则先询问是否覆盖旧文件。
范例:
将文件aaa更名为bbb:
mv aaa bbb
将所有的C语言程序移至Finished子目录中:
mv-i*. c Finished
名称:rm
使用权限:
所有使用者
使用方式:
rm[options]name…
说明:
删除文件及目录。
参数:
-i删除前逐一询问确认。
-f即使原文件属性设为只读,也直接删除,无需逐一确认。
-r将目录及以下之文件也逐一删除。
范例:
删除所有C语言程序文件。删除前逐一询问确认:
rm-i*.c
将Finished子目录及子目录中所有文件删除:
rm-r Finished
名称:rmdir
使用权限:
于目前目录有适当权限的所有使用者
使用方式:
rmdir[-p]dirName
说明:
删除空的目录。
参数:
-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
范例:
将工作目录下,名为AAA的子目录删除:
rmdir AAA
在工作目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除。
rmdir-p BBB/ Test
名称:split
使用权限:
所有使用者
使用方式:
split[OPTION][INPUT[PREFIX]
说明:
将一个文件分割成数个。而从INPUT分割输出成固定大小的文件,其文件名依序为PREFIXaa,PREFIXab…PREFIX缺省值为x。若没有INPUT文件,则从标准输入读进资料。
参数:
-b,—bytes=SIZE,SIZE值为每一输出文件的大小,单位为byte
-C,—line-bytes=SIZE,每一输出文件中,单行的最大byte数
-l,—lines=NUMBER,NUMBER值为每一输出文件的列数大小
-NUMBER,与-l NUMBER相同
—verbose,于每个输出文件被开启前,打显示帧错信息到标准错误输出
—help,显示辅助信息然后退出
—version,显示版本信息然后退出
SIZE可选单位:b代表512,k代表1K,m代表1 Meg。
范例:
PostgresSQL大型资料库备份与回存:因Postgres允许表格大过你系统文件的最大容量,所以要将表格dump到单一的文件可能会有问题,使用split进行文件分割。
pg_dump dbname|split-b1m-filename.dump.
重新载入:
createdb dbname
cat filename.dump.*|pg sql dbname
名称:touch
使用权限:
所有使用者
使用方式:
touch[-acfm][-r reference-file][—file=reference-file][-t MMDDhhmm[CC]YY][.ss][-d time][—date=time][—time={atime,access,use,mtime,modify}][—no-create][—help][—version]file1[file2…]
说明:
touch指令改变文件的时间记录。ls-l可以显示文件的时间记录。
参数:
a改变文件的读取时间记录
m改变文件的修改时间记录
c假如目的文件不存在,不会建立新的文件。与—no-create的效果一样
f不使用,是为了与其他UNIX系统的相容性而保留
r使用参考文件的时间记录,与—file的效果一样
d设定时间与日期,可以使用各种不同的格式
t设定文件的时间记录,格式与date指令相同
—no-create不会建立新文件。
—help显示指令格式。
—version显示版本信息。
范例:
最简单的使用方式,将文件的时候记录改为现在的时间。若文件不存在,系统会建立一个新的文件。
touch file
将file的时间记录改为5月6日18点3分,公元两千年。时间的格式可以参考date指令,至少需输入MMDDHHmm,就是月日时与分。
touch-c-t05061803 file
touch-c-t050618032000 file
将file的时间记录改变成与referencefile一样。
touch-r referencefile file
将file的时间记录改成5月6日18点3分,公元两千年。时间可以使用am,pm或是24小时的格式,日期可以使用其他格式如6 May 2000。
touch-d“6:03pm”file
touch-d“05/06/2000”file
touch-d“6:03pm05/06/2000”file
名称:at
使用权限:
所有使用者
使用方式:
at-V[-q queue][-f file][-mldbv]TIME
说明:
at可以让使用者指定在TIME这个特定时刻执行某个程序或指令,TIME的格式是HH∶MM其中的HH为小时,MM为分钟,甚至你也可以指定am,pm,midnight,noon,teatime(就是下午4点钟)等口语词。
如果想要指定超过一天内的时间,则可以用MMDDYY或者MM/DD/YY的格式,其中MM是分钟,DD是第几日,YY是指年份。另外,使用者甚至也可以使用像是now+时间间隔来弹性指定时间,其中的时间间隔可以是minutes,hours,days,weeks。
另外,使用者也可指定today或tomorrow来表示今天或明天。当指定了时间并按下enter之后,at会进入交谈模式并要求输入指令或程序,当你输入完后按下ctrl+D即可完成所有动作,至于执行的结果将会寄回你的帐号中。
选项:
-V:显示版本编号
-q:使用指定的队列(Queue)来储存,at的资料是存放在所谓的queue中,使用者可以同时使用多个queue,而queue的编号为a,b,c…z以及A,B,…Z共52个
-m:即使程序/指令执行完成后没有输出结果,也要寄封信给使用者
-f file:读入预先写好的命令文件。使用者不一定要使用交谈模式来输入,可以先将所有的指令先写入文件后再一次读入
-l:显示所有的指令(使用者也可以直接使用atq而不用at-l)
-d:删除指令(使用者也可以直接使用atrm而不用at-d)
-v:显示所有已经完成但尚未删除的指令
范例:
三天后的下午5点钟执行/bin/ls:
at 5pm+3 days/bin/ls
三个星期后的下午5点钟执行/bin/ls:
at 5pm+2 weeks/bin/ls
明天的17:20执行/bin/date:
at 17:20 tomorrow/bin/date
1999年的最后一天的最后一分钟显示the end of world!
at 23 :5912/31/1999 echo the end of world!
名称:cal
使用权限:
所有使用者
使用方式:
cal[-mjy][month[year]
说明:
显示日历。若只有一个参数,则代表年份(1~9999),显示该年的年历。年份必须全部写出:“cal 89”将不会是显示1989年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。
参数:
-m:以星期一为每周的第一天方式显示
-j:以凯撒历显示,即以一月一日起的天数显示
-y:显示今年年历
范例:
cal:显示本月的月历。
cal 2001:显示公元2001年年历。
cal 5 2001:显示公元2001年5月月历。
cal-m:以星期一为每周的第一天方式,显示本月的月历。
cal-jy:以一月一日起的天数显示今年的年历。
名称:crontab
使用权限:
所有使用者
使用方式:
crontab[-u user]filecrontab[-u user]{-l|-r|-e}
说明:
crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user是指设定指定user的时程表,这个前提是你必需要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-u user的话,就是表示设定自己的时程表。
参数:
-e:执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL环境变数来指定使用那个文字编辑器(比如说setenv VISUAL joe)
-r:删除目前的时程表
-l:显示目前的时程表
补充:
时程表的格式为:f1 f2 f3 f4 f5 program
其中f1是表示分钟,f2表示小时,f3表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。program表示要执行的程序。
当f1为时表示每分钟都要执行program,f2为时表示每小时都要执行程序,其余类推
当f1为a-b时表示从第a分钟到第b分钟这段时间内要执行,f2为a-b时表示从第a到第b小时都要执行,其余类推
当f1为/n时表示每n分钟个时间间隔执行一次,f2为/n表示每n小时个时间间隔执行一次,其余类推
当f1为a,b,c…时表示第a,b,c…分钟要执行,f2为a,b,c…时表示第a,b,c…个小时要执行,其余类推
使用者也可以将所有的设定先存放在文件file中,用crontab file的方式来设定时程表。
范例:
每月每天每小时的第0分钟执行一次/bin/ls:
0 7*/bin/ls
在12月内,每天的早上6点到12点中,每隔20分钟执行一次/usr/bin/backup:
0 6-12/312/usr/bin/backup
周一到周五每天下午5:00寄一封信给alex@domain.name:
0 17**1-5 mail-s“hi”alex@domain.name</tmp/maildata
每月每天的午夜0点20分,2点20分,4点20分….执行echo“haha”
200-23/2*echo“haha”
注意:
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上>/dev/null 2>&1即可。
名称:date
使用权限:
所有使用者
使用方式:
date[-u][-d datestr][-s datestr][—utc][—universal][—date=datestr][—set=datestr][—help][—version][+formAT][MMDDhhmm[CC]YY][.ss]
说明:
date可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
%:显示%
%n:下一行
%t:跳格
%H:小时(00..23)
%I:小时(01..12)
%k:小时(0..23)
%l:小时(1..12)
%M:分钟(00..59)
%p:显示本地AM或PM
%r:直接显示时间(12小时制,格式为hh:mm:ss[AP]M)
%s:从1970年1月1日00∶00∶00 UTC到目前为止的秒数
%S:秒(00..61)
%T:直接显示时间(24小时制)
%X:相当于%H:%M:%S
%Z:显示时区
日期方面:
%a:星期几(Sun..Sat)
%A:星期几(Sunday..Saturday)
%b:月份(Jan..Dec)
%B:月份(January..December)
%c:直接显示日期与时间
%d:日(01..31)
%D:直接显示日期(mm/dd/yy)
%h:同%b
%j:一年中的第几天(001..366)
%m:月份(01..12)
%U:一年中的第几周(00..53)(以Sunday为一周的第一天的情形)
%w:一周中的第几天(0..6)
%W:一年中的第几周(00..53)(以Monday为一周的第一天的情形)
%x:直接显示日期(mm/dd/yy)
%y:年份的最后两位数字(00.99)
%Y:完整年份(0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为MMDDhhmm[CC]YY][.ss],其中MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字,YY为年份后两位数字,ss为秒数
选项:
-d datestr:显示datestr中所设定的时间(非系统时间)
—help:显示辅助信息
-s datestr:将系统时间设为datestr中所设定的时间
-u:显示目前的格林威治时间
—version:显示版本编号
范例:
显示时间后跳行,再显示目前日期:
date+%T%n%D
显示月份与日数:
date+%B%d
显示日期与设定时间(12:34:56):
date—date 12:34:56
注意:
当你不希望出现无意义的0时(比如说1999/03/07),则可以在标记中插入-符号,比如说date+%-H:%-M:%-S会把时分秒中无意义的0给去掉,像是原本的08:09:04会变为8:9:4。另外,只有取得权限者(比如说root)才能设定系统时间。
当你以root身分更改了系统时间之后,请记得以clock-w来将系统时间写入CMOS中,这样下次重新开机时系统时间才会持续保持最新的正确值。
名称:sleep
使用权限:
所有使用者
使用方式:
sleep[—help][—version]number[smhd]说明:
sleep可以用来将目前动作延迟一段时间
参数说明:
—help:显示辅助信息
—version:显示版本编号
number:时间长度,后面可接s、m、h或d
其中s为秒,m为分钟,h为小时,d为日数
范例:
显示目前时间后延迟1分钟,之后再次显示时间:
date;sleep1m;date
名称:time
使用权限:
所有使用者
使用方式:
time[options]COMMAND[arguments]
说明:
time指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等信息。例如CPU时间、内存、输入输出等等。需要特别注意的是,部分信息在Linux上显示不出来。这是因为在Linux上部分资源的分配函数与time指令所缺省的方式并不相同,以至于time指令无法取得这些资料。
选项:
-o or—output=FILE
设定结果输出文件。这个选项会将time的输出写入所指定的文件中。如果文件已经存在,系统将覆写其内容。
-a or—append
配合-o使用,会将结果写到文件的末端,而不会覆盖掉原来的内容。
-f formAT or—format=formAT
以formAT字符串设定显示方式。当这个选项没有被设定的时候,会用系统缺省的格式。不过可以用环境变数time来设定这个格式,如此一来就不必每次登入系统都要设定一次。一般可以用t表示跳栏,或者是用n表示换行。每一项资料要用%做为前导,如果要在字符串中使用百分比符号。
time指令可以显示的资源有四大项,分别是:
Time resources
Memory resources
IO resources
Command info
详细的内容如下:
Time Resources
E执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的CPU时间。
e执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的CPU时间。
S指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。
U指令执行时在使用者模式(user mode)所花费的时间,单位是秒。
P执行指令时CPU的占用比例。其实这个数字就是核心模式加上使用者模式的CPU时间除以总时间。
Memory Resources
M执行时所占用的实体内存的最大值。单位是KB
t执行时所占用的实体内存的平均值,单位是KB
K执行程序所占用的内存总量(stack+data+text)的平均大小,单位是KB
D执行程序的自有资料区(unshared data area)的平均大小,单位是KB
p执行程序的自有堆叠(unshared stack)的平均大小,单位是KB
X执行程序间共享内容(shared text)的平均值,单位是KB
Z系统内存页的大小,单位是byte。对同一个系统来说这是个常数
IO Resources
F此程序的主要内存页错误发生次数。所谓的主要内存页错误是指某一内存页已经置换到置换文件(swap file)中,而且已经分配给其他程序。此时该页的内容必须从置换文件里再读出来。
R此程序的次要内存页错误发生次数。所谓的次要内存页错误是指某一内存页虽然已经置换到置换文件中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换文件里读出来
W此程序被交换到置换文件的次数
c此程序被强迫中断(像是分配到的CPU时间耗尽)的次数
w此程序自愿中断(像是在等待某一个I/O执行完毕,像是软盘读取等等)的次数
I此程序所输入的文件数
O此程序所输出的文件数
r此程序所收到的Socket Message
s此程序所送出的Socket Message
k此程序所收到的信号(Signal)数量
Command Info
C执行时的参数以及指令名称
x指令的结束代码(Exit Status)
-p or—portability
这个选项会自动把显示格式设定成为:
real%e
user%U
sys%S
这么做的目的是为了与POSIX规格相容。
-v or—verbose
这个选项会把所有程序中用到的资源通通显示来,不但有一般英文语句,还有说明,对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。
范例:
利用下面的指令time-v ps-aux,可以获得执行ps-aux的结果和所花费的系统资源。如下面所列的资料:
USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND
root 10.00.4 1096 472?S Apr190:04 init
root 20.00.000?SW Apr190:00[kflushd]
root 30.00.000?SW Apr190:00[kpiod]
……
root 242690.0 1.0 2692996 pts/3 R 12:160:00 ps-aux
Command being timed:“ps-aux”
User time(seconds):0.05
System time(seconds):0.06
Percent of CPU this job got:68%
Elapsed(wall clock)time(h:mm:ss or m:ss):0:00.16
Average shared text size(kbytes):0
Average unshared data size(kbytes):0
Average stack size(kbytes):0
Average total size(kbytes):0
Maximum resident set size(kbytes):0
Average resident set size(kbytes):0
Major(requiring I/O)page faults:238
Minor(reclaiming a frame)page faults:46
Voluntary context switches:0
Involuntary context switches:0
Swaps:0
File system inputs:0
File system outputs:0
Socket messages sent:0
Socket messages received:0
Signals delivered:0
Page size(bytes):4096
Exit status:0
名称:uptime
使用权限:
所有使用者
使用方式:
uptime[-V]
说明:
uptime提供使用者下面的信息,不需其他参数:现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数:
-V显示版本信息。
范例:
uptime
其结果为:
10:41am up 5 days,10 min,1 users,load average:0.00,0.00,1.9 9
名称:chfn
使用权限:
所有使用者
用法:
chfn
说明:
提供使用者更改个人信息,用于finger和mail的用户名。
范例:
$chfn
Changing finger information for user
Password:
Name[]:Tux1###提供finger时的资料
Office[]:
Office Phone[]:
Home Phone[]:
名称:chsh
使用权限:
所有使用者
用法:
chsh
说明:
更改使用者shell设定
范例:
$chsh
Changing fihanging shell for user1
Password:
New shell[/bin/tcsh]:###[是目前使用的shell]
$chsh-l###展示/etc/shells文件内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin
/csh
名称:finger
使用权限:
所有使用者
使用方式:
finger[options]user[@address]
说明:
finger可以让使用者查询一些其他使用者的资料。会显示来的资料有:
Login Name
User Name
主目录
Shell
Login status
mail status
.plan
.project
.forward
其中.plan,.project和.forward就是使用者在他的主目录里的.plan,.project和.forward等文件里的资料。如果没有就没有。finger指令并不限定于在同一服务器上查询,也可以寻找某一个远端服务器上的使用者。只要给一个像是E-mail address一般的地址即可。
选项:
-l:多行显示
-s:单行显示。这个选项只显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效
范例:
下列指令可以查询本机管理员的资料:
finger root
其结果如下:
Login:root Name:root
Directory:/root Shell:/bin/bash
Never logged in.
No mail.
No Plan.
名称:last
使用权限:
所有使用者
使用方式:
last[options]
说明:
显示系统开机以来或是从每月初登入者的信息
选项:
-R省略hostname的栏位
-num展示前num个
username展示username的登入信息
tty限制登入信息包含终端机代号
范例:
$last-R-2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 109:01:10 2000###/var/log/wtmp
$last-2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37-18:40(00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22-17:24(00:02)
wtmp begins Tue Aug 109:01:10 2000
名称:passwd
使用权限:
所有使用者
使用方式:
passwd[-k][-l][-u[-f][-d][-S][username]
说明:
用来更改使用者的密码
参数:
-d关闭使用者的密码认证功能,使用者在登入时将可以不用输入密码,只有具备root权限的使用者方可使用。
-S显示指定使用者的密码认证种类,只有具备root权限的使用者方可使用.
[username]指定帐号名称。
名称:who
使用权限:
所有使用者都可使用
使用方式:
who-[husfV][user]
说明:
显示系统中有那些使用者正在上面,显示的资料包含了使用者ID,使用的终端机,从哪边连上来的,上线时间,呆滞时间,CPU使用量,动作等等。
选项:
-h:不要显示标题列
-u:不要显示使用者的动作/工作
-s:使用简短的格式来显示
-f:不要显示使用者的上线位置
-V:显示程序版本
名称:newaliases
使用权限:
系统管理者
使用方式:
请用newaliases更新资料库
说明:
sendmail会使用一个在/etc/aliases中的文件做使用者名称转换的动作。当sendmail收到一个要送给xxx的信时,它会依据aliases文件的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list就会用到这个功能,在mailinglist中,我们可能会创造一个叫redLinux@link.ece.uci.edu的mailinglist,但实际上并没有一个叫redLinux的使用者。实际aliases文件的内容是将送给这个使用者的信都收给mailing list处理程序负责分送的工作。
/etc/aliases是一个文字模式的文件,sendmail需要一个二进位格式的/etc/aliases.db。newaliases的功能传是将/etc/aliases转换成一个sendmail所能了解的资料库。
范例:
#newaliases
下面命令会做相同的事:
#sendmail-bi
名称:mail
使用权限:
所有使用者
使用方式:
mail[-iInv][-s subject][-c cc-addr][-b bcc-addr]user1[user 2…]
说明:
mail不仅只是一个指令,mail还是一个电子邮件程序,不过利用mail来读信的人应该很少吧!对于系统管理者来说mail就很有用,因为管理者可以用mail写成script,定期寄一些备忘录提醒系统的使用者。
参数:
i忽略tty的中断信号(interrupt)
I强迫设成互动模式(Interactive)
v打显示信息,例如送信的地点、状态等等(verbose)
n不读入mail.rc设定文件
s邮件标题
c cc邮件地址
b bcc邮件地址
范例:
将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而user2没有主机位置,就会送给邮件服务器的user2使用者。
mail user1@email.address
mail user1@email.address user2
将mail.txt的内容寄给user2同时cc给user1。如果将这一行指令设成cronjob就可以定时将备忘录寄给系统使用者。
mail-s标题-c user1 user2<mail. txt
指令:mesg
使用权限:
所有使用者
使用方式:
mesg[y|n]
说明:
决定是否允许其他人传信息到自己的终端机界面
选项:
y:允许信息传到终端机界面上。
n:不允许信息传到终端机界面上。
如果没有设定,则信息传递与否则由终端机界面目前状态而定。范例:
改变目前信息设定,改成不允许信息传到终端机界面上:
mesg n
与mesg相关的指令有:talk,write,wall。
名称:talk
使用权限:
所有使用者
使用方式:
talk person[ttyname]
说明:
与其他使用者对谈
选项:
person:预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入person@machine.name
ttyname:如果使用者同时有两个以上的tty连线,可以自行选择合适的tty传信息
范例:
1.与现在机器上的使用者Rollaend对谈,此时Rollaend只有一个连线:
talk Rollaend
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入“talk jzlee”即可开始对谈,结束请按ctrl+c
2.与Linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈:
talk Rollaend@Linuxfab.cx pts/2
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入“talk jzlee@jzlee.home”即可开始对谈,结束请按ctrl+c
注意:若屏幕的字会出现不正常的位,试着按ctrl+l更新屏幕画面。
名称:wall
使用权限:
所有使用者
使用方式:
wall[message]
使用说明:
wall会将信息传给每一个mesg设定为yes的上线使用者。当使用终端机界面做为标准传入时,信息结束时需加上EOF(通常用Ctrl+D)
范例:
传信息“hi”给每一个使用者:
wall hi
名称:write
使用权限:
所有使用者
使用方式:
write user[ttyname]
说明:
传信息给其他使用者
选项:
user:预备传信息的使用者帐号
ttyname:如果使用者同时有两个以上的tty连线,可以自行选择合适的tty传信息
范例:
1.传信息给Rollaend,此时Rollaend只有一个连线:
write Rollaend
接下来就是将信息打上去,结束请按ctrl+c
2.传信息给Rollaend,Rollaend的连线有pts/2,pts/3:
write Rollaend pts/2
接下来就是将信息打上去,结束请按ctrl+c
注意:若对方设定mesg n,则此时信息将无法传给对方
名称:kill
使用权限:
所有使用者
使用方式:
kill[-s signal|-p][-a]pid…
kill-l[signal]
说明:
kill送出一个特定的信号(signal)给进程id为pid的进程根据该信号而做特定的动作,若没有指定,缺省是送出终止(TERM)的信号
选项:
-s(signal):其中可用的信号有HUP(1),KILL(9),TERM(15),分别代表着重启,中止,结束;详细的信号可以用kill-l
-p:显示pid,并不送出信号
-l(signal):显示所有可用的信号名称
范例:
将pid为323的进程中止(kill):
kill-9 323
将pid为456的进程重启(restart):
kill-HUP 456
名称:nice
使用权限:
所有使用者
使用方式:
nice[-n adjustment][-adjustment][—adjustment=adjustment][—help][—ver-sion][command[arg…]]
说明:
以更改过的优先级来执行程序,如果未指定程序,则会显示目前的排程优先级,内定的adjustment为10,范围为-20(最高优先级)到19(最低优先级)
选项:
-n adjustment,-adjustment,—adjustment=adjustment皆为将该原有优先级的增加adjustment
—help显示求助信息
—version显示版本信息
范例:
将ls的优先级加1并执行:
nice-n 1 ls
将ls的优先级加10并执行:
nice ls将ls的优先级加10并执行
注意:
优先级(priority)为操作系统用来决定CPU分配的参数,Linux使用『回合制(round-robin)』的演算法来做CPU排程,优先级越高,所可能获得的CPU时间就越多。
名称:ps
使用权限:
所有使用者
使用方式:
ps[options][—help]
说明:
显示瞬间进程(process)的动态
参数:
ps的参数非常多,在此仅显示几个常用的参数并大略介绍含义
-A显示所有的进程
-w显示加宽可以显示较多的信息
-au显示较详细的信息
-aux显示所有包含其他使用者的进程
au(x)输出格式:
USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND
USER:进程拥有者
PID:pid
%CPU:占用的CPU使用率
%MEM:占用的内存使用率
VSZ:占用的虚拟内存大小
RSS:占用的内存大小
TTY:终端的次要设备号码(minor device number of tty)
STAT:该进程的状态:
D:不可中断的静止
R:正在执行中
S:静止状态
T:暂停执行
Z:不存在但暂时无法消除
W:没有足够的内存分页可分配
<:高优先级的进程
N:低优先级的进程
L:有内存分页分配并锁在内存内(即时系统或捱A I/O)
START:进程开始时间
TIME:执行的时间
COMMAND:所执行的指令
范例:
ps
PID TTY TIME CMD
2791 ttyp000:00:00 tcsh
3092 ttyp000:00:00 ps
%ps-A
PID TTY TIME CMD
1?00:00:03 init
2?00:00:00 kflushd
3?00:00:00 kpiod
4?00:00:00 kswapd
5?00:00:00 mdrecoveryd
……
%ps-aux
USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND
root 10.00.7 1096 472?S Sep100:03 init[3]
root 20.00.000?SW Sep100:00[kflushd]
root 30.00.000?SW Sep100:00[kpiod]
root 40.00.000?SW Sep100:00[kswapd]
……
名称:pstree
使用权限:
所有使用者
使用方式:
pstree[-a][-c][-h|-Hpid][-l][-n][-p][-u][-G|-U][pid|user]
pstree-V
说明:
将所有进程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本进程为根(root),如果有指定使用者id,则树状图会只显示该使用者所拥有的进程。
参数:
-a显示该进程的完整指令及参数,如果是被内存置换出去的进程则会加上括号
-c如果有重复的进程名,则分开显示(缺省值是会在前面加上*)
范例:
pstree
init-+-amd
|-apmd
|-atd
|-httpd—-10*[httpd]
%pstree-p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree-c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
||-httpd
||-httpd
||-httpd
……
名称:renice
使用权限:
所有使用者
使用方式:
renice priority[[-p]pid…][[-g]pgrp…][[-u]user…]
说明:
重新指定一个或多个进程(Process)的优先级(一个或多个将根据所下的参数而定)
选项:
-p pid重新指定进程的id为pid的进程的优先级
-g pgrp重新指定进程群组(process group)的id为pgrp的进程(一个或多个)的优先级
-u user重新指定进程拥有者为user的进程的优先级
范例:
将进程id为987及32的进程与进程拥有者为daemon及root的优先级号码加1:
renice+1 987-u daemon root-p 32
注意:
每一个进程(Process)都有一个唯一的(unique)id
名称:top
使用权限:
所有使用者
使用方式:
top[-][d delay][q][c][S][s][i][n][b]
说明:
即时显示process的动态
选项:
d:改变显示的更新速度,或是在交谈式指令列(interactive command)按s
q:没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先级执行
c:切换显示模式,共有两种模式,一是只显示执行文件的名称,另一种是显示完整的路径与名称
S:累积模式,会将己完成或消失的子进程(dead child process)的CPU time累积起来
s:安全模式,将交谈式指令取消,避免潜在的危机
i:不显示任何闲置(idle)或无用(zombie)的进程
n:更新的次数,完成后将会退出top
b:批次文件模式,搭配“n”参数一起使用,可以用来将top的结果输出到文件内
范例:
显示更新十次后退出;
top-n 10
使用者将不能利用交谈式指令来对进程下命令:
top-s
将更新显示二次的结果输入到名称为top.log的文件里:
top-n 2-b<top. log
名称:skill
使用权限:
所有使用者
使用方式:
skill[signal to send][options]选择程序的规则
说明:
送个信号给正在执行的程序,缺省的信息为TERM(中断),较常使用的信息为HUP,INT,KILL,STOP,CONT,和0
信息有三种写法:分别为-9,-SIGKILL,-KILL,可以使用-l或-L显示可使用的信息。
一般参数:
-f快速模式/尚未完成
-i互动模式/每个动作将要被确认
-v详细输出/显示所选择程序的信息
-w智能警告信息/尚未完成
-n没有动作/显示程序代号
参数:
选择程序的规则可以是,终端机代号,使用者名称,程序代号,命令名称。
-t终端机代号(tty或pty)
-u使用者名称
-p程序代号(pid)
-c命令名称可使用的信号:
以下显示已知的信号名称,信号代号,功能。
名称(代号)功能/描述
ALRM 14退出
HUP 1退出
INT 2退出
KILL 9退出/强迫关闭
PIPE 13退出
POLL退出
PROF退出
TERM 15退出
USR1退出
USR2退出
VTALRM退出
STKFLT退出/只适用于i386,m68k,arm和ppc硬体
UNUSED退出/只适用于i386,m68k,arm和ppc硬体
TSTP停止/产生与内容相关的行为
TTIN停止/产生与内容相关的行为
TTOU停止/产生与内容相关的行为
STOP停止/强迫关闭
CONT从新启动/如果在停止状态则从新启动,否则忽略
PWR忽略/在某些系统中会退出
WINCH忽略
CHLD忽略
ABRT 6核心
FPE 8核心
ILL 4核心
QUIT 3核心
SEGV 11核心
TRAP 5核心
SYS核心/或许尚未实作
EMT核心/或许尚未实作
BUS核心/核心失败
XCPU核心/核心失败
XFSZ核心/核心失败
范例:
停止所有在PTY设备上的程序
skill-KILL-v pts/*
停止三个使用者user1,user2,user3
skill-STOP user1 user2 user3
其他相关的命令:kill
名称:expr
使用权限:
所有使用者
用法:
1.显示字符串长度
$ expr length“this is a test”
14
2.数字商数
$ expr 14%9
5
3.从位置处抓取字符串
$ expr substr“this is a test”3 5
is is
4.数字符串,只显示第一次出现
$ expr index“testforthegame”e
2
5.字符串真实重现
$ expr quote thisisatestformela
thisisatestformela
名称:tr
用法:
1.把目录下所有的大写文件名换为小写文件名。
#!/bin/sh
dir=“/tmp/testdir”;
files=`find$dir-type f`;
for i in$files
do
dir_name=`dirname$i`;
ori_filename=`basename$i`
new_filename=`echo$ori_filename|tr[:upper:][:lower:]`>/dev/ null;
#echo$new_filename;
mv$dir_name/$ori_filename$dir_name/$new_filename
done
2.小写变大写
$ echo“this is a test”|tr a-z A-Z
THIS IS A TEST
3.去掉不想要的字符串
$echo“this is a test”|tr-d this
a e
4.取代字符串
$ tr-s“this”“TEST”
this
TEST
th
TE
名称:clear
用途:
清除屏幕用。
使用方法:
在console上输入clear。
名称:reset,tset
使用方法:
tset[-IQqrs][-][-e ch][-i ch][-k ch][-m mapping][terminal]
使用说明:
reset其实和tset是同一个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其他的组态文件决定目前终端机的型态。如果指定型态是?的话,这个程序会要求使用者输入终端机的型别。
由于这个程序会将终端机设回原始的状态,除了在login时使用外,当系统终端机因为程序不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机。例如不小心把二进位文件用cat指令输入到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪位的问题。此时就可以用reset将终端机回复至原始状态。选项说明:
参数:
-p:将终端机类别显示在屏幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别
-e ch:将erase位设成ch
-i ch:将中断位设成ch
-k ch:将删除一行的位设成ch
-l:不要做设定的动作,如果没有使用选项-Q的话,erase、中断及删除位的目前值依然会送到屏幕上
-Q:不要显示erase、中断及删除位的值到屏幕上
-r:将终端机类别印在屏幕上
-s:将设定TERM用的命令用字符串的形式送到终端机中,通常在.login或.profile中用
范例:
让使用者输入一个终端机型别并将终端机设到该型别的缺省状态。
#reset?
将erase位设定control-h
#reset-e^B
将设定用的字符串显示在屏幕上
#reset-s
Erase is control-B(^B).
Kill is control-U(^U).
Interrupt is control-C(^C).
TERM=xterm;
名称:compress
使用权限:
所有使用者
使用方式:
compress[-dfvcV][-b maxbits][file…]
说明:
compress是一个相当古老的UNIX文件压缩指令,压缩后的文件会加上一个.Z延伸文件名以区别未压缩的文件,压缩后的文件可以以uncompress解压。若要将数个文件压成一个压缩文件,必须先将文件tar起来再压缩。由于gzip可以产生更理想的压缩比例,一般人多已改用gzip为文件压缩工具。
参数:
c输出结果至标准输出设备(一般指屏幕)
f强迫写入文件,若目的文件已经存在,则会被覆盖(force)
v将程序执行的信息打印在屏幕上(verbose)
b设定共同字符串数的上限,以位元计算,可以设定的值为9至16 bits。由于值越大,能使用的共同字符串就越多,压缩比例就越大,所以一般使用缺省值16 bits(bits)
d将压缩文件解压缩
V显示版本信息
范例:
将source.dat压缩成source.dat.Z,若source.dat.Z已经存在,内容则会被压缩文件覆盖。
compress-f source.dat
将source.dat压缩成source.dat.Z,并显示压缩比例。
-v与-f可以一起使用
compress-vf source.dat
将压缩后的资料输出后再导入target.dat.Z可以改变压缩文件名。
compress-c source.dat>target.dat.Z
-b的值越大,压缩比例就越大,范围是9~16,缺省值是16。
compress-b 12 source.dat
将source.dat.Z解压成source.dat,若文件已经存在,使用者按y以确定覆盖文件,若使用-df程序则会自动覆盖文件。由于系统会自动加入.Z为延伸文件名,所以source.dat会自动当作source.dat.Z处理。
compress-d source.dat
compress-d source.dat. Z
名称:lpd
使用权限:
所有使用者
使用方式:
lpd[-l][#port]
说明:
lpd是一个常驻的打印机管理程序,它会根据/etc/printcap的内容来管理本地或远端的打印机。/etc/printcap中定义的每一个打印机必须在/var/lpd中有一个相对应的目录,目录中以cf开头的文件表示一个等待送到适当设备的印表工作。这个文件通常是由lpr所产生。
lpr和lpd组成了一个可以离线工作的系统,当你使用lpr时,打印机不需要能立即可用,甚至不用存在。lpd会自动监视打印机的状况,当打印机上线后,便立即将文件送交处理。这个使所有的应用程序不必等待打印机完成前一工作。
参数:
-l:将一些出错信息显示在标准输出上。
#port:一般而言,lpd会使用getservbyname取得适当的TCP/IP port,你可以使用这个参数强迫lpd使用指定的port。
范例:
这个程序通常是由/etc/rc.d中的程序在系统启动阶段执行。
名称lpq
作用:
显示打印机队列中未完成的工作
用法:
lpq[l][P][user]
说明:
lpq会显示由lpd所管理的打印机队列中未完成的项目。
范例:
1.显示所有在lp打印机队列中的工作
#lpq-PlpRank
名称:lpr
使用权限:
所有使用者
使用方式:
lpr[-P printer]
说明:
将文件或是由标准输入送进来的资料送到打印机队列之中,打印机管理程序lpd会在稍后将这个文件送给适当的程序或设备处理。lpr可以用来将文件送给本地或是远端的主机来处理。
参数:
-p Printer:将资料送至指定的打印机Printer,缺省值为lp。
范例:
将www.c和kkk.c送到打印机lp。
lpr-Plp www.c kkk. c
名称:lprm
作用:
将一个工作从打印机队列中删除
用法:
/usr/bin/lprm[P][file…]
说明:
尚未完成的打印机工作会被放在打印机队列之中,这个命令可用来将尚未送到打印机的工作取消。由于每一个打印机都有一个独立的队列,你可以用-P这个命令设定想要作用的打印机。如果没有设定的话,会使用系统缺省的打印机。
这个命令会检查使用者是否有足够的权限删除指定的文件,一般而言,只有文件的拥有者或是系统管理员才有这个权限。
范例:
将打印机hpprinter中的第1123号工作删除
lprm-Phpprinter 1123
将第1011号工作从缺省打印机中删除
lprm 1011
名称:fdformat
使用权限:
所有使用者
使用方式:
fdformat[-n]device
使用说明:
对指定的软驱设备进行低级格式化。使用这个指令对软盘格式化的时候,最好指定像是下面的设备:
/dev/fd0d360软驱A:,磁盘为360KB软盘
/dev/fd0h1440软驱A:,磁盘为1.4MB软盘
/dev/fd1h1200软驱B:,磁盘为1.2MB软盘
如果使用像是/dev/fd0之类的设备,如果里面的软盘不是标准容量,格式化可能会失败。在这种情况之下,使用者可以用setfdprm指令先行指定必要参数。
参数:
-n关闭确认功能。这个选项会关闭格式化之后的确认步骤。
范例:
fdformat-n/dev/fd0h1440
将软驱A的磁盘格式化成1.4MB的磁盘。并且省略确认的步骤。
名称:mformat
使用权限:
所有使用者
使用方式:
mformat[-t cylinders][-h heads][-s sectors][-l volume_label][-F][-I fsVer-sion][-S sizecode][-2 sectors_on_track_0][-M software_sector_size][-a][-X][-C][-H hidden_sectors][-r root_sectors][-B boot_sector][-0 rate_on_track_0][-A rate_on_other_tracks][-1][-k]drive:
在已经做过低级格式化的磁盘上建立DOS文件系统。如果在编译mtools的时候把USE_2M的参数打开,部分与2M格式相关的参数就会发生作用。否则这些参数(像是S,2,1,M)不会发生作用。
参数:
-t磁柱(cynlider)数
-h磁头(head)数
-s每一磁道的扇区数
-l标签
-F将软盘格式化为FAT32格式,不过这个参数还在实验中。
-I设定FAT32中的版本号。这当然也还在实验中。
-S扇区大小代码,计算方式为sector=2^(大小代码+7)
-c族(cluster)的扇区数。如果所给定的数字会导致族数超过FAT表的限制,mformat会自动放大扇区数。
-M软件扇区大小。这个数字就是系统回报的扇区大小。通常是和实际的大小相同。
-a如果加上这个参数,mformat会产生一组Atari系统的序号给这块软盘。
-X将软盘格式化成XDF格式。使用前必须先用xdfcopy指令对软盘作低级格式化的动作。
-C产生一个可以安装MS-DOS文件系统的软盘镜像文件(disk image)。当然对一个实体软驱下这个参数是没有意义的。
-H隐藏扇区的数目。这通常适用在格式化硬盘的分区时,因为通常一个分区的前面还有分割表。这个参数未经测试,能不用就不用。
-n软盘序号
-r根目录的大小,单位是扇区数。这个参数只对FAT12和FAT16有效。
-B使用所指定的文件或是设备的开机扇区作为这片磁盘或分区的开机扇区。当然当中的硬体参数会随之更动。
-k尽量保持原有的开机扇区。
-0第0道的资料传输率
-A第0道以外的资料传输率
-2使用2m格式
-1不使用2m格式
范例:
mformat a:
这样会用缺省值把a:(就是/dev/fd0)里的软盘片格式化。
名称:mkdosfs
使用权限:
所有使用者
使用方式:
mkdosfs[-c|-l filename][-f number_of_FATs][-F FAT_size][-i volume_id][-m essage_file][-n volume_name][-r root_dir_entry][-s sector_per_cluster][-v]device[block_count]
说明:
建立DOS文件系统。device指你想要建立DOS文件系统的设备代号。像是/dev/ hda1等等。block_count则是你希望配置的区块数。如果block_count没有指定,则系统会自动替你计算符合该设备大小的区块数。
参数:
-c建立文件系统之前先检查是否有坏道
-l从指定的文件中读取坏道记录
-f指定文件分配表(FAT,File Allocation Table)的数量。缺省值为2。目前Linux的FAT文件系统不支持超过2个FAT表。通常这个不需要改
-F指定FAT表的大小,通常是12或是16个字节。12字节通常用于软盘片,16字节用于一般硬盘的分区,也就是所谓的FAT16格式。这个值通常系统会自己选定适当的值。在软盘片上用FAT16通常不会发生作用,反之在硬盘上用FAT12亦然。
-i指定Volume ID。一般是一个4个字节的数字,像是2e203a47。如果不给,系统会自己产生
-m当使用者试图用这片磁盘或是分区开机,而上面没有操作系统时,系统会给使用者一段警告信息。这个参数就是用来变更这个信息的。你可以先用文件编辑好,然后用这个参数指定,或是用
-m-
这样系统会要求你直接输入这段文字。要特别注意的是,文件里的字符串长度不要超过418个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在DOS底下算两个位!)
-n指定Volume Name,就是软盘标签。如同在DOS底下的format指令一样,给不给都可以。没有缺省值
-r指定根目录底下的最大文件数。这里所谓的文件数包括目录。缺省值是在软盘上是112或是224,在硬盘上是512。没事不要改这个数字
-s每一个族(cluster)的扇区数。必须是2的次方数。不过除非你知道你在做什么,这个值不要乱给
-v提供额外的信息
范例:
将软盘驱动器A里的软盘片格式化为DOS格式,并将标签设为Tester
mkdosfs-n Tester/dev/fd0