LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1218|回复: 2

Linux常用命令

[复制链接]
发表于 2007-6-29 22:26:47 | 显示全部楼层 |阅读模式
5.1 文件管理
1. cat命令
格式:cat[-AbeEnstTuv][--help][--version]fileName
说明:把文件连接后传到基本输出到屏幕用“>fileName”输出到另一个文件。
参数:
 -n或—number:由1开始对所有输出的行数编号
 -b或--number-nonblank:和-n相似,只不过对于空白行不编号
 -s或--squeeze-blank:遇到连续两行以上空行,就代换为一空行
 -v或--show-nonprinting
例(1) textfile1的文件内容加上行号后输入textfile2这个文件里:
# cat –n textfile > textfile2
例(2) 把textfile1和textfile2的内容加上行号后附加到textfile3里:
# cat –b textfile1 textfile2 >> textfile3
例(3) 把textfile1的内容加上行号后输入textfile2这个文件里:
# cat –n textfile1 > textfile2
例(4) 把textfile1和textfile2的文件内容加上行号后附加到textfile3里:
# cat –b textfile1 textfile2 >> textfile3
例(5) 清空/etc/test.txt文件内容
# cat /dev/null > /etc/test.txt
例(6) 制作软盘的镜像文件:
# cat /dev/fd0 > OUTFILE
例(7) 把镜像文件写到软盘:
# cat IMG_FILE > /dev/fd0
说明:OUTFILE指输出的镜像文件名,IMG_FILE指镜像文件名,若从镜像文件写回设备时,文件大小应当与设备容量一样。另外,上面的方法通常用来制作启动盘。
2. cd命令
格式:cd[dirName]
说明:变换当前目录至dirName。其中dirName可为绝对路径或相对路径。若目录名称省略,则变换至用户的主目录(也就是刚登陆时所在的目录)。另外,“~”也表示为主目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一层目录。
例(1) 转到/usr/bin/:
# cd /usr /bin
例(2) 转到自己的主目录:
# cd~
例(3) 转到当前目录的上上两层:
# cd ../..
例(4) 返回上次目录:
# cd–
3. chmod命令
格式:chmod[-cfvR][--help][--version]modefile...
说明:Linux/Unix的文件调用权限分为三级:文件拥有者、群组、其他。利用chmod可以藉以控制文件如何被他人所调用。
参数:
 mode:权限设定字符串,格式:[ugoa...][[+-=][rwxX]...][,...],其中u表示该文件的拥有者,g表示与该文件的拥有者属于同一个组(group)者,o表示其他以外的人,a表示这三者皆是。+表示增加权限、-表示取消权限、=表示唯一设定权限。r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行
 -c:若该文件权限确实已经更改,才显示其更改动作
 -f:若该文件权限无法被更改也不要显示错误讯
 -v:显示权限变更的详细内容
 -R:对当前目录下的所有文件与子目录进行相同的权限变
 --help:显示辅助说明
 --version:显示版本
例(1) 将文件file1.txt设为所有人皆可读取:
# chmod ugo+rfile1.txt
例(2) 将文件file1.txt设为所有人皆可读取:
# chmod a+rfile1.txt
例(3) 将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个组的用户可写入,但其他以外的人则不可写入:
# chmod ug+w,o-wfile1.txtfile2.txt
例(4) 将ex1.py设定为只有该文件拥有者可以执行:
# chmod u+xex1.py
例(5) 将当前目录下的所有文件与子目录皆设为任何人可读取:
# chmod -Ra+r*
此外chmod也可以用数字来表示权限如chmod777file,语法格式为:chmodabcfile,其中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。所以,如下的命令之间有等价关系:
chmoda=rwxfile和chmod777file效果相同
chmodug=rwx,o=xfile和chmod771file效果相同
若用chmod4755filename可使此程序具有root的权限。
4. chown命令
格式:chmod[-cfhvR][--help][--version]user[:group]file...
说明:Linux/Unix是多用户操作系统,所有的文件皆有拥有者。利用chown可以将文件的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般用户没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
参数:
 user:新的文件拥有者的用户
 IDgroup:新的文件拥有者的用户组(group)
 -c:若该文件拥有者确实已经更改,才显示其更改动作
 -f:若该文件拥有者无法被更改也不要显示错误信息
 -h:只对于连结(link)进行变更,而非该link真正指向的文件
 -v:显示拥有者变更的详细内容
 -R:对当前目录下的所有文件与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
 --help:显示辅助说明
 --version:显示版本
例(1) 将文件file1.txt的拥有者设为users组的用户jessie:
# chown jessie:usersfile1.txt
例(2) 将当前目录下的所有文件与子目录的拥有者皆设为users组的用户lamport:
# chmod -Rlamport:users*
5. cp命令
格式:cp[options]sourcedest或cp[options]source...directory
说明:将一个文件拷贝至另一文件,或将数个文件拷贝至另一目录。
参数:
 -a尽可能将文件状态、权限等内容都照原状予以复制
 -r若source中含有目录名,则将目录下所有文件依次拷贝至目的地
 -f若目的地已经有相同文件名的文件存在,则在复制前先予以删除再行复制
例(1) 将文件aaa复制为bbb:
# cp aaa bbb
例(2) 将所有的C语言程序拷贝至Finished子目录中:
# cp *.c Finished
6. cut命令
格式:cut-cnum1-num2filename
说明:显示每行从开头算起num1到num2的文字。
参数:
 -cm-n表示显示每一行的第m个字符到第n个字符
 -fm-n表示显示第m栏到第n栏(使用tab分隔)
7. find命令
格式:find[path][expression]
说明:将文件系统内符合expression的文件列出来。可以指要文件的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的才会被列出来。find根据下列规则判断path和expression,在命令中上第一个字符“-、()、,或!”之前的部分为path,之后的是expression。如果path是空字符串则使用目前路径,如果expression是空字符串则使用-print为预设expression。expression中可使用的选项有二三十个之多,在此只介绍最常用的部份。
参数:
 -mount,-xdev:只检查和指定目录在同一个文件系统下的文件
 -aminn:在过去n分钟内被读取过
 -anewerfile:比文件file更晚被读取过的文件
 -atimen:在过去n天过读取过的文件
 -cminn:在过去n分钟内被修改过
 -cnewerfile:比文件file更新的文件
 -ctimen:在过去n天过修改过的文件
 -empty:空的文件,-gidnor-groupname:gid是n或是group名称是name
 -ipathp或-pathp:路径名称符合p的文件,ipath会忽略大小写
 -namename或-inamename:文件名符合name的文件,iname忽略大小写
 -sizen:文件大小是n单位,b代表512位元组的区块,c表示字符数,k表示KB,w是二个位元组
 -typec:文件类型是c的文件。下面是可用的文件类型:
 d:目录
 c:字型装置文件
 b:区块装置文件
 p:具名贮列
 f:一般文件
 l:符号连结
 s:socket
 -pidn,查找进程id是n的文件。可用()分隔,并使用如下格式比较:
 exp1-andexp2
 !expr
 -notexpr
 exp1-orexp2
 exp1,exp2
例(1) 将当前目录及其子目录下所有文件名的扩展名是c的文件列出来:
# find .-name "*.c"
例(2) 将当前目录及其下子目录中所有一般文件列出:
# find .-typef
例(3) 将当前目录及其子目录下所有最近20分钟内更新过的文件列出:
# find –c time-20
例(4) 查找包含特殊字符xxx的文件:
# find / -name "*.conf"|xargsgrep"xxx"
8. less命令
格式:less[Option]filename
说明:less的作用与more十分相似,都可以用来浏览文本文件的内容,不同的是less允许用户往回翻动以浏览已经看过的部份,同时因为less并未在一开始就读入整个文件,因此在遇上大型文件的打开时,会比一般的文本编辑器(如vi)快速。可以使用键盘的上下箭头翻滚察看文件内容。按q键可立即退出。
9. ln命令
格式:ln[options]sourcedist,其中option的格式为:
[-bdfinsvF][-Sbackup-suffix][-V{numbered,existing,simple}]
[--help][--version][--]
说明:Linux/Unix文件系统中有所谓的链接,可以将其视为文件的别名,而链接又可分为两种:硬链接与软链接,硬链接的意思是一个文件可以有多个名称,而软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。ln是产生一个到source的链接(dist),至于使用硬链接或软链接则由参数决定。不论是硬链接或软链接都不会将原本的文件复制一份,只会占用非常少量的磁碟空间。
参数:
 -f:链接时先将与dist同文件名的文件删除
 -d:允许系统管理者硬链接自己的目录
 -i:在删除与dist同文件名的文件时先进行询问
 -n:在进行软链接时,将dist视为一般的文件
 -s:进行软链接
 -v:在链接之前显示其文件名
 -b:将在链接时会被覆写或删除的文件进行备份
 -SSUFFIX:将备份的文件都加上SUFFIX的后缀
 -VMETHOD:指定备份的方式
 --help:显示辅助说明
 --version:显示版本
