UNIX命令详解

来源:互联网 发布:真人rpg游戏发展数据 编辑:程序博客网 时间:2024/04/30 14:58

UNIX命令解:
以下只明各指令的基本用法, 若需详细说, 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 ]

hostname 一个像 ccsun1 或是 ccsun1.cc.nctu.edu.tw name address
ip-address
则为一个由四个小於 255 的数字成的 ip address ,如 ccsun1
ip-address 140.113.17.173 ccsun1.cc.nctu.edu.tw
ip-address
140.113.4.11 。你可以利用 telnet ccsun1 telnet 140.113.17.173

ccsun1

port 一些特殊的程式所提供外界的沟通点,如工系的 MUD server 便
提供一些 port user port MUD 程式。 telnet(1)
明。


3. ftp
ftp
的意 File Transfer Program ,是一个很常用在网路档案传输
程式。ftp 的格式如下:

ftp [ hostname | ip-address ]

其中 hostname | ip-address 的意 telnet 中的相同。

ftp 之后,如果与 remote host 接上了,它将会询问 username
与密,如果了就可以行档案传输

ftp 中有多的命令,详细的使用方式参考 ftp(1) 列出
用的 cd , lcd , mkdir , put , mput , get , mget , binary , ascii ,
prompt , help
quit 的使用方式。

ascii 传输模式设为 ascii 模式。通常用於送文字档。

binary 传输模式设为 binary 模式,通常用於行档,压缩档与影像
档等。
cd remote-directory remote host 上的工作目

lcd [ directory ] 更改 local host 的工作目

ls [ remote-directory ] [ local-file ] 列出 remote host 上的档案。

get remote-file [ local-file ] 取得方的档案。

mget remote-files 可使用通用字元一次取得多个档案。

put local-file [ remote-file] local host 的档案送到 remote host

mput local-files 可使用通用字元一次将多个档案放到 remote host 上。

help [ command ] 线助指令。

mkdir directory-name remote host 造一个目

prompt 更改交模式,若 on mput mget 时每作一个档案
输时均会询问

quit/bye ftp .

利用 ftp ,我便可以在不同的机器上将所需要的料做移,某些特
机器更存放大量的料以供各地的使用者抓取,本校著名的 ftp server
NCTUCCCA 与系上的 ftp.csie.nctu.edu.tw ftp server 均有提

供一个 user anonymous ,一般的"外来客"可以利用 username
server 的公共料。不 anonymous 询问 password 是要求使用
anonymous
的使用者入其 email address,以往有多台湾的使用者在使用
国外的 ftp server 并没有按照人家的要求入其 email address,而
随便打一些字串,引起 internet user 和管理者的不台湾的使用
者的风评变得很差,因此遵循各 ftp server 的使用规则也是一件相当重要的事。

f. 於通用的指令:

1. write
个指令是提供使用者另一个使用者,使用方式
:
write username [tty]

2. talk/ytalk/cytalk/ctalk
UNIX
用的交程式。会将幕分隔开为你的区域和交谈对象的区域,

也可和不同机器的使用者交。使用方式:

talk username[@host] [tty]

3. mesg
选择是否接受他人的 messege , messege no 他人的 messege 将无法

你,同他也无法干你的工作。使用方法:

mesg [-n|-y]

4. mail/elm
在网路上的 email 程式,可由此程式将信件 mail 他人。 使用方式:

mail [username]
mail -f mailboxfile

如有信件,直接 mail 可以取你的 mail .

elm 提供 mail 方便的介面,而且可做线上的 alias . 你可以 elm
使用上下左右选读取的信件,并可按 h 取得线上的 help 文件。

使用方式:

elm [usernmae]
elm -f mailboxfile

g. 编译( Compiler ):
Compiler
的用在於将你所撰写的程式翻成一个可行档案。在工系常

用的程式言是 C , pascal , FORTRAN 等。你可以先写好一个 C Pascal
FORTRAN 的原始程式档,再用 compiler 将其翻成可行档。你可以

个方法来制造你自己的特殊指令。

