Terminal是Mac OS X系統中的字符控制界面,能夠更靈活地控制蘋果電腦
如下看到 「>「 就是打指令的地方,prompt,指令列
>pwd
列出路徑
>ls
列出此檔案夾裏全部的東西
>l
列出使檔案夾裏全部的東西以及它的權限
>cd
不管身在何處,回到home 檔案夾
>cd snoopy
進入到叫snoopy 的檔案夾
>cd ..
回到上一層檔案夾
>mkdir kitty
製做檔案夾叫kitty- make directory
>touch girl
製做一個叫girl 的檔案
>rmdir
丟掉「檔案夾「- remove directory
>rm micky
將micky 這一個 「檔案「 丟掉
>mv kitty snoopy
若是你所在的檔案夾裏沒有叫snoopy 的檔案夾那會將kitty 改名爲snoopy
若是你所在的檔案夾裏有叫snoopy 的檔案夾那會將kitty 一到snoopy 這個檔案裏
>mv simpson ../
將simpson 這個檔案移到上一層
>cp Desktop/garfield .
將Desktop 這個檔夾裏的garfield 這個檔案拷貝到你如今所在的檔案夾
能夠將「.「改爲你想要的檔夾
>man cp
列出cp 這個指令的介紹,用法 (如今有許多GUI 的軟件,提供此服務)
>cat snoopy
顯示出snoopy 這個「檔案「的內容
>more snoopy
同樣能夠顯示出snoopy 這個檔案的內容
>less snoopy
同樣能夠顯示出snoopy 這個檔案的內容,過可使用下面這一些指令
空格鍵 : 到下一頁
b:到上一頁
q:離開
上下左右鍵的上鍵:往上一行
上下左右鍵的下鍵:往下一行
>tail /var/log/httpd/access_log
觀看記錄文件最後十行(這理是http 的access_log 這個記錄文件)
>wget www.laushu.idv.tw/hi.sit
下載網絡上www.laushu.idv.tw/hi.sit 這一個檔
>telnet 216.170.128.9
telnet 到216.170.128.9
>ssh 216.170.128.9
ssh 到216.170.128.9
>ftp 216.170.128.9
ftp 到216.170.128.9 (在ftp 的 狀態下還有不少指令能夠用,這裏不一一解釋)
>login mummy
以mummy 的身分使用Terminal
>make
編譯原始碼
>sudo make install
安裝軟件
>su
使用root (必須先在NetInfo Manager 裏設定使定密碼啓動)
>vi
>emacs
vi 及emacs 是Terminal 所附有的文字編輯器,不要覺得它跟Word 同樣,那你就錯了,這是個徹底沒有GUI 的環境,甚至連如何儲存離開等經常使用的指令,你都必須很神奇的本身知道,否則就沒輒了。
ctrl + d
告訴計算機你已經結束輸入指令
ctrl + z
中止程序的執行並回到 指令列,使用Terminal 軟件當機的時候很好用
更多指令:
1.man用來介紹系統各類命令的詳細用法。
格式:man command
command 爲系統能接受的命令。
%man man
%man pwd
2.who/w查詢目前進入系統的使用者。
%who
%whoami
%who am i
%w
3.finger查詢目前進入系統的使用者。
%finger u8442019
4.date顯示如今之年、月、日、時間及星期。
%date
Wed Oct 13 12:31:39 CST 1999
5.quota使用者可以使用之磁盤空間(Kbyte)及檔案個數查詢。
Example:
%quota -v u8442019
Filesystem usage quota limit timeleft files quota limit imeleft
/autohome/mail
3 2000 2000 1 0 0
6.du顯示每個檔案或目錄所佔的block數。
格式:du [option] [dirname]
Option: -s 僅顯示使用block 數的總和
Example:
%du
%du -s ~
7.last爲印出進出系統使用人次情形
%last |more
%last |grep reboot|more
8.chfn/passwd -r nis –g(solaris) 更改finger name。
%chfn
9.alias 將命令用一別名取代。
格式:alias alias_name command
examples:
%alias copy 'cp -i'
%copy
unalias 取消alias的設定。
格式:unalias alias_name
examples:
%unalias copy
網絡偵錯指令
1.nslookup
格式:nslookup 網站
examples:
%nslookup bbs.ccu.edu.tw
2.ping
格式:ping 網站
examples:
%ping bbs.ccu.edu.tw
3.traceroute 網站
格式:traceroute 網站
examples:
%traceroute bbs.ccu.edu.tw
檔案(目錄)的操做
1.pwd列出如今的工做目錄。
%pwd
2.ls列出目錄內的文件名稱。
格式:ls [options] [directory] [file]
options:
-a 印出所有的檔案。
-l 列出檔名外,並加上各類信息。
-F 加此參數則會在目錄文件後加上/,執行文件後加上*,連接文件後加上@,其他爲通常檔案。
-g 列出檔案的所屬羣體名稱。
-t 列出的檔名依日期排序,若沒指定則依檔名排序。
examples:
%ls
%ls –lg
%ls -lg
total 4
drwxr-xr-x 3 huang center 2048 Oct 14 10:30 bin
-rwxr-xr-x 1 huang center 233 Sep 11 09:38 letter
%
第一行total 4 表示bin,letter 所佔的內存容量(以block爲單位)
有關每一個目錄、檔案的信息,說明以下:
- rwxr-xr-x 1 huang center 233 Sep 11 09:38 letter
- ----------- --- --------- --------- ------ ---------------- ---------
1 2 3 4 5 6 7 8
(1)檔案型態
- 表通常檔案。
d 表目錄。
l 表連接檔案。
c 表字符式特殊檔案。
b 表區塊式特殊檔案。
(2)使用權:表示誰有權去讀取及使用此檔案,從左至右3字符爲一組,分紅本身、羣體及其它三部份,其中
r 表讀取。
w 表寫入。
x 表執行。
(- 表對應項目的動做不被執行。)
(3)連接次數:是指連接至該文件的數目,以目錄而言,表示在檔案系統中的目錄個數。
(4)檔案擁有者:該檔的擁有者。
(5)檔案所屬羣體:該檔的所屬羣體。
(6)字符個數:即檔案大小,以位(byte)爲單位。
(7)最後一次修改的日期與時間:爲檔案最後一次修改的日期與時間。
(8)文件名稱。
3.mkdir創建目錄。
格式:mkdir directory1 [directory2 ...]
%mkdir dir1 dir2
4.cd改變目前的工做目錄。
格式:cd [directory]
%cd dir1
5.rmdir
6.mv移動或更改文件名稱。
格式:
mv [options] oldfile newfile
mv [options] olddir newdir
options:
-i 可避免覆蓋原有的檔案。
-f 強制覆蓋原有的檔案。
examples:
%mv file1 file2
%mv -i file2 file2
%mv -f file2 file3
7.touch 開啓一個空的檔案
格式:
%touch file1 file2 ……
8.cp複製檔案。
格式:
cp [options] file1 file2
cp [options] dir1 dir2
cp [options] file directory
options:
-i 可避免覆蓋原有的檔案。
-r 拷備目錄及其下全部檔案、子目錄。
examples:
%cp file1 file2
%cp file1 dir1
%cp -r dir1 dir2
9.rm刪除檔案。
格式:rm [options] file1 file2 file3 ...
options:
-i 刪除檔案前會先詢問。
-f 強制刪除檔案。
-r 刪除目錄及其下全部檔案、子目錄。
examples:
%rm file1 file2 file3
%rm -rf dir1
*用rm 刪除的檔案將永久的被刪除,救不回來。
10.chmod更改檔案使用權。
格式:chmod mode filename ...
mode 有兩種表示法:
.絕對模式以八進制數字表示。
400 即r-- --- --- (100 000 000)僅檔案擁有者可讀取。
777 即rwx rwx rwx (111 111 111)任何人均可對該檔作 讀取、寫入、執行等動做。
700 即rwx --- --- (111 000 000)僅檔案擁有者可讀取 寫入、執行。
.符號模式 其格式以下:
[who] op permission [op permission] ...
who 能夠是:
u 檔案擁有者的存取權。
g 檔案所屬羣體的存取權。
o 其它使用者的存取權。
a 所有使用者的存取權。
*若是省略此參數,則默認值爲a。
op 能夠是
+ 開放存取權。
- 取消存取權。
= 設定存取權。
permission 能夠是
r 讀取權。
w 寫入權。
x 執行權。
examples:
%chmod o-w file 開放file寫入權給其它使用者。
%chmod 700 file 僅檔案擁有者可對file作讀取、寫入、 執行的動做。
11.cat顯示檔案內容,相似於DOS 的type。
格式:cat [options] filename
options:
-n 產生行號。
-s 檔案中連續空白行,僅輸出一行。
examples:
%cat -n file1
%cat -s file2
12.more顯示檔案內容, 每次僅顯示一個屏幕之檔案內容。
格式:more [options] filename
options:
+line number 從第n行開始顯示。
+/pattern 從含有pattern的前兩行開始顯示。
-d 設定打印行數。
在more中經常使用之指令以下:
space 鍵 往下捲動一個屏幕。
enter 鍵 往下捲動一行,鍵入數字後,再按enter可向下捲動指定之行數。
q 鍵 中止輸出。
%more -d20 more.man 一次顯示20行。
%more +50 more.man 從第50行開始顯示。
%more +/terminal more.man 從含有terminal的前兩行開始顯示。
13.grep從某一檔案中,找出符合條件的數據列。
格式:grep [option] pattern filename
Option:
-c 只顯示符合條件的列數。
-i 忽略大小寫。
-n 顯示時加行號。
-v 顯示不符合條件的列資料。
-w 將pattern視爲一個字(Word)來處理。
%ps -aux |grep elm 找出process中,含有elm字眼的process。
%grep -n meeting * 在目前目錄下,找出含有meeting字眼的檔案並列出是在該檔的第幾行。
%grep -w '952 console' joe1
grep的一些應用:
(1)%grep 'thing' file1 列出該行中含有thing字眼的料,該行可能含有thing, things or somethings只要含有thing即將其印出。
(2) %grep 's.nd' file1 「.」可代換爲任一字符,只要是以s開頭nd結尾的字,都將其印出,Ex: sand or send。
(3)%grep '[l-s]end' file1 列出以l, m, n...s字符開頭, end結束 的數據行, Ex: lend、mend、send。
(4)%grep '[Mm]end' file1 列出含Mend or mend 的列資料。
(5)%grep '^some' file1 列出以some爲行開頭的資料, Ex: someoneor somewhere。
(6)%grep '!' file1 列出含有!的資料行。
14.head從文件首開始顯示n行數據,默認值爲10行。
格式:head [-n] [file]
Example:
%head file1 顯示前10行資料。
%head -20 file1 顯示前20行資料。
15.tail從文件尾向前算起顯示n行資料。
格式:tail [-/+n] [files]
Option:
+ 從第n行開始顯示。
- 從文件尾向前算起顯示n行資料。
Example:
%tail -20 file 1
%history |tail -5
16.find 尋找檔案。
格式:find path expression
Option:
-name filename 若有filename匹配如今文件名稱則爲真。
-print 顯示文件名稱。
-type d 檔案型態d表目錄;f表通常檔案;c表字符特殊文件 案,b表區域特殊檔案。
-exec command
-size n
-user
Example:
%find ~ -name '*.c' -print 找出使用者目錄底下全部.c的檔案。
%find ~ -size 0 -exec rm {} ;將使用者目錄下全部檔案大小爲0的檔案刪除。
%find ~ -type d -print 將使用者目錄下全部目錄檔案列出。
17.wc 計算檔案的列數,字數及字符數。
格式:wc [option] [filename]
Option:
-l 只計算列數(Line)。
-w 只計算字數(Word)。
-c 只計算字符數(Character)。
Example:
%wc file1
%who |wc -l
18.dff比較兩個文本文件的差異。
格式:diff filename1 filename2
19.sort排序文本文件。
格式:sort [options] [file]
Option:
- 從標準輸入讀取。
-b 忽略前置空格。
-d 按字典順序,僅字母數字空格纔有效。
-n 以數值來作排序。
-r reverse反方向順序排序。
-o 將output存於下個自變量中指定的檔案,不然sort 會將排序結果送到屏幕顯示。
-tc 字段間以字符c來分開。
+n1[-n2] n 跳過n1個字段,至第n2的字段爲止,作排序。
Example:
%sort -b +1n file1 跳過1個字段,以第2字段爲key sort file1。
%sort -t: +2n /etc/passwd 以uid(第3字段)爲key sort /etc/passwd。
打印相關之指令
1.lpr/lp送印指令(HP9000/800 G60 用lp指令)。
格式:lpr [options] filename ....
options:
-Pprinter 指定打印機,若省略此參數,則指預設打印機lp。
目前中心的列表機有
lp 系統打印機。
sp 激光打印機。
np 激光打印機。
-m 當檔案打印完畢,會送一個訊息給使用者。
-#n 打印n份。
examples:
%lpr file
%lpr file1 file2 file3
%man lpr | lpr -m
%cat file1 file2 | lpr -#3 打印3份
2.lpq查詢printer queue ,當你的檔案送印後,可用此指令查詢是否送印成功(HP9000/800 G60用lpstat指令)。
格式:lpq [options]
options:
-Pprinter 指定打印機,若省略此參數,則指預設打印機lp。
examples:
%lpq 查詢系統打印機lp打印狀況。
%lpq -Psp 查詢激光打印機sp打印狀況
3.lprm取消已送印的檔案(HP9000/800 G60用cancel指令)。
格式:lprm [options] job#
options:
-Pprinter 打印機,若省略此參數,則爲預設打印機lp。
-username 將此user欲打印的檔案取消,若省略此參數,則指本身。
examples:
%lpq -Psp
Rank Owner Job Files Total Size
1st guo 235 file1 38 bytes
2nd guo 236 file2 38 bytes
3rd guo 237 file3 300 bytes
%lprm -Psp 236 237
4.pr調整文件打印格式,先產生在屏幕,肯定無誤後再用lpr送打印機打印。
格式:pr [option] [filename]
Option:
-ln 設定頁長。
-n 產生n欄的報表。
+n 從第n頁開始打印。
-h 下一個參數當報表表頭。
Example:
%pr -150 -h "THE OUTPUT REPORT" file1
產生頁長爲50,表頭爲"THE OUTPUT REPORT" 的報表。
過程控制
1.ps顯示目前系統process情況。
格式:ps [options]
Option:
-a 顯示所有的process。
-u 顯示process的使用者。
-l 顯示process更多的訊息。
w 能夠把指令行很長的程序顥顯示出來,因爲屏幕寬度有限,超過部份系統會自動切掉,w愈多顯示的長度就愈長。
Example:
%ps
PID TT STAT TIME COMMAND
12536 P2 S 0:00 -csh(csh)
12539 P2 TW 0:00 mail huang
12540 P2 TW 0:00 cat
12541 P2 TW 0:00 vi
12549 P2 R 0:00 ps
說明:
PID 每個process的編號。
TT 終端機編號。
STAT process目前的情況。
R running
T stopped
I idle
P page wait
S sleep
TIME 使用的CPU的時間。
%ps -auxww|more
*在IBM及HP9000/800 G60系統上要用%ps -ef。
2.指令& 將欲執行的命令(或程序),放到背景做業執行。
Example:
%cc myprog.c &
%who | sort > list &
*若是在.chrc文件內有set notify的命令,則系統會以[Done]來顯示背景做業己執行完畢。
3.jobs列出在此係統上全部的Background job。
Example:
%mail huang
Ctrl-z
%cat > file1
Ctrl-z
%vi
Ctrl-z
%jobs
[1] Stopped mail huang
[2] - Running cat > file1
[3] + Stopped vi
(1) (2) (3) (4)
(1) job number 工做代號。
(2) + 表示current job。
- 表示next current。
(3)每一個job目前執行的情況。
(4) job的做業內容。
4.fg啓動被暫停的job,並改成前景做業。
格式:fg %job_number
Example:
%fg 啓動current job,改成前景做業。
%fg %1 啓動job1,改成前景做業。
5.bg啓動被暫停的job,並改成背景做業。
格式:bg %job_number
Example:
%bg 啓動current job,改成背景做業。
%bg %1 啓動job1,改成背景做業。
6.stop 暫停一個正在執行的job。
格式:stop %job_number
Example:
%stop %2
7.kill刪除一個job。
格式:kill %job-number或kill pid
Example:
%kill %3
%kill 8122
*若是尚沒法清除此job,則可則改用以%kill -9取代kill指令。
%kill -9 8122
8.at 於特定時間執行某些指令,執行後產生的Standard Output必須本身以輸出轉向的方式處理,不然看不到結果。
格式:at [options] time [day] [script]
Option:
-m 執行完畢後會送mail給使用者。執行過程當中如有錯誤,則雖未給予此參數,亦會送mail告知使用者。
time 執行命令的時間,前2位。
day 執行命令的日期,若省略則指當天。
script 內含要執行的命令,相似PC的批次檔,若省略此參數,則可將命直接在終端機輸入,欲結束按Ctrl-d。
Example:
%at -m 1040 Aug 20
at> a.out> output
Ctrl-d
%
說明:在8月20日10點40分,去執行a.out>output的動做,執行完送一封mail給使用者。
%at -m 1050 scrfile 在10點50分時,去執行scrfile的動做,執行完送一mail給使用者。
9. atq 查詢待行之做業。
Example:
%atq
Rank Execution Date Owner Job# Queue Job Name
lst Aug 14,1992 17:00 huang 858825600.a a stdin
10. atrm job# 取消at命令。
%atrm 858825600.aexpress
tar [option] file or dir
tar -xvf zdd.tar 將zdd.tar解壓,解壓後將產生zdd文件夾,裏面包含解壓後的文件 x表示解壓,v表示輸出解壓信息,f表示操做普通文件
tar -cvf tmp.tar tmp 將文件夾tmp打包成tmp.tar
tar -rvf tmp.tar zzz 將文件zzz追加到tmp.tar中網絡
zip 壓縮
zip [options] dest_files source
zip -r9 ~/zdd /home/zdd/* 將目錄/home/zdd下的全部文件壓縮並放入當前目錄下名爲zdd。-r表示遞歸處理文件夾中的文件,9表示最大壓縮率。
unzip 解壓縮
unzip -d ~/zdd zdd.zip 將zdd.zip解壓到當前目錄下的zdd目錄中,-d表示指定解壓目錄。less