例(1) 将文件yy产生一个软链接zz
# ln –s yy zz
例(2) 将文件yy产生一个硬链接zz
# ln yy zz
10. 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命令可以在搜寻数据库时快速找到文件,数据库由updatedb程序来更新,updatedb是由crondaemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘文件来搜寻内容来得快,但locate所找到的文件若是最近才建立或刚更名的,可能会找不到,在默认值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
locate指定用在搜寻符合条件的文件,它会去储存文件与目录名称的数据库内,寻找合乎通配符样式条件的文件或目录,可以使用特殊字符(如“*”或“?”等)来指定通配符样式,如指定通配符为kcpa*ner,locate会找出所有起始字符串为kcpa且结尾为ner的文件或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括子目录在内的所有文件。
locate指令和find找寻文件的功能类似,但locate是透过update程序将硬盘中的所有文件和目录先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。
不过第一次在执行update後再使用locate寻找文件常会失败,此时就要执行slocate-u该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行文件,再由locate到此数据库寻找所要找的内容。
参数:
 -u-U建立数据库,-u会由根目录开始,-U则可以指定开始的位置
 -e将排除在寻找的范围之外
 -l如果是1.则启动安全模式。在安全模式下,用户不会看到权限无法看到的文件。这会始速度减慢,因为locate必须至实际的文件系统中取得文件的权限内容
 -f将特定的文件系统排除在外,例如我们没有道理要把proc文件系统中的文件放在数据库中
 -q安静模式,不会显示任何错误信息
 -n至多显示n个输出
 -r使用正规表达式做寻找的条件
 -o指定数据库存的名称
 -d指定数据库的路径
 -h显示辅助信息
 -v显示更多的信息
 -V显示程序的版本信息
例(1) 寻找所有叫chdrv的文件:
# locate chdrv:
例(2) 寻找所有叫aout的文件,但最多只显示100个:
# locate –n 100 aout
例(3) 建立数据库:
# locate - u
11. ls命令
格式:ls[-alrtAFR][name...]
说明:显示指定当前目录下之内容。
参数:
 -a显示所有文件及目录,但不显示以“.”开头的隐含文件
 -l除文件名称外,亦将文件型态、权限、拥有者、文件大小等信息详细列出
 -r将文件以相反次序显示(原定依英文字母次序)
 -t将文件依建立时间之先后次序列出
 -A同-a,但不列出当前目录“.”及父目录“..”
 -F在列出的文件名称后加一符号;例如可执行文件则加“*”,目录则加“/”
 -R若目录下有文件,则以下之文件亦皆依序列出
例(1) 列出当前目录下所有名称是s开头的文件的详细信息,新的排后面:
# ls –ltr s*
例(2) 将/bin目录以下所有目录及文件详细内容列出:
# ls –lR /bin
例(3) 列出当前目录下所有文件及目录;目录于名称后加“/”,可执行文件名后加“*”:
# ls -AF
12. mkdir命令
格式:mkdir[-p]dirName
说明:建立名称为dirName之子目录。
参数:
 -p确保目录名称存在,不存在的就建一个
例(1) 在当前目录下,建立一个名为AAA的子目录:
# mkdir AAA
例(2) 在当前目录下建立Test,t1,t2三个子目录:
# mkdir –p Test,t1,t2
13. more命令
格式:more[-dlfpcsu][-num][+/pattern][+linenum][fileNames..]
说明:类似cat,不过会以一页一页的显示,按空白键(space)就往下一页显示,按b键就会往回一页显示,而且还有搜寻字串的功能(与vi相似)。
参数:
 -num一次显示的行数
 -d提示用户,在画面下方显示[Pressspacetocontinue,'q'toquit.],如果用户按错键,则会显示[Press'h'forinstructions.]而不是“哔”声
 -l取消遇见特殊字符^L(送纸字符)时会暂停的功能
 -f计算行数时,以实际行数,而非自动换行过后的行数
 -p不以翻动的方式显示每一页,而是先清除屏幕后再显示内容
 -c跟-p相似,不同的是先显示内容再清除其他旧内容
 -s当遇到有连续两行以上的空白行,就代换为一行的空白行
 -u不显示下引号(根据环境变数TERM指定的terminal而有所不同)
 +/在每个文件显示前搜寻该字串,然后从该字串之后开始显示
 +num从第num行开始显示
 fileNames欲显示内容的文件,可为多个
例(1) 逐页显示testfile之文件内容,如有连续两行以上空白行则以一行空白行显示:
# more –s testfile
例(2) 从第20行开始显示testfile之文件内容:
# more +20 testfile。
14. mv命令
格式:mv[options]sourcedest或mv[options]source...directory
说明:将一个文件移至另一文件,或将数个文件移至另一目录。
参数:
 -i若目的地已有同名文件,则先询问是否覆盖旧文件
例(1) 将文件aaa更名为bbb:
# mv aa abbb
例(2) 将所有的C语言程序移至Finished子目录中:
# mv –i *.c
15. rm命令
格式:rm[options]name...
说明:删除文件及目录。
参数:
 -i删除前逐一询问确认
 -f即使原文件属性设为只读,直接删除,无需逐一确认
 -r将目录及以下之文件逐一删除
例(1) 删除所有C语言文件;删除前逐一询问确认:
# rm –i *.c
例(2) 将Finished子目录及子目录中所有文件删除:
# rm –r Finished
16. rmdir命令
格式:rmdir[-p]dirName
说明:删除空的目录。
参数:
 -p是当子目录被删除后使它也成为空目录的话,则顺便一并删除
例(1) 将当前目录下,名为AAA的子目录删除:
# rmdir AAA
例(2) 在当前目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB也被删除:
# rmdir –p BBB/Test
17. split命令
格式:split[OPTION][INPUT[PREFIX]]
说明:将一个文件分割成多个。而从INPUT分割输出成固定大小的文件,其文件名依序为PREFIXaa,PREFIXab...;PREFIX默认值为“x”。若没有INPUT文件或为“-”,则从标准输入读进内容。
参数:
 -b,--bytes=SIZE,SIZE值为每一输出文件的大小,单位为byte
 -C,--line-bytes=SIZE,每一输出文件中,单行的最大byte数。SIZE可加入单位:b代表512,k代表1K,m代表1M
 -l,--lines=NUMBER,NUMBER值为每一输出文件的列数大小
 -NUMBER,与-lNUMBER相同
 --verbose每个输出文件被打开前,显示出错误信息到标准错误输出
 --help显示辅助信息然后离开
 --version列出版本信息然后离开
