linux 常用命令

LINUX常用命令(基础) 收藏LINUX常用命令(基础)

1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看ls相关的用法注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。

2. ls 查看目录或者文件的属*,列举出任一目录下面的文件eg: ls /usr/manls -la.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link)b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。

3. cp 拷贝文件eg: cp filename1 filename2 //把filename1拷贝成filename2cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c

4. rm 删除文件和目录eg: rm 1.c //将1.c这个文件删除

5. mv 移走目录或者改文件名eg: mv filename1 filename2 //将filename1 改名为filename2mv qib.tgz ../qib.tgz //移到上一级目录

6. cd 改变当前目录 pwd 查看当前所在目录完整路径eg: pwd //查看当前所在目录路径cd netseek //进入netseek这个目录cd //退出当前目录

7. cat,more命令将某个文件的内容显示出来。两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl+d 保存代码。cat 1.c 或more 1.c //都可以查看里面的内容。gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命编译出代码。

8.chmod 命令 权限修改 用法:chmod 一位8进制数 filename。eg: chmod u+x filenmame //只想给自己运行,别人只能读//u表示文件主人, g 表示文件文件所在组。 o 表示其他人 ;r 表可读,w 表可写,x 表可以运行chmod g+x filename //同组的人来执行

9. clear,date命令clear:清屏,相当与DOS下的cls;date:显示当前时间。

10. mount 加载一个硬件设备用法:mount [参数] 要加载的设备 载入点eg: mount /dev/cdromcd /mnt/cdrom //进入光盘目录

11. su 在不退出登陆的情况下,切换到另外一个人的身份用法: su -l 用户名(如果用户名缺省,则切换到root状态)eg:su -l netseek (切换到netseek这个用户,将提示输入密码)

12.whoami,whereis,which,id//whoami:确认自己身份//whereis:查询命令所在目录以及帮助文档所在目录//which:查询该命令所在目录(类似whereis)//id:打印出自己的UID以及GID。(UID:用户身份唯一标识。GID:用户组身份唯一标识。每一个用户只能有一个唯一的UID和 GID)eg: whoami //显示你自已登陆的用户名whereis bin 显示bin所在的目录,将显示为:/usr/local/binwhich bin

