关於档案/目录处理的指令:
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
存放所要搜寻的字串