例(1) 将filename分割为以dump为文件名前缀的多个文件:
# split -b 1mfilenamedump
18. touch命令
格式:touch[-acfm][-rreference-file][--file=reference-file][-tMMDDhhmm[[CC]YY][.ss]][-dtime][--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列出版本信息
例(1) 系统会建立新的文件:
# touch file
# touch file1 file2
# touch temp{1,2,3,4}
例(2) 将file的时间记录改为5月6日18点3,公元2007年:
# touch -c-t05061803file
# touch -c-t050618032007file
例(3) 将file的时间记录改变成与referencefile一样:
# touch-rreferencefilefile
例(4) 将file的时间记录改成5月6日18点3分,2007年:
# touch -d"6:03pm"file
# touch -d"05/06/2007"file
# touch-d"6:03pm05/06/2007"file
19. chgrp命令
格式:chgrp[option]groupfilename
说明∶改变文件或目录所属的组。该命令改变指定文件所属的用户组。其中group可以是用户组ID,也可以是已经存在于/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
例(1) 将file文件所属的组群由root改为users:
# chgrp fileusers
5.2 日期时间
1. at命令
格式:at-V[-qqueue][-ffile][-mldbv]TIME
说明:at可以让用户指定在TIME这个特定时刻执行某个程序或指令,TIME的格式是HH:MM。其中的HH为小时,MM为分钟,甚至可以指定am,pm,midnight,noon。如果想要指定超过一天内的时间,则可以用MMDDYY或者MM/DD/YY格式,其中MM是分钟,DD是第几日,YY是指年份。另外,用户甚至也可以使用now+时间间隔来弹性指定时间,其中的时间间隔可以是minutes,hours,days,weeks。另外,用户也可指定today或tomorrow来表示今天或明天。当指定了时间并按下enter之后,at会进入交互模式并要求输入指令或程序,当输入完后按下ctrl+D即可完成所有动作,至于执行的结果将会发送信息到用户的帐号邮箱中。
参数:
 -V显示版本编号
 -q使用指定的队列储存,at的内容是存放在所谓的queue中,用户可以同时使用多个queue,而queue的编号为a,b,c...z以及A,B,...Z共52个
 -m即使程序/指令执行完成后没有输出结果,也要寄封信给用户
 -ffile读入预先写好的命令文件。用户不一定要使用交互模式来输入,可以先将所有的指定先写入文件后再一次读入
 -l列出所有的指定(用户也可以直接使用atq而不用at-l)
 -d删除指定(用户也可以直接使用atrm而不用at-d)
 -v列出所有已经完成但尚未删除的指定
例(1) 三天后的下午5点执行/bin/ls:
# at 5pm+3days/bin/ls
例(2) 三个星期后的下午5点执行/bin/ls:
# at 5pm+2weeks/bin/ls
例(3) 明天的17:20执行/bin/date:
# at 17:20tomorrow/bin/date
例(4) 1999年的最后一天的最后一分钟显示theendofyear!:
# at 23:5912/31/1999echotheendofyear!
2. cal命令
格式:cal[-mjy][month[year]]
说明:显示日历。若只有一个参数,则表示当年当月。如果要写年份则必须全部写出。
选项:
 -m:以星期一为每周的第一天方式显示
 -j:以凯撒历显示,即以一月一日起的天数显示
 -y:显示今年年历。
例(1) 显示本月的月历:
# cal
3. crontab命令
格式:crontab[-uuser]file
crontab[-uuser]{-l|-r|-e}
说明:
crontab是用来让用户在固定时间或固定间隔执行程序之用,换句话说,也就是类似用户的时程表。-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设定自己的时程表。
crontab配置文件保留cron调度的内容,共有6个字段,从左到右依次为分钟、小时、日期、月份、星期、和命令。时程表的格式如下:f1f2f3f4f5program其中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中,用crontabfile的方式来设定时程表。
参数:
 -e:创建并编辑crontab的内容
 -r:删除crontab的内容
 -l:列出crontab的内容
例(1) 每月每天每小时的第0分钟执行一次/bin/ls:
# crontab -e
0****/bin/ls
例(2) 在12月内,每天的早上6点到12点中,每隔20分钟执行一次/usr/bin/backup:
# crontab -e
*/206-12*12/usr/bin/backup
例(3) 周一到周五每天下午5:00寄一封信给alex@domain.name
# crontab -e
017**1-5mail-s"hi"alex@domain.name
例(4) 每月每天的午夜0点20分,2点20分,4点20分....执行echo"haha":
# crontab -e
200-23/2***echo"haha"
例(5) 查看流程:
# crontab-l
例(6) 删除流程:
# crontab -r
4. date命令
格式:
date[-u][-ddatestr][-sdatestr][--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:00UTC到目前为止的秒数
%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为秒数。
参数:
 -ddatestr:显示datestr中所设定的时间(非系统时间)
 --help:显示辅助信息
 -sdatestr:将系统时间设为datestr中所设定的时间
 -u:显示目前的格林威治时间
 --version:显示版本编号
例(1) 显示时间后跳行,再显示目前日期:
# date '+%T%n%D'
例(2) 显示月份与日数:
# date '+%B%d'
例(3) 显示日期与设定时间(12:34:56):
# date --date'12:34:56'
5. sleep命令
格式:sleep[--help][--version]number[smhd]
说明:sleep可以用来将目前动作延迟一段时间
参数:
 --help:显示辅助信息
 --version:显示版本编号
 number:时间长度,后面可接s、m、h或d其中s为秒,m为分钟,h为小时,d为日数
例(1) 显示目前时间后延迟1分钟,之后再次显示时间:
# date ;sleep1m;date
6. time命令
格式:time[options]COMMAND[arguments]
说明:time指令的用途,在于测量特定指令执行时所需消耗的时间及系统资源等信息。例如CPU时间、记忆体、输入输出等等。需要特别注意的是,部分信息在Linux上显示不出来。这是因为在Linux上部分资源的分配方式与time指令所预设的方式并不相同,以致于time指令无法取得这些内容。
参数:
 -oor--output=FILE设定结果输出文件。这个选项会将time的输出写入所指定的文件中。如果文件已经存在,系统将覆写其内容
 -aor--append配合-o使用,会将结果写到文件的末端,而不会覆盖掉原来的内容
 -fFORMATor--format=FORMAT以FORMAT字串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。不过你可以用环境变数time来设定这个格式,如此一来就不必每次登入系统都要设定一次
一般设定上,你可以用“/t”表示跳栏,或者是用“/n”表示换行。每一项内容要用%做为前导。如果要在字串中使用百分比符号,就用。(学过C语言的人大概会觉得很熟悉)
time指令可以显示的资源有四大项,分别是:
Timeresources
Memoryresources
IOresources
Commandinfo
详细的内容如下:
TimeResources
 E执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的CPU时间。
 e执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的CPU时间。
 S指令执行时在核心模式(kernelmode)所花费的时间,单位是秒。
 U指令执行时在用户模式(usermode)所花费的时间,单位是秒。
 P执行指令时CPU的占用比例。其实这个数字就是核心模式加上用户模式的CPU时间除以总时间。
MemoryResources
 M执行时所占用的实体记忆体的最大值。单位是KB
 t执行时所占用的实体记忆体的平均值,单位是KB
 K执行程序所占用的记忆体总量(stack+data+text)的平均大小,单位是KB
 D执行程序的自有内容区(unshareddataarea)的平均大小,单位是KB
 p执行程序的自有堆叠(unsharedstack)的平均大小,单位是KB
 X执行程序间共享内容(sharedtext)的平均值,单位是KB
 Z系统记忆体页的大小,单位是byte。对同一个系统来说这是个常数
IOResources
 F此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换文件(swapfile)中,而且已经分配给其他程序。此时该页的内容必须从置换文件里再读出来。
 R此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换文件中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换文件里读出来
 W此程序被交换到置换文件的次数
 c此程序被强迫中断(像是分配到的CPU时间耗尽)的次数
 w此程序自愿中断(像是在等待某一个I/O执行完毕,像是磁碟读取等等)的次数
 I此程序所输入的文件数
 O此程序所输出的文件数
 r此程序所收到的SocketMessage
 s此程序所送出的SocketMessage
 k此程序所收到的信号(Signal)数量
CommandInfo
 C执行时的参数以及指令名称
 x指令的结束代码(ExitStatus)
 -por--portability
这个选项会自动把显示格式设定成为:
real%e
user%U
sys%S
这么做的目的是为了与POSIX规格相容。
 -vor--verbose这个选项会把所有程序中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用
例(1) 执行ps-aux的结果和所花费的系统资源:
# time -vps-aux
7. uptime命令
格式:uptime[-V]
说明:uptime提供用户下面的信息,不需其他参数。
现在的时间;系统开机运转到现在经过的时间;连线的用户数量;最近一分钟,五分钟和十五分钟的系统负载。
参数:
 -V显示版本信息
例(1)
# uptime
10:41amup5days,10min,1users,loadaverage:0.00,0.00,1.99
5.3 登陆用户
1. chfn命令
格式:chfn
说明:提供用户更改个人信息,用于fingerandmailusername
例(1)
# chfn
Changingfingerinformationforuser
Password:[del]
Name[]:JohnneyHuang###提供finger时的内容
Office[]:NCCU
OfficePhone[]:[del]
HomePhone[]:[del]
2. chsh命令
格式:chsh[-l][-sshellname]
说明:更改用户shell设定。
参数:
 -l列出当前机器上能用的shell名称
 -s将当前的shell变为shellname
例(1)
# chsh
Changingfihangingshellforuser1
Password:[del]
Newshell[/bin/tcsh]:###[是目前使用的shell]
[del]
例(2) 展示/etc/shells文件内容:
# chsh-l
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
3. finger命令
格式:finger[options]user[@address]
说明:finger可以让用户查询一些其他用户的内容。会列出来的内容有:
LoginName
UserName
Homedirectory
Shell
Loginstatus
mailstatus
plan
project
forward
其中plan,project和forward就是用户在他的HomeDirectory的plan,project和forward等文件里的内容。如果没有就没有。finger指令并不限定于在同一服务器上查询,也可以寻找某一个远端服务器上的用户。只要给一个像是E-mailaddress一般的地址即可。
参数:
 -l多行显示
 -s单行显示。这个选项只显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的用户是远端服务器的用户,这个选项无效
例(1) 下列指令可以查询本机管理员的内容:
# fingerroot
Login:rootName:root
Directory:/rootShell:/bin/bash
Neverloggedin.
Nomail.
NoPlan.
4. last命令
格式:last[-X][-fFileName][-tTime][-nNumber|-Number][用户名][终端]
说明:显示系统开机以来或是从每月初登入者的信息
参数:
 -fFileName指定一个来读取登录或注销的备用文件
 -n指定在列表中要显示的行数
 -tTime显示在一个给定的时间值中登录的用户。时间变量以十进制的[[CC]YY]MMDDhhmm[.SS]形式指定,其中:
 CC指定年份的前两个数字
 YY指定年份的后两个数字
 MM指定年份中的月份(01到12)
 DD指定月份中的日期(01到31)
 hh指定天中的小时(00到23)
 mm指定小时中的分数(00到59)
 SS指定分钟中的秒数(00到59)
 -X显示每个用户名的所有可用字符,而不是将它们截断只剩前面8个字符
例(1) 要显示所有在4月15日上午10:30仍登录的用户:
# last-t04151030
例(2) 要显示列表中的10行:
# last-n10
例(3) 要显示所有记录的登录和注销:
# last-X
5. passwd命令
格式:passwd[-l][-u][-d][-S][username]
说明:用来更改用户的密码。
参数:
 -l锁定已经命名的账户名称,只有具备root权限的用户方可使用
 -u解开账户锁定状态,只有具备root权限的用户方可使用
 -d关闭用户的密码认证功能,用户在登入时将可以不用输入密码,只有具备root权限的用户方可使用
 -S显示指定用户的密码认证种类,只有具备root权限的用户方可使用
 [username]指定帐号名称
例(1) 设置用户的口令:
# passwd
例(2) 锁定指定用户帐号:
# passwd –l user1
例(3) 解锁指定用户帐号:
# passwd –u user1
例(4) 删除用户口令
# passwd –d user1
例(5) 查询用户口令状态:
# passwd –S user1
6. who命令
格式:who-[husfV][user]
说明:显示系统中有那些用户正在上面,显示的内容包含了用户ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU使用量,动作等等。
参数:
 -h:不要显示标题列
 -u:不要显示用户的动作/工作
 -s:使用简短的格式来显示
 -f:不要显示用户的上线位置
 -V:显示程序版本
例(1) 显示系统当前用户:
# who
5.4 信息发送
1. /etc/aliases命令
格式:请用newaliases更新数据库
说明:sendmail会使用一个在/etc/aliases中的文件做用户名称转换的动作。当sendmail收到一个要送给xxx的信时,它会依据aliases文件的内容送给另一个用户。这个功能可以创造一个只有在信件系统内才有效的用户。例如mailinglist就会用到这个功能,在mailinglist中,我们可能会创造一个叫redlinux@link.ece.uci.edu的mailinglist,但实际上并没有一个叫redlinux的用户。实际aliases文件的内容是将送给这个用户的信都收给mailinglist处理程序负责分送的工作。
/etc/aliases是一个文字模式的文件,sendmail需要一个二进位格式的/etc/aliases.db。newaliases的功能传是将/etc/aliases转换成一个sendmail所能了解的数据库。
例(1)
# newaliases
下面命令会做相同的事,
# sendmail-bi
2. mail命令
格式:mail[-iInv][-ssubject][-ccc-addr][-bbcc-addr]user1[user2...]
说明:mail不仅只是一个指令,mail还是一个电子邮件程序,不过利用mail来读信的人应该很少吧!对于系统管理者来说mail就很有用,因为管理者可以用mail写成script,定期寄一些备忘录提醒系统的用户。
参数:
 i忽略tty的中断信号。(interrupt)
 I强迫设成互动模式。(Interactive)
 v显示出信息,例如送信的地点、状态等等。(verbose)
 n不读入mail.rc设定文件
 s邮件标题
 ccc邮件地址
 bbcc邮件地址
例(1) 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,用户必须输入标题与信件的内容等。而user2没有主机位置,就会送给邮件服务器的user2用户:
# mailuser1@email.address
# mailuser1@email.addressuser2
例(2) 将mail.txt的内容寄给user2同时cc给user1。如果将这一行指令设成cronjob就可以定时将备忘录寄给系统用户:
# mail-s标题-cuser1user2<mail.txt
3. mailq命令
说明:显示待寄邮件的清单。包括邮件ID]、邮件大小、邮件储存时间、寄信人、收信人,以及邮件无法寄出的原因。
参数:
 -v显示较详细的信息
例(1) 列出待寄邮件清单:
# mailq
4. mesg命令
格式:mesg[y|n]
说明:决定是否允许其他人传信息到自己的终端机介面。
参数:
 y允许信息传到终端机介面上
 n不允许信息传到终端机介面上
例(1) 改变目前信息设定,改成不允许信息传到终端机介面上:
# mesgn
5. talk命令
格式:talkperson[ttyname]
说明:与其他用户对谈
参数:
 person预备对谈的用户帐号,如果该用户在其他机器上,则可输入person@machine.name
 ttyname如果用户同时有两个以上的tty连线,可以自行选择合适的tty传信息
例(1) 与现在机器上的用户Rollaend对谈,此时Rollaend只有一个连线:
# talkRollaend
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入“talkjzlee”即可开始对谈,结束请按ctrl+c。
例(2) 与linuxfab.cx上的用户Rollaend对谈,使用pts/2来对谈:
# talkRollaend@linuxfab.cxpts
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入talkjzlee@jzlee.home”即可开始对谈,结束请按ctrl+c。
注意:若屏幕的字会出现不正常的字符,试著按ctrl+l更新屏幕画面。
6. wall命令
格式:wall[message]
说明:wall会将信息传给每一个mesg设定为yes的上线用户。当使用终端机介面做为标准传入时,信息结束时需加上EOF(通常用Ctrl+D)。
例(1) 传信息"hi"给每一个用户:
# wallhi
7. write命令
格式:writeuser[ttyname]
说明:传信息给其他用户
参数:
 user预备传信息的用户帐号
 ttyname如果用户同时有两个以上的tty连线,可以自行选择合适的tty传信息
例(1) 传信息给Rollaend,此时Rollaend只有一个连线:
# writeRollaend
接下来就是将信息打上去,结束请按ctrl+c
例(2) 传信息给Rollaend,Rollaend的连线有pts/2,pts/3:
# writeRollaendpts/2
接下来就是将信息打上去,结束请按ctrl+c。
注意:若对方设定mesgn,则此信息将无法传给对方。
5.5 进程管理
1. kill命令
格式:kill[-ssignal|-p][-a]pid
说明:kill送出一个特定的信号(signal)给行程id为pid的行程根据该信号而做特定的动作,若没有指定,预设是送出终止(TERM)的信号
参数:
 -s(signal):其中可用的信号有HUP(1),KILL(9),TERM(15),分别代表着重跑,砍掉,结束。详细的信号可以用kill-l
 -p:显示pid,并不送出信号
 -l(signal):列出所有可用的信号名称
例(1) 将pid为323的行程砍掉(kill):
# kill-9323
例(2) 将pid为456的行程重跑(restart):
# kill-HUP456
2. nice命令
格式:nice[-nadjustment][-adjustment][--adjustment=adjustment][--help][--version][command[arg...]]
说明:以更改过的优先级来执行程序,如果未指定程序,则会显示目前的排程优先级,默认的adjustment为10,范围为-20(最高优先级)到19(最低优先级)
参数:
 -nadjustment,-adjustment,--adjustment=adjustment皆为将该原有优先级的增加adjustment
 --help显示求助信息
 --version显示版本信息
例(1) 将ls的优先级加1并执行:
# nice-n1ls
注意:优先级(priority)为操作系统用来决定CPU分配的参数,Linux使用『回合制(round-robin)』的演算法来做CPU排程,优先级越高,所可能获得的CPU时间就越多。
3. ps命令
格式:ps[options][--help]
说明:显示瞬间行程(process)的动态。
参数:
 -A列出所有的行程
 -w显示加宽可以显示较多的信息
 -au显示较详细的信息
 -aux显示所有包含其他用户的行程
 au(x)输出格式:
 USER:行程拥有者
 PID:pid
 %CPU:占用的CPU使用率
 %MEM:占用的记忆体使用率
 VSZ:占用的虚拟记忆体大小
 RSS:占用的记忆体大小
 TTY:终端的次要装置号码(minordevicenumberoftty)
 STAT:该行程的状态:
 D:不可中断的静止(通悸□□缜b进行I/O动作)
 R:正在执行中
 S:静止状态
 T:暂停执行
 Z:不存在但暂时无法消除
 W:没有足够的记忆体分页可分配
 <:高优先序的行程
 N:低优先序的行程
 L:有记忆体分页分配并锁在记忆体内(实时系统或捱AI/O)
 START:行程开始时间
 TIME:执行的时间
 COMMAND:所执行的指令
4. pstree命令
格式:pstree[-a][-c][-h|-Hpid][-l][-n][-p][-u][-G|-U][pid|user]
说明:将所有行程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本行程为根(root),如果有指定用户id,则树状图只会显示该用户所拥有的行程。
参数:
 -a显示该行程的完整指令及参数,如果是被记忆体置换出去的行程则会加上括号
 -c如果有重覆的行程名,则分开列出(默认值是会在前面加上*)
5. renice命令
格式:renicepriority[[-p]pid...][[-g]pgrp...][[-u]user...]
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)。
参数:
 -ppid重新指定行程的id为pid的行程的优先序
 -gpgrp重新指定行程群组(processgroup)的id为pgrp的行程(一个或多个)的优先序
 -uuser重新指定行程拥有者为user的行程的优先序