13. grep,findgrep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索eg: grep success *    /*查找当前目录下面所有文件里面含有success字符的文件1

4. kill 可以杀死某个正在进行或者已经是dest状态的进程eg; ps ax

15. passwd 可以设置口令

16. history 用户用过的命令eg: history //可以显示用户过去使用的命令

17. !! 执行最近一次的命令

18. mkdir命令eg: mkdir netseek //创建netseek这个目录

19. tar 解压命令eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里

20. finger 可以让使用者查询一些其他使用者的资料eg: finger //查看所用用户的使用资料finger root //查看root的资料



一、df 命令;

  1. df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;  
  2.   
  3. 举例:  
  4.   
  5. [root@localhost beinan]# df -lh  
  6.   
  7. Filesystem 容量 已用 可用 已用% 挂载点  
  8.   
  9. /dev/hda8 11G 6.0G 4.4G 58% /  
  10.   
  11. /dev/shm 236M 0 236M 0% /dev/shm  
  12.   
  13. /dev/sda1 56G 22G 35G 39% /mnt/sda1  
  14.   
  15. 我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;  



一、Linux常用命令
su 
su命令是最基本的命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换
为user2,只要用如下命令: 
$su user2 
然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以
用exit命令返回到user1。 
su命令的常见用法是变成根用户或超级用户。如果发出不带用户名的su命令 ,则系统提示
输入根口令,输入之后则可切换为根用户。 
如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。 

pwd 
pwd命令也是最常用最基本的命令之一,用于显示用户当前所在的目录。 

cd 
cd命令不仅显示当前状态,还改变当前状态,它的用发跟dos下的cd命令基本一致。 
cd ..可进入上一层目录 
cd -可进入上一个进入的目录 
cd ~可进入用户的home目录 

ls 
ls命令跟dos下的dir命令一样,用于显示当前目录的内容。 
如果想取得详细的信息,可用ls -l命令, 这样就可以显示目录内容的详细信息。 
如果目录下的文件太多,用一屏显示不了,可以用ls -l |more分屏显示 。 

find 
find命令用于查找文件。这个命令可以按文件名、建立或修改日期、所有者(通常是建立文
件的用户)、文件长度或文件类型进行搜索。 
find命令的基本结构如下: 
$find 
其中指定从哪个目录开始搜索。指定搜索条件。表示找到文件怎么处理。一般来说,要用
-print动作,显示 整个文件路径和名称。如果没有这个动作,则find命令进行所要搜索而
不显示结果,等于白费劲。 
例如,要搜索系统上所有名称为ye的文件,可用如下命令: 
$find / -name ye -print 
这样就可以显示出系统上所有名称为ye的文件。 

tar 
tar最初用于建立磁带备份系统,目前广泛用于建立文件发布档案。可用如下方法建立tar
档案: 
$tar cvf 
例如,如果要将当前目录中所有文件存档到ye.tar中,可用如下命令: 
$tar cvf ye.tar *.* 
要浏览档案内容,将c选项变成t。如果要浏览ye.tar档案中的内容,可用如下命令: 
$tar tvf ye.tar 
要取出档案内的内容,将c选项变成x。如果要将ye.tar档案中的内容取到当前目录中,可
用如下命令: 
$tar xvf ye.tar 

gzip 
gzip命令用于压缩文件。 例如,如果要将ye.txt文件压缩,可用如下命令: 
$gzip ye.txt 
这样就可以压缩文件并在文件名后面加上gz扩展名,变成文件ye.txt.gz。 
解压缩文件可用gzip -d命令实现: 
$gzip -d ye.txt.gz 
这样就可以解压缩文件并删除gz扩展名。除此之外还可以用gunzip命令来解 压缩文件,效
果跟用gzip -d命令一样。 
旧版的tar命令不压缩档案,可用gzip压缩。例如: 
$tar cvf ye.tar *.txt 
$gzip ye.tar 
则可建立压缩档案ye.tar.gz。 
新版的tar可以直接访问和建立gzip压缩的tar档案,只要在tar命令中加上z 选项就可以了
。例如: 
$tar czvf ye.tar *.txt 
生成压缩档案ye.tar.gz, 
$tar tzvf ye.tar *.txt 
显示压缩档案ye.tar.gz的内容,而 
$tar xzvf ye.tar *.txt 
取出压缩档案ye.tar.gz的内容。 

mkdir 
这个命令很简单,跟dos的md命令用法几乎一样,用于建立目录。 

cp 
cp命令用于复制文件或目录。 
cp命令可以一次复制多个文件,例如: 
$cp *.txt *.doc *.bak /home 
将当前目录中扩展名为txt、doc和bak的文件全部复制到/home目录中。 
如果要复制整个目录及其所有子目录,可以用cp -R命令。 

rm 
rm命令用于删除文件或目录。 
rm命令会强制删除文件,如果想要在删除时提示确认,可用rm -i命令。 
如果要删除目录,可用rm -r命令。rm -r命令在删除目录时,每删除一个文件或目录都会
显示提示,如果目录太大,响应每个提示是不现实的。这时可以用 rm -rf命令来强制删除
目录,这样即使用了-i标志也当无效处理。 

mv 
mv命令用于移动文件和更名文件。例如: 
$mv ye.txt /home 
将当前目录下的ye.txt文件移动到/home目录下, 
$mv ye.txt ye1.txt 
将ye.txt文件改名为ye1.txt。 
类似于跟cp命令,mv命令也可以一次移动多个文件,在此不再赘叙。 

reboot 
重启命令,不必多说。 

halt 
关机命令,不必多说。 


二、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

  1. ps 是用来显示目前你的 process 或系统 processes 的状况。   
  2. 以下列出比较常用的参数:   
  3.   
  4. 其选项说明如下:   
  5. -a 列出包括其他 users 的 process 状况。   
  6. -u 显示 user - oriented 的 process 状况 。   
  7. -x 显示包括没有 terminal 控制的 process 状况 。   
  8. -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( 

我们如要参考 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 uname ] 

选项 -l uname 是当你在远方的机器上的 uname 和 local host 不同的 
时後,必须输入的选项,否则 rlogin 将会假设你在那边的 uname 与 local 
host 相同,然後在第一次 login 时必然会发生错误。 

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

rsh host [ -l uname ] [ command ] 

如同 rlogin 的参数 -l uname , rsh 的 -l uname 也是指定 remote host 
的 uname 。而 command 则是要在 remote host 上执行的指令。如果没有 
指定 command ,则 rsh 会去执行 rlogin ,如同直接执行 rlogin 。 

不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password , 而 
是如果你没有设定 trust table , 则 remote host 将不会接受你的 request 。 

rsh 须要在每个可能会做为 remote host 的机器上设定一个档案,称为 .rhosts。 
这个档案每一行分为两个部份,第一个是允许 login 的 hostname , 第二个部份 
则是允许 login 的 uname 。例如,在 ccsun7.csie.nctu.edu.tw 上头你的 
uname 为 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 ,第二栏用 + 来取代任何 
uname 。 

如一般 user 喜欢偷懒利用 " + uname " 来代替列一长串 hostname , 
但是这样将会使得即使有一台 PC 上跑 UNIX 的 user 有与你相同的 
uname , 也可以得到你的 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 连接上了,它将会询问你 uname 
与密码,如果输入对了就可以开始进行档案传输。 

在 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 ,一般的"外来客"可以利用这个 uname 取 
得该 server 的公共资料。不过 anonymous 在询问 password 时是要求使用 
anonymous 的使用者输入其 email address,以往有许多台湾的使用者在使用 
国外的 ftp server 时并没有按照人家的要求输入其 email address,而仅是 
随便打一些字串,引起许多 internet user 和管理者的不满,对台湾的使用 
者的风评变得很差,因此遵循各 ftp server 的使用规则也是一件相当重要的事。 

f. 关於通讯用的指令: 

1. write 
这个指令是提供使用者传送讯息给另一个使用者,使用方式: 
write uname [tty] 

2. talk/ytalk/cytalk/ctalk 
UNIX 专用的交谈程式。会将萤幕分隔开为你的区域和交谈对象的区域, 
同时也可和不同机器的使用者交谈。使用方式: 

talk uname[@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 | uname ] 

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

i. 更改个人使用资料: 

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

passwd [ uname ] 

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

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



=================================================================== 

1、grep、fgrep和egrep命令 

  这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的
字 
符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。
gr 
ep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和
 
可 
选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。 

  这组命令在搜索与定位文件中特定的主题方面非常有用。要搜索的模式可以被认为是
一 
些关键词,您可以用它们来搜索文件中包含的这些关键词。编写程序时,可以用它来寻找
某 
一个函数,或是相关的词组。grep命令的搜索功能比fgrep强大,因为grep命令的搜索模式
 
可 
以是正则表达式,而fgrep却不能。有关正则表达式请参见shell一章。 

  该组命令中的每一个命令都有一组选项,利用这些选项可以改变其输出方式。例如,
可 
以在搜索到的文本行上加入行号,或者只输出文本行的行号,或者输出所有与搜索模式不
匹 
配的文本行,或只简单地输出已搜索到指定模式的文件名,并且可以指定在查找模式时忽
略 
大小写。 

  这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件,则从标准输
入 
中读取。正常情况下,每个匹配的行被显示到标准输出。如果要查找的文件是多个,则在
每 
一行输出之前加上文件名。 

  语法: 

  grep [选项] [查找模式] [文件名1,文件名2,……] 

  egrep [选项] [查找模式] [文件名1,文件名2,……] 

  fgrep [选项] [查找模式] [文件名1,文件名2,……] 

  这组命令各选项的含义为: 

  - E 每个模式作为一个扩展的正则表达式对待。 

  - F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。 

  - b在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。 

  - c 只显示匹配行的数量。 

  - i 比较时不区分大小写。 

  - h 在查找多个文件时,指示grep不要将文件名加入到输出之前。 

  - l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配
串 
时,不重复显示此文件名。 

  - n 在输出前加上匹配串所在行的行号(文件首行行号为1)。 

  - v 只显示不包含匹配串的行。 

  - x 只显示整行严格匹配的行。 

  - e expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选
项 
。 

  - f expfile 从expfile文件中获取要搜索的模式,一个模式占一行。 

  对该组命令的使用还需注意以下方面: 

  在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以使用特
殊 
字符,如“*”等,用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可
 
以 
用单引号把要搜索的模式括起来,用来表明搜索的模式是由包含空格的字符串组成。否则
, 
Shell将把空格认为是命令行参数的定界符,而grep命令将把搜索模式中的单词解释为文件
 
名 
列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。
 

  $ grep ’text file’ example 

   用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的例子
 
中 
,特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。该命令将
 
搜 
索出当前目录下所有文件中与模式匹配的行。 

  $ grep data * 

   特殊字符在搜索一组指定的文件时非常有用。例如,如果想搜索所有的C程序源文件
 
中 
特定的模式,您可以用“*.c”来指定文件名列表。假设用户的 C程序中包含一些不必要的
 
转 
向语句(goto语句),想要找到这些语句,可以用如下的命令来搜索并显示所有包含goto
语 
句的代码行: 

  $ grep goto *.c 

  用户可以在命令行上键入搜索模式,也可以使用-f选项从指定文件中读取要搜索的模
式 
。在文件中,每个搜索模式占一行。如果经常要搜索一组常见字符串时,这个功能非常有
用 
。在下面的例子中,用户要在文件exam中搜索字符串“editor”和“create”,就把要搜
索 
的模式放置在文件mypats中,然后,grep命令从文件mypats中读取要搜索的模式。 

  $ cat mypats 

  editor 

  create 

  $ grep -f mypats exam 

  文件查找命令 

2、find命令 

  功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件
, 
功能很强大。 

  语法:find 起始目录 寻找条件 操作 

  说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条
件 
的文件并对之采取相关的操作。 

  该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑
运 
算符and、or、not的含义为: 

  (1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的
条 
件都满足时,寻找条件才算满足。例如: 

  $ find –name ’tmp’ –xtype c -user ’inin’ 

  该命令寻找三个给定条件都满足的所有文件。 

  (2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满
 
足 
时,寻找条件就算满足。例如: 

  $ find –name ’tmp’ –o –name ’mina*’ 
  
  该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。 

  (3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文
件 
。例如: 

  $ find ! –name ’tmp’ 

  该命令查询文件名不是’tmp’的所有文件。 

  需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免
Sh 
ell本身对括号引起误解,在话号前需要加转义字符“”来去除括号的意义。 

  例:$ find (–name ’tmp’ –xtype c -user ’inin’ ) 

  寻找条件有以下选项: 

  首先,下列各个选项中的n值可以有三种输入方式,假设n为20,则: 

  +20 表示20以后(21,22,23等) 

  -20 表示20以前(19,18,17等) 

  20 表示正好是20 

  1. 以名称和文件属性查找。 

  - name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[
] 
。 

  - lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符

、?、[]。 

  -gid n 查找属于ID号为n的用户组的所有文件。 

  -uid n 查找属于ID号为n的用户的所有文件。 

  -group ’字串’ 查找属于用户组名为所给字串的所有的文件。 

  -user ’字串’ 查找属于用户名为所给字串的所有的文件。 

  -empty 查找大小为0的目录或文件。 

  -path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]
 
。 


  -perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。 

  -size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表
51 
2字节的块。 

  -type x 查找类型为x的文件,x为下列字符之一: 

  b 块设备文件 

  c 字符设备文件 

  d 目录文件 

  p 命名管道(FIFO) 

  f 普通文件 

  l 符号链接文件(symbolic links) 

  s socket文件 

  -xtype x 与-type基本相同,但只查找符号链接文件。 

  2. 以时间为条件查找 

  - amin n 查找n分钟以前被访问过的所有文件。 

  - atime n 查找n天以前被访问过的所有文件。 

  - cmin n 查找n分钟以前文件状态被修改过的所有文件。 

  - ctime n 查找n天以前文件状态被修改过的所有文件。 

  - mmin n 查找n分钟以前文件内容被修改过的所有文件。 

  - mtime n 查找n天以前文件内容被修改过的所有文件。 

  3. 可执行的操作 

  - exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需
 
要 
执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ ;”结束。 


  - ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它
会 
询问用户是否需要执行该命令。 

  - ls 详细列出所找到的所有文件。 

  - fprintf 文件名 将找到的文件名写入指定文件。 

  - print 在标准输出设备上显示查找出的文件名。 

  - printf 格式 格式的写法请参考有关C语言的书。 

  例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。 

  $ find . - name ‘main*’ - exec more {} ; 

  例2:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。 

  $ find . (- name a.out - o - name ‘*.o’) 

  > - atime +7 - exec rm {} ; 

  说明如下: 

  命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满
 
足 
后面指定条件的文件。(和)表示括号(),其中的“”称为转义符。之所以这样写是由
于 
对Shell而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。“- name a.
ou 
t”是指要查找名为a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o结尾的文
 
件 
。这两个- name之间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件
 
, 
find在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否
在 
7天以前(条件-atime +7),若是,则对该文件执行命令rm(- exec rm{ };)。其中{ 

代 
表当前查到的符合条件的文件名,;则是语法所要求的。上述命令中第一行的最后一个是
续 
行符。当命令太长而在一行写不下时,可输入一个,之后系统将显示一个>,指示用户继续
 
输 
入命令。 

3、locate命令 

  locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数
据 
库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地
 
来 
搜寻所需文件了。 

  该命令的一般形式为: 

  locate 相关字 

  例如:查找相关字issue 

  $ locate issue 

  /etc/issue 

  /etc/issue.net 

  /usr/man/man5/issue.5 

  /usr/man/man5/issue.net.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值