分享知识,共同进步

unix常用命令

上一篇 / 下一篇  2009-05-15 18:00:07 / 个人分类:unix

unix常用命令

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
相对於mkdirrmdir是用来将一个"空的"目录杀掉的。如果一个目录下面

没有任何档案,你就可以用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

如果你在使用中觉得已经看到了所要看的部份,可以按´离开more的使用。

在使用中按´亦可以使用编辑器来编辑所观看的档案。


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
列出包括其他usersprocess状况。

-u
显示user - orientedprocess状况 。

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

-w
使用较宽的显示模式来显示process状况 。


我们可以经由ps取得目前processes的状况,如pid , running state等。


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

用来杀掉processSIGKILLSIGHUP,因此称为killkill的用法

:

kill [ -SIGNAL ] pid ...
kill -l

SIGNAL
为一个singal的数字,从031,其中9SIGKILL,也就是一

般用来杀掉一些无法正常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
用来将含有这项keywordtitle列出来。


man
UNIX上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一

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

man
来得到。


2. who
who
指令是用来查询目前有那些人在线上。


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


4. ku
ku
可以用来搜寻整个网路上的user,不像wwho只是针对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是当你在远方的机器上的usernamelocal host不同的

时後,必须输入的选项,否则rlogin将会假设你在那边的username
local
host
相同,然後在第一次login时必然会发生错误。


rsh
是在远方的机器上执行某些指令,而把结果传回local hostrsh的格式

如下
:

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

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

则是允许loginusername。例如,在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

ysjuangccsun7.csie.nctu.edu.tw上的mbox档案内容显示在
local host
ccsun6.cc.nctu.edu.tw
上。


而如果.rhost有这样的一行,则ccsun6.cc.nctu.edu.tw上的
user u8217529
将可以不用输入password而直接经由rshrlogin login

ccsun7.csie.nctu.edu.tw
来。


注意
:

.rhost
是一个设定可以信任的人login的表格,因此如果设定不当将会让

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

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

username


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

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

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

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

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

第二个栏位为+,如" hostname + " ,则你是允许在某一部机器上的"所有
"
user
可以不用经由输入password来进入你的帐号,是壹种更危险的行为。

所以请自行小心。


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

telnet
的 格式如下
:

telnet [ hostname | ip-address ] [ port ]

hostname
为一个像ccsun1或是ccsun1.cc.nctu.edu.twname address

ip-address
则为一个由四个小於255的数字组成的ip address,如
ccsun1
ip-address140.113.17.173ccsun1.cc.nctu.edu.tw
ip-address
140.113.4.11。你可以利用telnet ccsun1telnet 140.113.17.173

连到ccsun1


port
为一些特殊的程式所提供给外界的沟通点,如资工系的MUDserver便

提供一些portuser由这些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则在mputmget时每作一个档案之传

输时均会询问。


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/manpc(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作为参数,则

它将此Jobprinter queue清除,如果你用username作为参数,则它将此
queue
中所有Owner为此usernameJobs清除。

i.
更改个人使用资料
:
1. passwd
passwd
是用来更改你的使用密码,用法为
:
passwd [ username ]
在使用passwd的时候,它会先问你的旧密码,然後询问两次要更改的密码,确定

无误後才将你的密码改掉。

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

 

GNU
   GNU
GNU's Not Unix的缩写。
   
它的目标是在UNIX系统基础上,建立一个可自由发布和可移植的完善的Unix操作系统。因开始实施GNU项目时,当时还没有多少高质量的自由软件可供项目使用。所以,为GNU项目做出贡献的人们先从系统的应用软件和工具入手。它的系统核心是HURD,但是由于LINUX的提前出现,让许多人认为,HURD没有必要再开发下去,用LINUXGNU的核心就很理想了。

FSF
   FSF
Free Software Foundation的缩写,即自由软件基金会
   
十几年前,世界级的顶尖程序员Richard Stallman提出了一个伟大的信念:计算机系统应该对用户开放,软件应该自由使用。在他的倡导下,掀起了开发自由软件的运动热潮。1984年,Richard Stallman的努力得到了麻省理工学院的正式支持。后来他就成立了自由软件基金会这个倡导自由软件的组织。
   
该组织的主要项目是GNU,一个自由发布和可移植的类UNIX系统。

CPL
   GPL
General Public License的缩写,即通用公共许可证
   
这是为了能够规范自由软件,由自由软件基金会(FSF)提出,并制定成文的一种不同于传统的软件许可证。它的核心思想就是保证任何人可以共享和修改自由软件,有权取得、修得、修改和重新发布自由软件的源代码。这使得自由软件总的费用相当低廉,而且在使用Internet的情况下是免费的。
   
该条款还规定自由软件的衍生作品必须以GPL作为它重新发布的许可证。这一规定保证了自由软件及其衍生作品继续保持自由状态。也就是说防止了不法分子将自由软件更改后注册自己的版权。
   
而且通用公共许可证还容许销售自由软件。也就是说,自由软件本身是免费的,但销售公司可以从销售中收取一定的服务费用。这为公司介入自由软件事业敞开了大门。同时公司的介入弥补了自由软件的不足,对推动自由软件应用起了很大的作用。就象Red Hat公司在发布LINUX的过程中不断壮大,同时也大大促进了LINUX的发展。
   
正是这个条款的合理制订,使得自由软件事业得以全面发展。可以说,自由软件之所以有今天的成就,CPL功不可没。

A

帐户名称(Account Name等同于登录标识、用户标识或用户名。是指派给UNIX/Linux系统上用户的名称。可以在系统上对多个用户设置唯一的帐户名称,每个用户具有不同的访问(权限)级别。在安装完Linux之后,帐户名称由超级用户(Superuser)或root操作员指派。

AfterStep
用户界面(窗口管理器)之一,AfterStep使得Linux的外观很象NeXTSTEP,而且还有些增强功能。要获取更多关于AfterStep的信息,请访问www.afterstep.org。(另请参阅“Enlightenment”、“GNOME”、“KDE”和“X Window系统”。)

Awk
AhoWeinbergerKernighan一种编程语言,因其模式匹配语法而特别有用,通常用于数据检索和数据转换。一个GNU版本称为Gawk

APM
(高级电源管理,Advanced Power Management一种工业标准,它允许系统处理器和各个组件进入省电模式,包括挂起、睡眠和关机。APM软件对于移动设备尤为重要,因为它节省了电池电量。

附加符号(Append Symbol两个键盘字符>

TAG:

 

评分:0

我来说两句

日历

« 2024-02-10  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

  • 访问量: 13055
  • 日志数: 21
  • 文件数: 1
  • 建立时间: 2008-07-16
  • 更新时间: 2010-08-09

RSS订阅

Open Toolbar