例(1) 将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1:
# renice+1987-udaemonroot-p32
注意:每一个行程(Process)都有一个唯一的(unique)id。
6. skill命令
格式:skill[signaltosend][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命令名称可使用的信号:
以下列出已知的信号名称,信号代号,功能。
名称(代号)功能/描述
ALRM14离开
HUP1离开
INT2离开
KILL9离开/强迫关闭
PIPE13离开
POLL离开
PROF离开
TERM15离开
USR1离开
USR2离开
VTALRM离开
STKFLT离开/只适用于i386,m68k,arm和ppc硬件
UNUSED离开/只适用于i386,m68k,arm和ppc硬件
TSTP停止/产生与内容相关的行为
TTIN停止/产生与内容相关的行为
TTOU停止/产生与内容相关的行为
STOP停止/强迫关闭
CONT从新启动/如果在停止状态则从新启动,否则忽略
PWR忽略/在某些系统中会离开
WINCH忽略
CHLD忽略
ABRT6核心
FPE8核心
ILL4核心
QUIT3核心
SEGV11核心
TRAP5核心
SYS核心/或许尚未实作
EMT核心/或许尚未实作
BUS核心/核心失败
XCPU核心/核心失败
XFSZ核心/核心失败
例(1) 停止所有在PTY装置上的程序:
# skill-KILL-vpts/*
例(2) 停止三个用户user1,user2,user3:
# skill-STOPuser1user2user3
7. top命令
格式:top[-][ddelay][q][c][S][n]
说明:实时显示process的动态。
参数:
 d:改变显示的更新速度,或是在交谈式指令列(interactivecommand)按s
 q:没有任何延迟的显示速度,如果用户是有superuser的权限,则top将会以最高的优先序执行
 c:切换显示模式,共有两种模式,一是只显示执行文件的名称,另一种是显示完整的路径与名称S:累积模式,会将己完成或消失的子行程(deadchildprocess)的CPUtime累积起来
 s:安全模式,将交谈式指令取消,避免潜在的危机
 i:不显示任何闲置(idle)或无用(zombie)的行程
 n:更新的次数,完成后将会退出top
 b:批次文件模式,搭配"n"参数一起使用,可以用来将top的结果输出到文件内
例(1) 显示更新十次后退出:
# top-n10
例(2) 用户将不能利用交谈式指令来对行程下命令:
# top-s
例(3) 将更新显示二次的结果输入到名称为top.log的文件里:
# top-n2-b<top.log
5.6 文件打印
1. lpd命令
格式:lpd[-l][#port]
说明:lpd是一个常驻的打印机管理程序,它会根据/etc/printcap的内容来管理本地或远端的打印机。/etc/printcap中定义的每一个打印机必须在/var/lpd中有一个相对应的目录,目录中以cf开头的文件表示一个等待送到适当装置的印表工作。这个文件通常是由lpr所产生。
lpr和lpd组成了一个可以离线工作的系统,当你使用lpr时,打印机不需要能立即可用,甚至不用存在。lpd会自动监视打印机的状况,当打印机上线后,便立即将文件送交处理。这个得所有的应用程序不必等待打印机完成前一工作。
参数:
 -l:将一些除错信息显示在标准输出上
 #port:一般而言,lpd会使用getservbyname取得适当的TCP/IPport,你可以使用这个参数强迫lpd使用指定的port
2. lpr命令
格式:lpr[-Pprinter]
将文件或是由标准输入送进来的内容送到打印机贮列之中,打印机管理程序lpd会在稍后将这个文件送给适当的程序或装置处理。lpr可以用来将料资送给本地或是远端的主机来处理。
参数:
 -pPrinter:将内容送至指定的打印机Printer,默认值为lp。
例(1) 将www.c和kkk.c送到打印机lp:
# lpr-Plpwww.ckkk.c
3. lprm命令
格式:/usr/bin/lprm[P][file...]
说明:
尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消。由于每一个打印机都有一个独立的贮列,你可以用-P这个命令设定想要作用的印列机。如果没有设定的话,会使用系统预设的打印机。
这个命令会检查用户是否有足够的权限删除指定的文件,一般而言,只有文件的拥有者或是系统管理员才有这个权限。
例(1) 将打印机hpprinter中的第1123号工作移除
# lprm-Phpprinter1123
例(2) 将第1011号工作由预设打印机中移除
# lprm1011

5.7 磁盘工具
1. fdformat命令
格式:fdformat[-n]device
说明:对指定的软盘机装置进行低阶格式化。使用这个指令对软盘格式化的时候,最好指定像是下面的装置:
/dev/fd0d360磁碟机A:,磁片为360KB磁碟
/dev/fd0h1440磁碟机A:,磁片为1.4MB磁碟
/dev/fd1h1200磁碟机B:,磁片为1.2MB磁碟
如果使用像是/dev/fd0之类的装置,如果里面的磁碟不是标准容量,格式化可能会失败。在这种情况之下,用户可以用setfdprm指令先行指定必要参数。
参数:
 -n关闭确认功能。这个选项会关闭格式化之后的确认步骤
例(1) 将磁碟机A的磁片格式化成1.4MB的磁片。并且省略确认的步骤:
# fdformat-n/dev/fd0h1440
2. mformat命令
格式:mformat[-tcylinders][-hheads][-ssectors][-lvolume_label][-F][-IfsVer-sion][-Ssizecode][-2sectors_on_track_0][-Msoftware_sector_size][-a][-X][-C][-Hhidden_sectors][-rroot_sectors][-Bboot_sector][-0rate_on_track_0][-Arate_on_other_tracks][-1][-k]drive:
说明:在已经做过低阶格式化的磁片上建立DOS文件系统。如果在编程mtools的时候把USE_2M的参数打开,部分与2M格式相关的参数就会发生作用。否则这些参数(像是S,2,1,M)不会发生作用。
参数:
 -t磁柱(synlider)数
 -h磁头(head)数
 -s每一磁轨的磁区数
 -l标签
 -F将磁碟格式化为FAT32格式,不过这个参数还在实验中。
 -I设定FAT32中的版本号。这当然也还在实验中。
 -S磁区大小代码,计算方式为sector=2^(大小代码+7)
 -c磁丛(cluster)的磁区数。如果所给定的数字会导致磁丛数超过FAT表的限制,mformat会自动放大磁区数
 -s
 -M软件磁区大小。这个数字就是系统回报的磁区大小。通常是和实际的大小相同
 -a如果加上这个参数,mformat会产生一组Atari系统的序号给这块软盘。
 -X将软盘格式化成XDF格式。使用前必须先用xdfcopy指令对软盘作低阶格式化的动作
 -C产生一个可以安装MS-DOS文件系统的磁碟影像文件(diskimage)。当然对一个实体磁碟机下这个参数是没有意义的
 -H隐藏磁区的数目。这通常适用在格式化硬盘的分割区时,因为通常一个分割区的前面还有分割表。这个参数未经测试,能不用就不用
 -n磁碟序号
 -r根目录的大小,单位是磁区数。这个参数只对FAT12和FAT16有效
 -B使用所指定的文件或是设备的开机磁区做为这片磁片或分割区的开机磁区。当然当中的硬件参数会随之更动
 -k尽量保持原有的开机磁区
 -0第0轨的内容传输率
 -A第0轨以外的内容传输率
 -2使用2m格式
 -1不使用2m格式
例(1) 默认值把a:(就是/dev/fd0)里的磁碟片格式化:
# mformat a
3. mkdosfs命令
格式:mkdosfs[-c|-lfilename][-fnumber_of_FATs][-FFAT_size][-ivolume_id][-mmessage_file][-nvolume_name][-rroot_dir_entry][-ssector_per_cluster][-v]device[block_count]
说明:建立DOS文件系统。device指你想要建立DOS文件系统的装置代号。像是/dev/hda1等等。block_count则是你希望配置的区块数。如果block_count没有指定则系统会自动替你计算符合该装置大小的区块数。
参数:
 -c建立文件系统之前先检查是否有坏轨
 -l从得定的文件中读取坏轨记录
 -f指定文件配置表(FAT,FileAllocationTable)的数量。默认值为2。目前Linux的FAT文件系统不支援超过2个FAT表。通常这个不需要改
 -F指定FAT表的大小,通常是12或是16个位元组。12位元组通常用于磁碟片,16位元组用于一般硬盘的分割区,也就是所谓的FAT16格式。这个值通常系统会自己选定适当的值。在磁碟片上用FAT16通常不会发生作用,反之在硬盘上用FAT12亦然
 -i指定VolumeID。一般是一个4个位元组的数字,像是2e203a47。如果不给系统会自己产生
 -m当用户试图用这片磁片或是分割区开机,而上面没有操作系统时,系统会给用户一段警告信息。这个参数就是用来变更这个信息的。你可以先用文件编辑好,然后用这个参数指定,或是用
 -m-这样系统会要求你直接输入这段文字。要特别注意的是,文件里的字串长度不要超过418个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在DOS底下算两个字符!)
 -n指定VolumeName,就是磁碟标签。如同在DOS底下的format指令一样,给不给都可以。没有默认值
 -r指定根目录底下的最大文件数。这里所谓的文件数包括目录。默认值是在软盘上是112或是224,在硬盘上是512。没事不要改这个数字。
 -s每一个磁丛(cluster)的磁区数。必须是2的次方数。不过除非你知道你在作什么,这个值不要乱给
 -v提供额外的信息
例(1) 将A槽里的磁碟片格式化为DOS格式,并将标签设为Tester:
# mkdosfs-nTester/dev/fd0
5.8 文件系统
1. dd命令
格式:dd[option]
如果你想要在线看manual,可以试试:dd--help或是infodd
如果你想要看看这个版本如何:
dd--version
输入或输出
ddif=[STDIN]of=[STDOUT]
强迫输入或输出的Size为多少Bytes
bs:dd-ibs=[BYTE]-obs=[SIZE]
强迫一次只做多少个Bytes
cbs=BYTES
跳过一段以后才输出
seek=BLOCKS
跳过一段以后才输入
skip=BLOCKS
当然你可以拿这个来方便的拷贝光碟(注意,你的光碟是标准的iso9660格式才可以这么做唷!)
ddif=/dev/cdromof=cdrom.iso
其中if后面以及of后面的内容依你的需求调整。
然后给系统这个指令就可以烧了:
cdrecord-vcdrom.iso
这篇不是在讲cdrecord的,所以上面的指令是最为简单但是不一定能符合您的硬件环境....
2. df命令
格式::df[选项]...[FILE]..
说明:显示文件系统的状况,或是看所有文件系统的状况(默认值)。
参数:
 -a,--all包含所有的具有0Blocks的文件系统
 --block-size={SIZE}使用{SIZE}大小的Blocks
 -h,--human-readable使用人类可读的格式(默认值是不加这个选项的...)
 -H,--si很像-h,但是用1000为单位而不是用1024
 -i,--inodes列出inode信息,不列出已使用block
 -k,--kilobytes就像是--block-size=1024
 -l,--local限制列出的文件结构
 -m,--megabytes就像--block-size=1048576
 --no-sync取得信息前不sync(默认值)
 -P,--portability使用POSIX输出格式
 --sync在取得信息前sync
 -t,--type=TYPE限制列出文件系统的TYPE
 -T,--print-type显示文件系统的形式
 -x,--exclude-type=TYPE限制列出文件系统不要显示TYPE
 -v(忽略)
 --help显示这个帮手并且离开
 --version输出版本信息并且离开
3. e2fsck命令
格式:e2fsck[-pacnydfvFV][-bsuperblock][-Bblocksize][-l|-Lbad_blocks_file][-Cfd]device
说明:检查使用Linuxext2文件系统的partition是否正常工作。
参数:
 device:预备检查的硬盘partition,例如:/dev/sda1
 -a:对partition做检查,若有问题便自动修复,等同-p的功能
 -b:设定存放superblock的位置
 -B:设定单位block的大小
 -c:检查该partition是否有坏轨
 -Cfile:将检查的结果存到file中以便查看
 -d:显示e2fsck的debug结果
 -f:强制检查
 -F:在开始检查前,将device的buffercache清空,避免有错误发生
 -lbad_blocks_file:将有坏轨的block内容加到bad_blocks_file里面
 -Lbad_blocks_file:设定坏轨的block内容存到bad_blocks_file里面,若无该文件则自动产生
 -n:将文件系统以[唯读]方式打开
 -p:对partition做检查,若有问题便自动修复
 -v:详细显示模式
 -V:显示出目前e2fsck的版本
 -y:预先设定所有检查时的问题均回答[是]
例(1) 检查/dev/hda5是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是]:
# e2fsck-a-y/dev/hda5
注意:
大部份使用e2fsck来检查硬盘partition的情况时,通常都是情形特殊,因此最好先将该partitionumount,然后再执行e2fsck来做检查,若是要非要检查/时,则请进入singalusermode再执行。
4. exportfs命令
格式:exportfs
说明:使本地目录可以为网络文件系统(NFS)客户机安装。这个命令通常是在系统启动期间由/etc/rc.nfs文件调用的,并使用了/etc/exports文件中的信息来导出一个或者多个目录,这些目录必须用完整的路径名来指定。
例(1) 导出/etc/exports文件中的全部目录:
# exportfs–a
例(2) 从/etc/exports文件导出一个目录:
# exportfs/home/notes
5. fdisk命令
格式:fdisk设备名
说明:观察硬盘之实体使用情形与分割硬盘用。
例(1) 观察硬盘之实体使用情形:
在console上输入
# fdisk-l/dev/sda
例(2) 进入分割硬盘模式:
在console上输入
# fdisk/dev/sda
 输入m显示所有命令列示
 输入p显示硬盘分割情形
 输入a设定硬盘启动区
 输入n设定新的硬盘分割区
 输入e硬盘为[延伸]分割区(extend)
 输入p硬盘为[主要]分割区(primary)
 输入t改变硬盘分割区属性
 输入d删除硬盘分割区属性
 输入q结束不存入硬盘分割区属性
 输入w结束并写入硬盘分割区属性
