○ 第一节 命令格式 ○
命令 [选项] [处理对象]
例: ls -la mydir
命令一般是小写字串,注意大小写有别。
选项通常以减号(-)再加上一个或数个字元表示,用来选择一个命令的不同操作
同一行可下数个命令,命令间应以分号隔开。
命令之後加上 & 可使该命令背景执行。
一般在 shell 下执行程式,我们必须等刚下过的指令执行结束後,才能继
续下指令,这就是前景执行,如果程式执行时间太长,不想等待它,可将该
程式放至背景执行,此时就可继续做别的事了。
UNIX 命令列有不少保留字,如 "\", "&", "|", ">", "<", "(", ")", "/",
"!", "$", "*", "@#" 等,这些字元均有特殊解译,如果命名或参数要用到保留
字,请在保留字之前加上反斜线 "\",例如 \! 代表 !, \\ 代表 \ 。
线上求助指令 -- man 可在线上用来查询各种命令用法(manual page)的指令
例∶man ls 查询 ls 这个指令的用法
man man 查询 man 指令的用法
以下大部份指令仅列简要说明,详细用法可用 man 查询。为节省篇幅,举例不
多,读者需时常上机使用才能真正熟悉指令的用法。
○ 第二节 档案及目录指令 ○
和 DOS 相似,UNIX 采用阶层式目录管理结构,由根目录( / )开始一层层将子
目录建下去,各阶层目录以 / 隔开。
home directory∶使用者 login 时,工作目录的位置,是由系统管理者所设定
"~" 符号代表自己的 home directory,例如 ~/myfile 是指自己 home 目录下
myfile 这个档案;~b82000/bin/qkmj 代表 b82000 的 home 目录下, bin 目
录内 qkmj 档案。
档名有区分大小写,长度可达 256 字元 (随系统而异),且不限点号(.)的数目
隐藏档∶档名或目录名以 . 开头即为隐藏档。
. 表示目前所在目录
.. 表示上一层目录
UNIX 的万用字元有三种,@#*@# 和 @#?@# 用法和 DOS 相同,另可用 [....]
代表区间内的任一字元,如 test[0-5] 即代表 test0, test1, ...,test5
的集合。
以下是 ls -l 指令输出的例子,分别介绍各栏位的意义
total 63
drwx------ 4 b1503045 1536 Feb 13 16:37 Mail
drwx------ 2 b1503045 512 Jan 9 16:26 News
drwx------ 2 b1503045 512 Feb 7 00:46 bin
drwx------ 2 b1503045 1024 Nov 1 16:43 c
-rw------- 1 b1503045 3051 Feb 7 01:49 dial-up
-rw-r----- 1 b1503045 37106 Feb 13 02:00 wwwfaq1
drwx------ 2 b1503045 512 Aug 11 1994 doc
lrwxrwxrwx 1 b1503045 11 Sep 5 20:36 docs -> /remote/doc
drwxr-xr-x 2 b1503045 512 Feb 7 00:43 pub
↓━━┬━━↓ ━━┬━ ━┬━ ━━┬━━━ ━━┬━━
凼
档案形式∶
- 一般档案。
d 目录。
l 符号链结档,(symbolic link file)用 ln -s 命令造成的,上例中
,cd docs 和 cd /remote/doc 的效果是一样的。
c 字元式周边设备,以一个字元一个字元方式传输,如终端机。
b 区块式周边设备,能一次大量传输,如磁盘机。
s socket 档。
档案存取权限∶共九个字元,每三个分为一组,共三组 rwx 的组合。
前三个 rwx 是档案拥有人的权限,中间三个是所属群体(group)的权限,
最後三个是其他人的使用权限。rwx 代表的意义如下∶
对档案而言 对目录而言
r 可读此档 可得知目录内有哪些档案
w 可修改此档 可在此目录内建档及杀档
x 可执行此档 可进入此目录内
- 无此使用权 无此使用权
所谓的所属群体(group),在台大计中 clearcase/" target="_blank" >ccsun 工作站,同系学生定为
同一 group;在系计中 cctwin 工作站,同年级学生定为同一 group。
以上例而言,wwwfaq1 这个档案自己可以读写,同一 group 的人只能读
,其他人对此档完全没有存取权。
自己的档案,可用 chmod 指令改变其存取权,有两种使用方法,如下∶
八进位法 -- chmod <八进位数> <档案>
此方法如同在画体育选课志愿卡,共三个八进位数字,r=4,w=2,
x=1,-=0。例如 -rwxr-xr-x 为 755,rw-r----- 为 640。如上例,
若下 chmod 644 dial-up 即可将 dial-up 这个档的存取权从 600
变成 644,亦即让其他人均可读此档案。
其实最前面还有一个八进位数,但很少用到,其意义如下∶
4000 程式执行时,设定使用者识别码(SUID)位元为 on
2000 程式执行时,设定使用者所属团体识别码(SGID)位元为 on
1000 sticky bit on,程式执行後会常驻记忆体。
符号法 -- chmod <who op 存取权> [<who op 存取权> ...] <档案>
<who> u (user) 档案拥有者
g (group) 所属 group
o (other) 其他使用者
a (all) 包括 u, g, o
<op> + 加上存取权
- 除去存取权
= 重新设定存取权
<存取权> 有 r, w, x, s, t (常用前三者)
例如,chmod u-w wwwfaq1 让自己不能更改 wwwfaq1 这个档案,
chmod a+x a+r bin 允许所有人进入 bin 目录并可查看有哪些档案。
档案连结(link)次数。
档案拥有者。超级使用者(系统管理员)为 root。
档案大小,单位为 byte。
档案内容最近一次更新时间。
凼 档案名称。
指令简介
ls 列出目录内档案名称(如 DOS 的 dir/w)
ls -l 除了列出档名外,并列出档案属性及拥有者、档案大小及建立时间
等资讯
ls -a 列出所有档案,包括隐藏档
ls -R 递回地列出所有档案(子目录内所有档案亦列出)
ls -F 依档案格式分类
可执行档档名後加@#*@#,目录名称後加上@#/@#,link档档名加上@#@@#
pwd 查询目前所在之目录名称
cd 更换目前工作目录位置
若只打 cd 不加目录名,则回到自己的 home directory
回到上一层目录,必须打 cd .. ,cd 和 .. 中间要有空白
cat 查看文字档内容
more 以一页一页方式显示一个文字档
当最後一行出现 --more(16%)-- ,表示你已看了 16% 的文章。此
时可用 more 内的指令∶
space 往下卷动一页
Enter 往下卷动一行,若先键入数字再按Enter可下卷指定的行数
q 或 Q 停止输出,回到系统提示符号
h 显示可用指令及其功能
cp <原始档> <复制档> 就是 copy 啦!
mv <原始档> <目的档> 若原始档和目的档在同一目录下,可更改档名,
若加上路径名,可在目录间搬移档案
rm 删除档案,若加上 -i 会徵求确认後删除
rm -r <目录名> 删除该目录及该目录之下的所有档案
rm -rf 同上,但不会先徵求确认
注∶UNIX没有undelete,杀档前请确定你的大脑很清醒
mkdir 建立子目录
rmdir 删除子目录,目录内须无档案
chmod 设定档案或目录的存取权限
lpr 将档案放进 printer queue 中等候列表
lpq 显示 printer queue 的内容
lp 列印资料
lpstat 查询列印状态与印表机相关资讯
pr 文字档之格式化输出
进阶指令
grep 於档案中寻找特定字串
例∶grep fopen *.c 可印出所有 *.c 档案中,有 fopen 字串的
那一行。
tail 印出档案最後 10 行内容
tail -200 印出档案最後 200 行内容
which 查询某个执行档是放在那个路径之下
od 以八进位察看档案内容
ln 连接(link)档案
ln -s symbolic link
wc 计算档案的行数、字数及字元数
touch 更改档案修改或被存取时间
diff 档案比较
find 档案搜寻
df 显示可使用之档案储存空间及档案数目
du 计算磁盘机使用情形
umask 建档时,取消部份存取权
tee 将 stdin 输出到 stdout 并复制一份於档案中