1. cc/gcc (C Compiler)
/usr/bin/cc
/usr/local/bin/gcc

: cc [ -o execfile ] source
gcc [ -o execfile ] source

execfile 是你所希望的行档的名称,如果没有加上 -o 选项编译出来的可
行档会以 a.out 档名。 source 一个以 .c 为结尾的 C 程式档。
cc(1) 明。

2. pc (Pascal Compiler)
/usr/local/bin/pc

: pc [ -o execfile ] source

execfile 是你所希望的行档的名称,如果没有加上 -o 选项编译出来的可
行档会以 a.out 档名。 source 一个以 .p 为结尾的 Pascal
式档。 /net/home5/lang/man pc(1) 明。

3. f77 (Fortran Compiler)
/net/home5/lang/f77

: f77 [ -o execfile ] source

execfile 是你所希望的行档的名称,如果没有加上 -o 选项编译出来的可
行档会以 a.out 档名。 source 一个以 .p 为结尾的 FORTRAN
式档。

h. 列印的指令:
以下印表所会用到的指令,在本系的印表机有 lp1 , lp2 ( 点矩印表机 )

lw , sp , ps , compaq (
雷射印表机 ),供使用者使用。

1. lpr
lpr
用来将一个档案印至列表机的指令。

用法:
lpr -P[ printer ] file1 file2 file3 ....


lpr -P[ printer ] < file1

例子:
lpr -Plp1 hello.c hello.lst hello.map
lpr -Plp1 < hello.c

前者以参数入所要印出的档案内容,后者列印入档案( standard input )
的内容,因已将 hello.c 向到入,故会印出 hello.c 的档案内容。

2. lpq
lpq
是用来 printer queue 上的 Jobs

用法:
lpq -P[ printer ]


3. lprm
lprm
是用来取消列印要求的指令。 通常我会印,或是送非文字档
料至 printer , 就必利用 lprm 取消列印 request ,以免造成
的浪

用法:
lprm -P[ printer ] [ Jobs id | username ]

lprm 用来清除 printer queue 中的 Jobs , 如果你使用 Job Id 参数,
它将此 Job printer queue 清除,如果你用 username参数,它将此 queue
中所有 Owner username Jobs 清除。

i. 更改个人使用:

1. passwd
passwd
是用来更改你的使用密,用法:

passwd [ username ]

在使用 passwd 候,它会先的旧密,然后询问两次要更改的密,确定
后才将你的密改掉。

2. chsh
chsh
是提供使用者更 login shell 的指令,你可由此更自己使用的 shell

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 itunes刷机失败怎么办 钻石外汇跑路怎么办 华为p9音质不好怎么办 蝰蛇音效不处理怎么办 停机错过的短信怎么办 手机卡丢了信息怎么办 手机qq消息延迟怎么办 手机无法注册qq怎么办 邮箱发ppt打不开怎么办 263邮箱网页打不开怎么办 电脑网页打不开邮箱怎么办 OPPO邮件卸载了怎么办 刘海扎起来了怎么办 车子过户行驶证怎么办 车辆过户登记证怎么办 当泥石流时应该怎么办 无法接通激活服务器怎么办 金蝶提示服务器怎么办 怎么办word发到qq邮箱 iphone邮箱账户错误怎么办 mac邮箱账户错误怎么办 速腾邮箱打不开怎么办 附近功能已屏蔽怎么办 网易支付被冻结怎么办 华为账号服务器繁忙怎么办? 电脑服务器删了怎么办 感觉自己没排卵怎么办 淘宝卖家骂人怎么办 淘宝遇到恶意买家怎么办 起诉不知道地址怎么办 不知道被告地址怎么办 被报复收到冥币怎么办 划伤伤口肿了怎么办 小孩跳舞不肯跳怎么办 买的豆沙馅太干怎么办 买的豆沙馅太甜怎么办 卷筒发型不会做怎么办 变频器stop灯亮怎么办 增压泵频繁启停怎么办 大理石地面没铺平怎么办 瓷砖拼花压平机跳匝怎么办