6. fsck命令
格式:fsck[-sACVRP][-tfstype][--][fsck-options]filesys[...]
说明:检查与修复Linux文件系统,可以同时检查一个或多个Linux文件系统。
参数:
 filesys:device名称(eg./dev/sda1),mount点(eg./或/usr)
 -t:给定文件系统的格式,若在/etc/fstab中已有定义或kernel本身已支援的则不需加上此参数
 -s:依序一个一个地执行fsck的指令来检查
 -A:对/etc/fstab中所有列出来的partition做检查
 -C:显示完整的检查进度
 -d:显示e2fsck的debug结果
 -p:同时有-A条件时,同时有多个fsck的检查一起执行
 -R:同时有-A条件时,省略/不检查
 -V:详细显示模式
 -a:如果检查有错则自动修复
 -r:如果检查有错则由用户回答是否修复
例(1) 检查msdos文件系统的/dev/hda5是否正常,如果有异常便自动修复:
# fsck-tmsdos-a/dev/hda5
注意:
此指令可与/etc/fstab相互参考操作来加以了解。
7. fstab命令
格式:使用编辑器来修改/etc/fstab(eg.vi/etc/fstab)
说明:存放文件系统与目录结构对应内容的文件
fstab栏为说明:
第一栏(fs_spec):实际的device名称
第二栏(fs_file):对应到的目录结构(mountpoint)
第三栏(fs_vfstype):该partition的文件系统,常见的有:
minix、ext、ext2、msdos、iso9660、nfs、swap
第四栏(fs_mntops):在mount时的参数
第五栏(fs_freq):在使用dump时是否记录,不需要则输入0
第六栏(fs_passno):决定在开机时执行fsck的先后顺序
例(1) IDE硬盘分成两个partition与一个swap,还有一台光碟机跟一台软盘机的情形:
/dev/hda1/ext2defaults11
/dev/hda5/homeext2defaults12
/dev/cdrom/mnt/cdromiso9660noauto,user,ro00
/dev/hda6swapswapdefaults00
/dev/fd0/mnt/floppyext2noauto,owner00
none/procprocdefaults00
none/dev/ptsdevptsgid=5,mode=62000
8. mkfs命令
格式:mkfs[-V][-tfstype][fs-options]filesys[blocks]
说明:建立linux文件系统在特定的partition上。
参数:
 device:预备检查的硬盘partition,例如:/dev/sda1
 -V:详细显示模式
 -t:给定文件系统的格式,Linux的默认值为ext2
 -c:在制做文件系统前,检查该partition是否有坏轨
 -lbad_blocks_file:将有坏轨的block内容加到bad_blocks_file里面
 block:给定block的大小
