分享
 
 
 

UNIX 常用的指令

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

以下只说明各指令的基本用法, 若需详细说明, 请用 man 去读详细的 manual.

a. 关於档案/目录处理的指令: 1. ls

这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是

某一个档案的内容显示出来。 如果你在下 ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所

有档案。 也可以在 ls 後面加上所要察看的目录名称或档案的名称,如 % ls /home2/X11R5 % ls first ls 有一些特别的参数,可以给予使用者更多有关的资讯,如下: -a : 在 UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用 ls

将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 tcsh

的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a 。 -l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,

如档案存取权,档案拥有者( owner ),档案大小,档案最後更新

日期,甚而 symbolic link 的档案是 link 那一个档等等。如下 % ls -l drwx--x--x 2 jjtseng 512 Aug 8 05:08 18

drwx--x--x 2 jjtseng 512 Aug 8 22:00 19

-rw------- 1 jjtseng 566 Aug 8 05:28 makefile 2. cp

cp 这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另

一个档案或者是将其复制到另一个目录去。 cp 的用法如下: cp f1 f2 : 将档名为 f1 的档案复制一份为档名为 f2 的档案。

cp f1 f2 f3 ... dir : 将档案 f1 f2 f3 ... 都以相同的档名复制一

份放到目录 dir 里面。

cp -r dir1 dir2 : 将 dir1 的全部内容全部复制到 dir2 里面。 cp 也有一些参数,如下: -i : 此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来 f2

的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者

的回答是y(yes)才执行复制的动作。 -r : 此参数是用来做递回复制用,可将一整颗子树都复制到另一个

目录中。 3. mv

mv 的意义为 move , 主要是将一档案改名或换至另一个目录。如同 cp ,它也有

三种格式: mv f1 f2 : 将档名为 f1 的档案变更成档名为 f2 的档案。

mv dir1 dir2 : 将档名为 dir1 的目录变更成档名为 dir2 的目录。

mv f1 f2 f3 ... dir : 将档案 f1 f2 f3 ... 都移至目录 dir 里面。 mv 的参数有两个,-f 和 -i , 其中 -i 的意义与 cp 中的相同,均是 interactive

询问之意。而 -f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要

搬过去,所有其他的参数遇到 -f 均会失效。 4. rm

rm 的意义是 remove ,也就是用来杀掉一个档案的指令。在 UNIX 中一

个被杀掉的档案除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够救回

来的。所以在做 rm 动作的时候使用者应该要特别小心。 rm 的格式如下: rm f1 f2 f3 ..... 而 rm 的参数比较常用的有几个: -f , -i , 与 -r -f : 将会使得系统在删除时,不提出任何警告讯息。

-i : 在除去档案之前均会询问是否真要除去。

-r : 递回式的删除。 小心不要随便使用 rm -rf , 否则有一天你会"欲哭无泪"...... 5. mkdir

mkdir 是一个让使用者建立一个目录的指令。你可以在一个目录底下使用

midir 建立一个子目录,使用的方法如下: mkdir dirname1 [ dirname2 ... ] 如此你就可以建立一个或多个目录。 6. chdir ( cd )

这是让使用者用来转移工作目录用的。

chdir 的用法如下: chdir dirname 如此你就可以将目前的目录转移到 dirname 这一个目录去。

或使用 "chdir .." 来转移到上一层目录。 7. rmdir

相对於 mkdir ,rmdir 是用来将一个"空的"目录杀掉的。如果一个目录下面

没有任何档案,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下: rmdir dirname1 [ dirname2 .... ] 如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用

rm 指令的 -r 选项。 8. pwd

pwd 会将目前目录的路径( path )显示出来,例如: 9. cat/more/less

以上三个指令均为察看档案内容的指令。cat 的意义是猫....不不不,是

concatenate ,在字典上的意思是"连结,将…串成锁状"( 语出资工电子

词典 cdict ),其实就是把档案的内容显示出来的意思。 cat 有许多奇怪

的参数,较常为人所使用的是 -n 参数,也就是把显示出来的内容加上行

号。 cat 的用法如下: cat [-n] :自标准输入读进内容,你可以用 pipe 将别的程式的输出转向

给 cat .

