1、 UNIX 常用命令简介 ( 透过 PC 登录工作站为例 ) 登录工作站 行格式 telnet hostname (在 dos 下执行) telnet ip-address Example: telnet doc telnet 140.122.77.120 注: 可利用指令 arp hostname 或 arp domain_name 查询 ip_address .登录步骤 login : _______ => 输入 username pas
2、sword : _______ => 输入密码 .登出步骤 % logout或 % exit 或 % 更改帐号密码 % passwd => 执行後将会出现下列讯息 Changing NIS password for user on ice. Old password: ______ => 输入旧密码 New password: ______ => 输入新密码(最好6-8字 英文字母与数字混合) Retype new password: ______ => 再输入一次密码 线上指令说明 执行格式 man comma
3、nd-name Example: % man ls 进入远端电脑系统 执行格式 rlogin hostname [-1 username] Example: %rlogin doc remote login 进入工作站 doc 中 %rlogin doc -l user 使用 user 帐号进入工作站 doc 中 执行格式 telnet hostname 或 telnet IP address Example: %telnet doc or %telnet 140.109.20.251 档案或目录处理 ?列出档案或目录下之档案
4、名称 执行格式 ls [-atFlgR] [name] ( name 可为档名或目录名称 ) Example : ls 列出目前目录下之档名 ls -a 列出包含以?起始的隐藏档所有档名 ls -t 依照档案最後修改时间之顺序 依序列出档名 ls -F 列出目前目录下之档名及其类型 "/" 结尾表示为目录名称 "*" 结尾表示为执行档 "@" 结尾表示为 symblic link ls -l 列出目录下所有档案之许可权 拥有者 档案大小 修改时间及名称 ls -lg 同上 并显示出档案之拥有者群组名称 l
5、s -R 显示出目录下 以及其所有子目录之档名 ( recursive listing ) 目录之缩写 ~ 使用者 login 时的 working directory ( 起始目录 ) ~username 指定某位 user 的 working directory ( 起始目录 ) . 目前的工作目录 ( current working directory ) .. 目前目录的上一层目录 ( parent of working directory) 改变工作目录位置 执行格式 cd [name] nam
6、e 可为目录名称 路径或目录缩写 Example: cd 改变目录位置 至使用者 login 时的 working directory (起始目录) cd dir1 改变目录位置 至 dir1 之目录位置下 cd ~user 改变目录位置 至使用者的 working directory (起始目录) cd .. 改变目录位置 至目前目录的上层( 即 parent of working directory) cd ../user 改变目录位置 至相对路径 user 之目录位置下 cd /../.. 改变目录位置 至
7、绝对路径( Full path ) 之目录位置下 复制档案 执行格式: cp [-r] source destination Example: cp file1 file2 将档案 file1 复制成 file2 cp file1 dir1 将档案 file1 复制到目录 dir1 下 档名仍为 file1 cp /tmp/file1 . 将目录 /tmp 下的档案 file1 复制到现行目录下 档名仍为 file1 cp /tmp/file1 file2 将目录 /tmp 下的档案 file1 复制到现行目录下 档名为 file2 cp -r dir1 dir2
8、 (recursive copy) 复制整个目录 若目录 dir2 不存在 则将目录 dir1 及其所有档案和子目录 复制 到目录 dir2 下 新目录名称为 dir1 若目录 dir2 不存在 则将 dir1 及其所有档案和子目录 复制为目录 dir2 搬移或更改档案 目录名称 执行格式 mv source destination Example: mv file1 file2 将档案 file1 更改档名为 file2 mv file1 dir1 将档案 fil
9、e1 移到目录 dir1 下 档名仍为 file1 mv dir1 dir2 若目录 dir2 不存在 则将目录 dir1 及其所有档案和子目录 移 到目录 dir2 下 新目录名称为 dir1 若目录 dir2 不存在 则将 dir1 及其所有档案和子目录 更改为目录 dir2 建立新目录 执行格式 mkdir directory-name Exmaple mkdir dir1 建立一新目录 dir1 删除目录 执行格式 rmdir directory-name 或 rm dire
10、ctory-name Example rmdir dir1 删除目录 dir1 但 dir1 下必须没有档案存在 否则无法删除 rm -r dir1 删除目录 dir1 及其下所有档案及子目录 删除档案 执行格式 rm filename (filename 可为档名 或档名缩写符号 ) Example rm file1 删除档名为 file1 之档案 rm file? 删除档名中有五个字元 前四个字元为file 之所有档案 rm f* 删除档名中 以 f 为字首之所有档案 档名
11、的缩写符号 ? 代表档案名称中之单一字元 * 代表档案名称中之一字串 列出目前所在之目录位置 执行格式 pwd 查看档案内容 执行格式 cat filename Example cat file1 以连续显示方式 查看档名 file1 之内容 执行格式 more filename 或 cat filename | more Example more file1 以分页方式 查看档名 file1 之内容 cat file1 | more 同上 查看目录所占磁碟容量 执行格式: du [-s] directory
12、Example : du dir1 显示目录 dir1 的总容量及其次目录的容量(以 k byte 为容量) du -s dir1 显示目录 dir1 的总容量 查看自己的 disk quota 使用状况 disk quota : 工作站磁碟空间的使用限额 执行格式: quota -v Example : quota -v 将会显示下列讯息 Filesystem usage quota limit timeleft files quota limit timeleft /home/ice/u01
13、 9344 8192 12288 1.9 days 160 0 0 栏位解说: usage : 目前的磁碟用量 quota : 你的磁碟使用额度 当你的 usage 超过 quota 时 虽然可以继续使用 但是 必须七天之内降到 quota 以下 否则即使用量没有超 limit(最高限额) 也无 法再写入或复制任何档案 limit : 最高使用额度 当你的 usage 达到 limit 时 无法再写入或复制任何档案 档案传输 ?拷贝档案或目录至远端工作站 执行格式 rcp [-r] sourc
14、e hostnome:destination ( source 可为档名 目录名或路径 hostnome 为工作站站名 destination 为路径名称 ) Example rcp file1 doc:/home/user 将档案 file1 拷贝到工作站 doc 路径 /home/user 之目录下 rcp -r dir1 doc:/home/user 将目录 dir1 拷贝到工作站 doc 路径/home/user 之目录下 ?自远端工作站 拷贝档案或目录 执行格式 rcp [-r] hostname:source desti
15、nation ( hostname 为工作站名 source 为路径名 destination 可为档名 目录名或路径 ) Example rcp doc:/home/user/file1 file2 将工作站 doc 中 位於 /home/user 目录下之目录 dir1 拷贝到目前工作站之目录下 目录名称仍为 dir1 rcp -r doc:/home/user/dir1 . 将工作站 iis1 中 位於 /home/user 目录下之目录 dir1 拷贝到目前工作站之目录下 目录名称仍为 dir1 ?本地工作站与远端工作站之间档案传输 ( 必须拥有远端
16、工作站之帐号及密码 才可进行传输工作 ) 执行格式 ftp hostname or ftp ip_address Example ftp doc 与远端工作站 doc 进行档案传输 Name (doc:user-name) : 输入帐号 Password (doc:user-name): 输入密码 ftp> help 列出 ftp 档案传输 可使用之任何命令 ftp> !ls 列出本地工作站 目前目录下之所有档名 ftp> !pwd 列出本地工作站 目前所在之工作目录位置 ftp> ls
17、 列出远端工作站目前目录下之所有档名 ftp> dir 列出远端工作站目前目录下之所有档名(略同於 UNIX 的 ls -l 指令) ftp> dir . |more 同上 但每页会暂停(可能不适用 Unix 以外的 ftp) ftp> pwd 列出远端工作站目前所在之目录位置 ftp> cd dir1 更改远端工作站之工作目录位置至 dir1 之下 ftp> get file1 将远端工作站之档案 file1 拷贝到本地工作站中 ftp> put file2 将本地工作站之档案 file2 拷贝到远端工作站中
18、 ftp> mget *.c 将远端工作站中 副档名为 c 之所有档案 拷贝到本地工作站中 ftp> mput *.txt 将本地工作站中 副档名为 txt 之所有档案 拷贝远端工作站中 ftp> prompt 切换交谈式指令(使用 mput/mget 时不用每个档案皆询问yes/no) ftp> quit 结束 ftp 工作 ftp> bye 结束 ftp 工作 注: 从PC与工作站间的档案传输也可透过在 PC端的 FTP指令进行档案传输 指令用法与 上所述大致相同 档案模式之设定 ?改变档案或目录之读 写
19、执行之允许权 执行格式 chmod [-R] mode name ( name 可为档名或目录名;mode可为 3 个 8 位元之数字 或利用ls -l 命令 列出 档案或目录之读 写 执行允许权之文字缩写 ) mode : rwx rwx rwx r:read w:write x:execute user group other 缩写 : (u) (g) (o) Example : %chmod 755 dir1 将目录dir1 设定成任何使用者 皆有读取及执行之权利 但只有拥有者可做修改 %
20、chmod 700 file1 将档案file1 设定只有拥有者可以读 写和执行 %chmod o+x file2 将档案file2 增加拥有者可以执行之权利 %chmod g+x file3 将档案file3 增加群组使用者可执行之权利 %chmod o-r file4 将档案file4 除去其它使用者可读取之权利 ?改变档案或目录之拥有权 执行格式 chown [-R] username name ( name 可为档名或目录名 ) Example %chown user file1 将档案 file1 之拥有权 改为使用者 u
21、ser 所有 %chown -R user dir1 将目录 dir1 及其下所有档案和子目录之拥有权 改为使用者 user 所有 检查自己所属之群组名称 执行格式 groups ?改变档案或目录之群组拥有权 执行格式 chgrp [-R] groupname name ( name 可为档名或目录名 ) Example : %chgrp vlsi file1 将档案 file1 之群组拥有权 改为 vlsi 群组 %chgrp -R image dir1 将目录dir1 及其下所有档案和子目录 改为 image 群组 ?改变档案或目录之最後修改时间 执行
22、格式 touch name ( name 可为档案或目录名称 ) 档案之连结 同一档案 可拥有一个以上之名称 可将档案做数个连结 执行格式 ln oldname newname ( Hard link ) Example ln file1 file2 将名称 file2 连结至档案 file1 执行格式 ln -s oldname newname ( Symblick link ) Example ln -s file3 file4 将名称 file4 连结至档案file3 档案之字串找寻 执行格式 grep string fi
23、le Example grep abc file1 寻找档案file1中 列出字串 abc 所在之整行文字内容 找寻档案或命令之路径 执行格式 whereis command ( 显示命令之路径 ) 执行格式 which command ( 显示命令之路径 及使用者所定义之别名 ) 执行格式 whatis command ( 显示命令功能之摘要 ) 执行格式 find search-path -name filename -print ( 搜寻指定路径下 某档案之路径 ) Example
24、 %find / -name file1 -print ( 自根目录下 寻找档名为 file1 之路径 ) 比较档案或目录之内容 执行格式 diff [-r] name1 name2 ( name1 name2 可同时为档名 或目录名称 ) Example : %diff file1 file2 比较档案 file1 与 file2 内 各行之不同处 %diff -r dir1 dir2 比较目录 dir1 与 dir2 内 各档案之不同处 档案列印输出 使用者可用 .login 档中之 setenv PRINTER
25、 来设定列印资料时的列表机名 printername :sp1 或 sp2 (1005 教室) Example %setenv PRINTER sp2 设定自 sp2 列印资料 一般档案之列印 执行格式 lpr [-Pprinter-name] filename %lpr file1 或 lpr -Psp2 file1 自 sp2 列印档案 file1 执行格式 enscript [-Pprinter-name] filename %enscript file3 或 enscript -Psp1 file3 自 sp
26、1 列印档案 file3 ?troff 档案之列印 执行格式 ptroff [-Pprinter-name] [-man][-ms] filename %ptroff -man /usr/local/man/man1/ptroff.1 以 troff 格式 自 Apple laser writer 列印 ptroff 命令之使用说明 %ptroff -Psp2 -man /usr/man/man1/lpr1 以 troff 格式 自 sp2 列印 lpr 命令之使用说明 列表机控制命令 ?检查列表机状态 及列印工作顺序编号和使用者名称 执
27、行格式 lpq [-Pprinter -name] %lpq 或 lpq -Psp1 检查 sp1 列表机之状态 ?删除列表机内之列印工作 ( 使用者仅可删除自己的列印工作 ) 执行格式 lprm [-Pprinter -name] username 或 job number %lprm user 或 lprm -Psp1 user 删除 sp1 中 使用者 user 的列印工作 此时使用者名称必须为 user %lprm -Psp2 456 删除 sp2 编号为 456 之列印工作 Job 之控制 UNIX O.S.,可於
28、 foregrourd 及 background 同时处理多个 process 一般使用者执行命令时 皆是在 foreground 交谈式地执行 process 亦可将 process 置於 background 中 以非交谈式来执行 process ?查看系统之 process 执行格式 ps [-aux] Example: %ps 或 ps -x (查看系统中 属於自己的 process ) %ps -au (查看系统中 所有使用者的 process ) %ps -aux (查看系统中 包含系统内部 及所有使用者的 process )
29、结束或终止 process 执行格式 kill [-9] PID ( PID 为利用 ps 命令所查出之 process ID ) Example: %kill 456 或 kill -9 456 终止 process ID 为 456 之 process ?在 background 执行 process 的方式 执行格式 command & (於 command 後面加入一 "&" 符号即可 ) Example: %cc file1.c & 将编译 file1.c 档案之工作 置於 background 执行 执行格式 按下
30、"Control Z" 键 暂停正在执行的 process 键入 "bg" 命令 命令 将所暂停的 process 置入 background 中继续执行 Example: %cc file2.c ^Z Stopped %bg ?查看正在 background 中执行的 process 执行格式 jobs ?结束或终止在 background 中的 process 执行格式 kill %n (n 为利用 "jobs" 命令 所查看出的 background job 编号) Example: %kill % 终止在
31、 background 中的第一个 job %kill %2 终止在 background 中的第二个 job shell varialbe ?查看 shell variable 之设定值 执行格式 set 查看所有 shell variable 之设定值 %set 执行格式 echo $variable-name 显示指定的 shell variable 之设定值 %echo $PRINTER sp1 ?设定 shell variable 执行格式 set var = value Example: %set term=vt100
32、 设定 shell variable "term" 为 VT100 终端机之型式 ?删除 shell variable 执行格式 unset var Example: %unset PRINTER 删除 shell variable "PRINTER" 之设定值 environment variable ?查看 environment variable 之设定值 执行格式 setenv 查看所有 environment variable 之设定值 Example: %setenv 执行格式 echo $NAME 显示指定的 envi
33、ronment variable "NAME" 之设定值 Example: %echo $PRINTER 显示 environment variable "PRINTER" 列表机名称之设定值 ?设定 environment variable 执行格式 setenv NAME word Example: %setenv PRINTER sp1 设定 environment variable "PRINTER" 列表机名称为 sp1 ?删除 environment variable 执行格式 unsetenv NAME Example:
34、 %unsetenv PRINTER 删除 environment variable "PRINTER" 列表机名称之设定值 alias ?查看所定义的命令之 alias 执行格式 alias 查看自己目前定义之所有命令 及所对应之 alias 名称 执行格式 alias name 查看指定之 alias 名称所定义之命令 Example: %alias dir (查看别名 dir 所定义之命令) ls -atl ?定义命令之 alias 执行格式 alias name 'command line' Exa
35、mple: % alias dir 'ls -l' 将命令 "ls - l" 定义别名为 dir ?删除所定义之 alias 执行格式 unalias name Example: %unalias dir (删除别名为 dir 之定义 ) %unalias * (删除所有别名之设定 ) history ?设定命令记录表之长度 执行格式 set history = n Example: %set history = 40 设定命令记录表之长度为 40 (可记载执行过之前面 40 个命令
36、) ?查看命令记录表之内容 执行格式 history ?使用命令记录表 执行格式 !! Example: %!! (重覆执行前一个命令) 执行格式 !n ( n 为命令记录表之命令编号 ) Example: %!5 ( 执行命令记录表中第五个命令 ) 执行格式 !string ( 重覆前面执行过以 string 为起始字元之命令 ) Example: %!cat ( 重覆前面执行过 以 cat 为起始字元之命令 ) ?显示前一个命令之内容 执行格式 !! p
37、 ?更改前一命令之内容并执行之 执行格式 ^oldstring ^newstring 将前一命令中 oldstring 的部份 改成 newstring 并执行之 Example: %find . -name file1.c -print ^file1.c^core %find . -name core -print 注 档案 core 为执行程式或命令发生错误时 系统所产生的档案 作为侦错(debug)之用 因其所占空间极大 通常将之删除 资料之压缩 为了避免不常用的档案或资料 占用太大的磁碟空间 请使用者将之压缩 欲使用压缩过 的档案或
38、资料前 将之反压缩 即可还原成原来之资料型式 凡是经过压缩处理之档案 会在档名後面附加 " .Z " 之字元 表示此为一压缩档案 ?压缩资料 执行格式 compress filename 压缩档案 执行格式 compressdir directory-name 压缩目录 ?解压缩还原资料 执行格式 uncompress filename 反压缩档案 执行格式 uncompressdir directory-name 反压缩目录 pipe-line 之使用 执行格式 command1 | command2
39、 将 command1 执行结果 送到 command2 做为 command2 的输入 Example: %ls -Rl | more 以分页方式 列出目前目录下所有档案 及子目录之名称 %cat file1 | more 以分页方式 列出档案 file1 之内容 I/O control ?标准输入之控制 执行格式 command-line < file 将 file 做为 command-line 之输入 Example: %mail -s "mail test" user@iis.sinica.edu.tw <
40、 file1 将档案 file1 当做信件之内容 Subject 名称为 mail test,送给收信人 ?标准输出之控制 执行格式 command > filename 将 command 之执行结果 送至指定的 filename 中 Example: %ls -l > list 将执行 "ls -l" 命令之结果 写入档案 list 中 执行格式 command >! filename 同上 若 filename 之档案已经存在 则强迫 overwrite Example: %ls -lg >!
41、 list 将执行 "ls - lg" 命令之结果 强迫写入档案 list 中 执行格式 command >& filename 将 command 执行时 萤幕上所产生的任何讯息 写入指定的 filename 中 Example: %cc file1.c >& error 将编译 file1.c 档案时 所产生之任何讯息 写入档案 error 中 执行格式 command >> filename 将 command 执行结果 附加(append)到指定的 filename 中 Example: %
42、ls - lag >> list 将执行 "ls - lag" 命令之结果 附加(append)到档案 list 中 执行格式 command >>& filename 将 command 执行时 萤幕上所产生的任何讯息 附加於指定的 filename中 Example: %cc file2.c >>& error 将编译 file2.c 档案时 萤幕所产生之任何讯息 附加於档案 error 中 查看系统中的使用者 执行格式 who 或 finger 执行格式 w 执行格式 finger username
43、 or finger username@domainname 改变自己的 username 进入其他使用者的帐号 拥有其使用权利 执行格式 su username Example: %su user 进入使用者 user 之帐号 passwrod: 输入使用者 user 之密码 查看 username 执行格式 who am i 查看 login 时 自己的 username 执行格式 whoami 查看目前的 username 若已执行过 "su"命令(switch user)
44、则显示出此 user 之 username 查看目前系上所有工作站的使用者: 执行格式: rusers => 结束 与某工作站上的使用者交谈: 执行格式: talk username@hostname 或 talk username@ip_address Example: 1. 可先利用 rusers 指令查看网路上的使用者 2. 假设自己的帐号是 u84987 在工作站 indian 上使用 现在想要与 doc 上的 u84123 交谈 %talk u84123@doc ==> 此时萤幕上将会出现等待画面
45、 在对方(u84123)萤幕上将会出现下列讯息 Message from Talk_Daemon@Local_host_name at xx:xx talk: connection requested by u84987@indian talk: respond with: talk u84987@indian 此时对方(u84123) 必须执行 talk u84987@indian 即可互相交谈 最後可按结束 检查远端电脑系统是否正常 执行格式 ping hostname 或 p
46、ing IP-Address Example: %ping doc 电子邮件(E-mail)的使用简介 本系之 E-mail address 为 ice.ntnu.edu.tw .将档案当做 E-mail 的内容送出 执行格式 mail -s "Subject-string" username@address < filename %mail -s "program" user < file.c 将 file.c 当做 mail 的内容 送至 user, subject name 为 program .传送 E-mail 给本系使用者 执行格式 mail username %mail user .传送 E-mail 至 外地 执行格式 mail username@receiver-address Example %mail paul@gate.sinica.edu.tw Subject : mail test 键入信文内容 : 12