例(1) 在/dev/hda5上建一个msdos的文件系统,同时检查是否有坏轨存在,并且将过程详细列出来:
# mkfs-V-tmsdos-c/dev/hda5
9. mount命令
格式:
mount[-hV]
mount-a[-fFnrsvw][-tvfstype]
mount[-fnrsvw][-ooptions[,...]]device|dir
mount[-fnrsvw][-tvfstype][-ooptions]devicedir
说明:
将某个文件的内容解读成文件系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我们使用umnount将这个文件系统移除为止,这个命令之下的所有文件将暂时无法被调用。
这个命令可以被用来挂上任何的文件系统,你甚至可以用-oloop选项将某个一般的文件当成硬盘机分割挂上系统。这个功能对于ramdisk,romdisk或是ISO9660的影像文件之解读非常实用。相关命令umount。
参数:
 -V显示程序版本
 -h显示辅助信息
 -v显示较信息,通常和-f用来除错。
 -a将/etc/fstab中定义的所有文件系统挂上。
 -F这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快挂上的动作
 -f通常做除错的用途。它会使mount并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和-v一起使用
 -n一般而言,mount在挂上后会在/etc/mtab中写入一笔内容。但在系统中没有可写入文件系统存在的情况下可以用这个选项取消这个动作
 -s-r等于-oro
 -w等于-orw
 -L将含有特定标签的硬盘分割挂上
 -U将文件分割序号为的文件系统挂下。-L和-U必须在/proc/partition这种文件存在时才有意义
 -t指定文件系统的型态,通常不必指定。mount会自动选择正确的型态
 -oasync打开非同步模式,所有的文件读写动作都会用非同步模式执行
 -osync在同步模式下执行
 -oatime-onoatime当atime打开时,系统会在每次读取文件时更新文件的『上一次调用时间』。当我们使用flash文件系统时可能会选项把这个选项关闭以减少写入的次数
 -oauto-onoauto打开/关闭自动挂上模式
 -odefaults使用预设的选项rw,suid,dev,exec,auto,nouser,andasync.
 -odev-onodev-oexec-onoexec允许执行文件被执行
 -osuid-onosuid允许执行文件在root权限下执行
 -ouser-onouser用户可以执行mount/umount的动作。
 -oremount将一个已经挂下的文件系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上
 -oro用唯读模式挂上
 -orw用可读写模式挂上
 -oloop=使用loop模式用来将一个文件当成硬盘分割挂上系统