cat [-n] filename : 将 filename 的内容读进来,显示在标准输出上。 问题在於 cat 它是不会停下来的,因此并不好用( 试想如果一个萤幕二十

四行,而一个档案四百行,cat 一出来将会劈哩啪啦不断的卷上去,使用者

很难据此得到他们所需的资讯。) 所以才有人又写了 more 出来。 more , 跟据蔡文能老师的说法是"再多一点就好",more 可以将所观察的档案

跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷行。如果

使用者要在某一个档案中搜寻一个特定的字串,则按 / 然後跟著打所要搜寻

的单字即可进行搜寻。more 也可以找得到。more 的使用法如下: more filename 如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开 more 的使用。

在使用中按'v' 亦可以使用编辑器来编辑所观看的档案。 less 的用法与 more 极类似,原先它就是为了弥补 more 只能往前方卷页的缺

点而设计。 less 的用法如下: less filename 其与 more 不同的是它可以按 y 来往上卷一行,并且可以用"?"来往回搜寻你所

要找的单字。 10. chmod

chmod 为变更档案模式用( change mode ) . 这个指令是用来更改档案的存取模

式( access mode )。在 UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式,

分别针对该档案的拥有者( onwer )、同群者( group member )( 你可以 ls -lg

来观看某一档案的所属的 group ),以及其他人( other )。一个档案如果改成可

执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者

有进入该目录之权利。chmod 就是用来变更一些档案的模式,其使用方式如下: chmod [ -fR ] mode filename ... 其参数的意义如下: -f Force. chmod 不会理会失败的动作。

-R Recurive. 会将所有子树下的所有子目录及档案改为你所要改成的模式。 mode 可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情

可参阅 chmod(1) 的 manual page 中有关 Absolute Modes 的说明。 或是用一个字串来表示,请参考 chmod(1) 的说明。

b. 关於 Process 处理的指令: 1. ps

ps 是用来显示目前你的 process 或系统 processes 的状况。

以下列出比较常用的参数: 其选项说明如下:

-a 列出包括其他 users 的 process 状况。

-u 显示 user - oriented 的 process 状况 。

-x 显示包括没有 terminal 控制的 process 状况 。

-w 使用较宽的显示模式来显示 process 状况 。 我们可以经由 ps 取得目前 processes 的状况,如 pid , running state 等。 2. kill

kill 指令的用途是送一个 signal 给某一个 process 。因为大部份送的都是

用来杀掉 process 的 SIGKILL 或 SIGHUP ,因此称为 kill 。kill 的用法

为: kill [ -SIGNAL ] pid ...

kill -l SIGNAL 为一个 singal 的数字,从 0 到 31 ,其中 9 是 SIGKILL ,也就是一

般用来杀掉一些无法正常 terminate 的讯号。其馀讯号的用途可参考 sigvec(2)

中对 signal 的说明。 你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形

请参阅 man kill。 c. 关於字串处理的指令: 1. echo

echo 是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动作。

2. grep/fgrep

grep 为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是

自标准输入过滤出具有某个字串的行。 fgrep 可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有

属於这一群字串的行过滤出来。 grep 与 fgrep 的用法如下: grep [-nv] match_pattern file1 file2 ....

fgrep [-nv] -f pattern_file file1 file2 .... -n 把所找到的行在行前加上行号列出

-v 把不包含 match_pattern 的行列出

match_pattern 所要搜寻的字串

-f 以 pattern_file 存放所要搜寻的字串 d. 网路上查询状况的指令: 1. man

man 是手册 ( manual ) 的意思。 UNIX 提供线上辅助( on-line help )的功能,

man 就是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表

格等的使用所用的。man 的用法如下: man [-M path] [[section] title ] .....

man [-M path] -k keyword ... -M path man 所需要的 manual database 的路径。

我们也可以用设定环境变数 MANPATH 的方式来取代 -M 选项。

title 这是所要查询的目的物。

section 为一个数字表示 manual 的分类,通常 1 代表可执行指令,

2 代表系统呼叫( system call ) ,3 代表标准函数,等等。 像下面 man 查询的片段: SEE ALSO

apropos(1), cat(1V), col(1V), eqn(1), lpr(1), more(1),

nroff(1), refer(1), tbl(1), troff(1), vgrind(1), vtroff(1),

