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 … ]
如此你就可以建立一个或多个目录。
change directory
6. chdir ( cd )
这是让使用者用来转移工作目录用的。
chdir 的用法如下:
chdir dirname
如此你就可以将目前的目录转移到 dirname 这一个目录去。
或使用 “chdir …” 来转移到上一层目录。
7. rmdir
相对於 mkdir ,rmdir 是用来将一个"空的"目录杀掉的。如果一个目录下面
没有任何档案,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下:
rmdir dirname1 [ dirname2 … ]
如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用
rm 指令的 -r 选项 为Recurive。
8. pwd
pwd 会将目前目录的路径( path )显示出来,例如:/home/oracle/qf_xdGs
terminal
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 来往上卷一行,并且可以用"?"来往回搜寻你所
要找的单字。
vi/vim保存命令
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
./ 是同一级目录 …/ 是上一级的目录
各种基本命令 扩展可选后缀含义:
-l long
-a 在 UNIX 中若一个目录或档案名字的第一个字元为 “.” , 则使用 ls
将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 tcsh的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a 。
-t
-i interactive此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来 f2
的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者
的回答是y(yes)才执行复制的动作。
-r 此参数是用来做递回复制用,可将一整颗子树都复制到另一个目录中。
-f 为强迫force ,就是不管有没有同名的档案,反正我就是要
搬过去,所有其他的参数遇到 -f 均会失效。