例(1) 将/dev/hda1挂在/mnt之下:
# mount/dev/hda1/mnt
例(2) 将/dev/hda1用唯读模式挂在/mnt之下:
# mount-oro/dev/hda1/mnt
例(3) 将/tmp/image.iso这个光碟的image文件使用loop模式挂在/mnt/cdrom之下。用这种方法可以将一般网络上可以找到的Linux光碟ISO文件在不烧录成光碟的情况下检视其内容:
# mount-oloop/tmp/image.iso/mnt/cdrom
10. swapon命令
格式:/sbin/swapon-a[-v]
/sbin/swapon[-v][-ppriority]specialfile...
/sbin/swapon[-s]
参数:
 -h帮助
 -V显示版本信息
 -s显示简短的装置信息
 -a自动启动所有SWAP装置
 -p设定优先权,你可以在0到32767中间选一个数字给他。或是在/etc/fstab里面加上pri=[value]([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用swapon-a来启动他们,而且有优先权设定
 swapon是打开swap.
 Swapoff是.关闭swap
11. sync命令
格式:sync
说明:Linux系统中欲写入硬盘的内容有的时候会了效率起见,会写到filesystembuffer中,这个buffer是一块记忆体空间,如果欲写入硬盘的内容存于此buffer中,而系统又突然断电的话,那么内容就会流失了,sync指令会将存于buffer中的内容强制写入硬盘中。
12. sfdisk命令
格式:sfdisk[-?Tvx][-d<硬盘>][-g<硬盘>][-l<硬盘>][-s<分区>][-V<硬盘>]
说明:硬盘分区工具程序。sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。
参数:
 -?或--help显示帮助
 -d<硬盘>显示硬盘分区的设置
 -g<硬盘>或--show-geometry<硬盘>显示硬盘的CHS参数
 -l<硬盘>显示后硬盘分区的相关设置
 -s<分区>显示分区的大小,单位为区块
 -T或--list-types显示所有sfdisk能辨识的文件系统ID
 -v或--version显示版本信息
 -V<硬盘>或--verify<硬盘>检查硬盘分区是否正常
 -x或--show-extend显示扩展分区中的逻辑分区
5.9 用户管理
1. adduser命令
格式:adduser[-ccomment][-dhome_dir]
[-eexpire_date][-finactive_time]
[-ginitial_group][-Ggroup[,...]]
[-m[-kskeleton_dir]|-M][-ppasswd]
[-sshell][-uuid[-o]][-n][-r]loginid
或adduser-D[-gdefault_group][-bdefault_home]
[-fdefault_inactive]
[-edefault_expire_date]
[-sdefault_shell]
说明:adduser与useradd指令为同一指令(经由符号连结symboliclink)新增用户帐号或更新预设的用户内容。
参数:
 -ccomment新用户位于密码文件(通常是/etc/passwd)的注解内容
 -dhome_dir设定用户的家目录为home_dir,默认值为预设的home后面加上用户帐号loginid
 -eexpire_date设定此帐号的使用期限(格式为YYYY-MM-DD),默认值为永久有效
 -finactive_time
例(1) 建立用户帐号user1:
# useradduser1
例(2) 添加用户帐号到指定用户私有组:
# useradd–grootuser1
2. usermod命令
格式:usermod[-ccomment][-dhome_dir[-m]][-eexpire_data][-finactive_time][-ginitial_group][-Ggroup[…]][-llogin_name][-ppasswd][-sshell][-uuid[-o]][-L|-U]login
说明:用于设置已存在的用户帐号的属性,包括主目录、私有目录、登录shell等内容。
参数:
 -l改变用户帐号
 -L锁定用户帐号
 -U解锁用户帐号
例(1) 改变用户user1的登录帐号为user2:
# usermod–luser2user1
# tail-l/ect/passwd
例(2) 锁定用户帐号user1:
# usermod-Luser1
# tail-l/ect/shadow
例(3) 解锁用户帐号user1:
# usermod-Uuser1
# tail-l/ect/shadow
3. userdel命令
格式:userdel 用户名
说明:删除指定的用户帐号。
参数:
 -r删除用户的同时删除用户宿主目录
例(1) 删除用户user1并删除其宿主目录:
# userdel-ruser1
# ll-d/home/user1
4. su命令
格式:su[-fmp][-ccommand][-sshell][--help][--version][-][USER[ARG]]
说明:变更为其他用户的身份,除root外,需要键入该用户的密码。
参数:
 -f或--fast不必读启动文件(如csh.cshrc等),仅用于csh或tcsh
 -m-p或--preserve-environment执行su时不改变环境变数
 -ccommand或--command=command变更为帐号为USER的用户并执行指令(command)后再变回原来用户
 -sshell或--shell=shell指定要执行的shell(bashcshtcsh等),默认值为/etc/passwd内的该用户(USER)shell
 --help显示说明文件
 --version显示版本信息
 --l或--login这个参数加了之后,就好像是重新login为该用户一样,大部份环境变数(HOMESHELLUSER等等)都是以该用户(USER)为主,并且当前目录也会改变,如果没有指定USER,默认是root
 USER欲变更的用户帐号
 ARG传入新的shell参数
例(1) 变更帐号为root并在执行ls指令后退出变回原用户:
# su-clsroot
例(2) 变更帐号为root并传入-f参数给新执行的shell:
# suroot-f
例(3) 变更帐号为clsung并改变当前目录至clsung的家目录(homedir):
# su-clsung
5. sudo命令
格式:sudo-V
sudo-h
sudo-l
sudo-v
sudo-k
sudo-s
sudo-H
sudo[-b][-pprompt][-uusername/#uid]-s
sudocommand
说明:以系统管理者的身份执行指令,也就是说,经由sudo所执行的指令就好像是root亲自执行。
参数:
 -V显示版本编号
 -h会显示版本编号及指令的使用方式说明
 -l显示出自己(执行sudo的用户)的权限
 -v因为sudo在第一次执行时或是在N分钟内没有执行(N预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
 -k将会强迫用户在下一次执行sudo时问密码(不论有没有超过N分钟)
 -b将要执行的指令放在背景执行
 -pprompt可以更改问密码的提示语,其中%u会代换为用户的帐号名称,%h会显示主机名称
 -uusername/#uid不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的用户号码)
 -s执行环境变数中的SHELL所指定的shell,或是/etc/passwd里所指定的shell
 -H将环境变数中的HOME(家目录)指定为要变更身份的用户家目录(如不加-u参数就是系统管理者root)
 command要以系统管理者身份(或以-u更改为其他人)执行的指令
例(1) 列出目前的权限:
# sudo-l
例(2) 列出sudo的版本信息:
# sudo-V
5.10 启动与关闭
1. halt命令
格式:halt[-n][-w][-d][-f][-i][-p]
说明:若系统的runlevel为0或6,则关闭系统,否则以shutdown指令(加上-h参数)来取代。
参数:
 -n:在关机前不做将记忆体内容写回硬盘的动作
 -w:并不会真的关机,只是把记录写到/var/log/wtmp文件里
 -d:不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)-f:强迫关机,不呼叫shutdown这个指令
 -i:在关机之前先把所有网络相关的装置先停止
 -p:当关机的时候,顺便做关闭电源(poweroff)的动作
例(1) 关闭系统后关闭电源:
# halt-p
例(2) 关闭系统,但不留下纪录:
# halt-d
2. init命令
格式:init[0123456Ss]
说明:init是所有行程(process)的父行程(parent),开机时一定会先从这个指令开始(可以用ps-aux看看第一个行程就是init),并参考/etc/inittab文件来完成整个开机程序,共有八个执行层级(runlevel),而改变只能透过telinit的指令来更改。
参数:
 0开机执行层级为0,用来关闭系统
 1开机执行层级为1,用来进行单一用户模式(singleusermode)
 4开机执行层级为4,表示进入Xwindow时的模式
 6开机执行层级为6,用来重新开机
 S或s不是直接使用的,配合开机执行层级1时使用,当加上S或s表示开机后不参考/etc/inittab文件235请参照/etc/inittab文件内容以及/etc/rc.d/rc2.d,/etc/rc.d/rc3.d,/etc/rc.d/rc5.d等目录
3. reboot命令
格式:reboot[-n][-w][-d][-f][-i]
说明:若系统的runlevel为0或6,则重新开机,否则以shutdown指令(加上-r参数)来取代。
参数:
 -n:在重开机前不做将记忆体内容写回硬盘的动作
 -w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里
 -d:不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)-f:强迫重开机,不呼叫shutdown这个指令
 -i:在重开机之前先把所有网络相关的装置先停止
例(1) 重开机:
# reboot
例(2) 做个重开机的模拟(只有纪录并不会真的重开机):
# reboot-w
4. shutdown命令
格式:shutdown[-tseconds][-rkhncfF]time[message]
说明:shutdown可以用来进行关机程序,并且在关机以前传送信息给所有用户正在执行的程序,shutdown也可以用来重开机。
参数:
 -tseconds:设定在几秒钟之后进行关机程序
 -k:并不会真的关机,只是将警告信息传送给所有只用者
 -r:关机后重新开机
 -h:关机后停机
 -n:不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
 -c:取消目前已经进行中的关机动作
 -f:关机时,不做fcsk动作(检查Linux文件系统)
 -F:关机时,强迫进行fsck动作
 time:设定关机的时间
 message:传送给所有用户的警告信息
5.11 Linux中文件的压缩与解压缩
1. compress命令
格式:compress选项文件列表
说明:用Lempel-ziv压缩方法来压缩文件或压缩标准输入。
参数:
 -r递归操作,如果指定目录变元,则压缩该目录及其子目录中的所有文件
 -c将压缩数据返回标准输出,而缺省情况下为压缩文件时将压缩数据返回文件
 -v显示每个文件夹的压缩百分比
注意:在用compress压缩文件时,将在原文件名之后加上扩展名.Z。如果不指定文件,则压缩标准输入,其结果返回标准输出。
例(1) 压缩/mnt/lgx/a1.doc文件:
# compress/mnt/lgx/a1.doc
2. uncompress命令
格式:uncompress选项文件列表
说明:解压缩用compress程序压缩过的文件。
参数:
 -c它将压缩数据发往标准输出而不是改写旧的压缩文件
注意:如果不指定文件,则解压缩标准输入。缺省-c时,为解压缩。
例(1) 解压缩/mnt/lgx/a1.doc.Z:
# uncompress/mnt/lgx/a1.doc.Z
3. gzip命令
格式:gzip选项文件目录列表
说明:用Lempel-ziv编码压缩文件
参数:
 -c压缩结果写入标准输出,原文件保持不变。缺省时gzip将原文件压缩为.gz文件,并删除原文件
 -v输出处理信息
 -d解压缩指定文件
 -t测试压缩文件的完整性
注意:值得一提的是,gzip比compress压缩更加有效。
例(1) 压缩/mnt/lgx/a1.doc:
# gzip-v/mnt/lgx/a1.doc
4. gunzip命令
格式:gunzip选项文件列表
说明:解压缩用gzip命令(以及compress和zip命令)压缩过的文件
参数:
 -c将输出写入标准输出,原文件保持不变。缺省时,gunzip将压缩文件变成解压缩文件
 -l列出压缩文件中的文件而不解压缩
 -r递归解压缩,深入目录结构中,解压缩命令行变元所指定目录中的所有子目录内的文件
例(1) 解压缩/mnt/lgx/a1.doc.gz:
# gunzip/mnt/lgx/a1.doc.gz
5. tar命令
格式:tar选项文件目录列表
说明:对文件目录进行打包备份。
参数:
 -c建立新的归文件文件
 -r向归文件文件末尾追加文件
 -x从归文件文件中解出文件
 -O将文件解开到标准输出
 -v处理过程中输出相关信息
 -f对普通文件操作
 -z调用gzip来压缩归文件文件,与-x联用时调用gzip完成解压缩
 -Z调用compress来压缩归文件文件,与-x联用时调用compress完成解压缩
例(1) 用tar打包一个目录下的文件:
# tar-cvf/mnt/lgx/a1.doc
例(2) 用tar解开打包文件:
# ar-xvf/mnt/lgx/a1.doc.tar
例(3) 解压a1.doc.tar.gz文件:
方法1:
# gzip-dc/mnt/lgx/a1.doc.tar.gz(产生a1.doc.tar文件)
# tar-xvf/mnt/lgx/a1.doc.tar(产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
# gzip-dc/mnt/lgx/a1.doc.tar.gz|tar-xvf
方法2:使用tar提供的自动调用gzip解压缩功能
# tar-xzvf/mnt/lgx/a1.doc.tar.gz
经过tar打包后,也可用compress命令压缩(说明:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用“uncompress文件名”格式解压,然后用“tar-xvf文件名”解包。也可直接调用“tar-Zxvf文件名”解包。
5.12 Linux下rpm命令的基本用法
1. rmp软件包的安装命令
格式:rpm-i|(or--install)optionsfile1.rpm...fileN.rpm
说明:rpm软件包的安装。
参数:
 file1.rpm...fileN.rpm将要安装的RPM包的文件名
 -ivh“i”代表安装;“v”代表verbose,设置在安装过程中将显示详细的安装信息;“h”代表hash,设置在安装过程中用“#”来表示安装的进度
例(1) 安装指定的软件包到系统里:
# rpm-ivhcvs-1.11.2-10.i386.rpm
2. rpm软件包的升级命令
格式:rpm-U(or--upgrade)optionsfile1.rpm...fileN.rpm
说明:rpm软件包的升级。
参数:
 file1.rpm...fileN.rpm软件包的名字
例(1)
# rpm-Ucvs-1.11.2-10.i386.rpm
3. rmp软件包的查询命令
格式:rpm-q(or--query)options
说明:rpm软件包的查询。
参数:
 file1.rpm...fileN.rpm软件包的名字
 -p<file>(or``-'')查询软件包的文件
 -f<file>查询<file>属于哪个软件包
 -a查询所有安装的软件包
 --whatprovides<x>查询提供了<x>功能的软件包
 -g<group>查询属于<group>组的软件包
 --whatrequires<x>查询所有需要<x>功能的软件包
例(1) 显示系统中安装的所有的软件包的列表:
# rpm-qa|more
4. rpm软件包的删除命令
格式:rpm-e(or--erase)optionspkg1...pkgN
说明:rpm软件包的删除。
参数:
 pkg1...pkgN要删除的软件包
 --test只执行删除的测试
 --noscripts不运行预安装和后安装脚本程序
 --nodeps不检查依赖性
例(1) 删除当前系统的cvs-1.11.2-10.i386.rpm软件包:
# rpm-ecvs
发表于 2007-6-30 00:27:44 | 显示全部楼层
好多命令啊,呵呵,学linux活学活用就行。
回复 支持 反对

使用道具 举报

发表于 2007-7-2 15:14:55 | 显示全部楼层
谢谢啦,收藏
回复 支持 反对

使用道具 举报

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

本版积分规则

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