whatis(1), eqnchar(7), man(7), catman(8) 我们如要参考 eqnchar(7) 的资料,则我们就输入 man 7 eqnchar ,

便能取得我们所要的辅助讯息。

-k keyword

用来将含有这项 keyword 的 title 列出来。 man 在 UNIX 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一

个大家比较常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用

man 来得到。 2. who

who 指令是用来查询目前有那些人在线上。 3. w w 指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。 4. ku

ku 可以用来搜寻整个网路上的 user ,不像 w 跟 who 只是针对 local host 的

查询. 而且 ku 提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档

案 information-file 以条列的方式存放你的朋友的资料,再建立一个档案

hosts-file 来指定搜寻的机器名称。 ku 的指令格式可由 ku -h 得到。 E. 网路指令: UNIX 提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情,如

你可以在系上的 iris 图形工作站上做图形的处理,在系上的 Sun 上读 News ,

甚至到学校的计中去找别系的同学 talk 。这些工作可以利用 UNIX 的网路指

令,在你的位子上连到各个不同的机器上工作。如此一来,即使你在寝室,也能

轻易的连至系上或计中来工作,不用像以前的人必须泡在冷冰冰的机房面。 这些网路的指令如下所述: 1. rlogin 与 rsh

rlogin 的意义是 remote login , 也就是经由网路到另外一部机器 login 。

rlogin 的格式是: rlogin host [ -l username ] 选项 -l username 是当你在远方的机器上的 username 和 local host 不同的

时後,必须输入的选项,否则 rlogin 将会假设你在那边的 username 与 local

host 相同,然後在第一次 login 时必然会发生错误。 rsh 是在远方的机器上执行某些指令,而把结果传回 local host 。rsh 的格式

如下: rsh host [ -l username ] [ command ] 如同 rlogin 的参数 -l username , rsh 的 -l username 也是指定 remote host

的 username 。而 command 则是要在 remote host 上执行的指令。如果没有

指定 command ,则 rsh 会去执行 rlogin ,如同直接执行 rlogin 。 不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password , 而

是如果你没有设定 trust table , 则 remote host 将不会接受你的 request 。 rsh 须要在每个可能会做为 remote host 的机器上设定一个档案,称为 .rhosts。

这个档案每一行分为两个部份,第一个是允许 login 的 hostname , 第二个部份

则是允许 login 的 username 。例如,在 ccsun7.csie.nctu.edu.tw 上头你的

username 为 ysjuang , 而你的 home 下面的 .rhost 有以下的一行: ccsun6.cc.nctu.edu.tw u8217529 则在 ccsun6.cc.nctu.edu.tw 机器上的 user u8217529 就可以用以下的方法来

执行 rsh 程式: % rsh ccsun7.csie.nctu.edu.tw -l ysjuang cat mbox 将 ysjuang 在 ccsun7.csie.nctu.edu.tw 上的 mbox 档案内容显示在 local host

ccsun6.cc.nctu.edu.tw 上。 而如果 .rhost 有这样的一行,则 ccsun6.cc.nctu.edu.tw 上的 user u8217529

将可以不用输入 password 而直接经由 rsh 或 rlogin login 到

ccsun7.csie.nctu.edu.tw 来。 注意: .rhost 是一个设定可以信任的人 login 的表格,因此如果设定不当将会让

不法之徒有可以乘机侵入系统的机会。 如果你阅读 man 5 rhosts ,将会

发现你可以在第一栏用 + 来取代任何 hostname ,第二栏用 + 来取代任何

username 。 如一般 user 喜欢偷懒利用 " + username " 来代替列一长串 hostname ,

但是这样将会使得即使有一台 PC 上跑 UNIX 的 user 有与你相同的

username , 也可以得到你的 trust 而侵入你的系统。这样容易造成系统

安全上的危险。因此本系禁止使用这样子的方式写你的 .rhost 档,如果

发现将予以停机直到你找中心的工作人员将其改正为止。 同理,如果你的

第二个栏位为 + ,如" hostname + " ,则你是允许在某一部机器上的"所有"

user 可以不用经由输入 password 来进入你的帐号,是壹种更危险的行为。

所以请自行小心。 2. telnet

telnet 是一个提供 user 经由网路连到 remote host。

telnet 的 格式如下: telnet [ hostname | ip-address ] [ port ] hostn

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有