世界無聊又沒事找事幹的小甘甘草, 想說再怎麼POST, 一定也有人
看不懂. 所以又找來相同性質但是解說更詳盡的完全容易版..........
這是我找遍世界各地所能見到最簡易的啦. 再不懂沒辦法啦.
---------------------------------------------------------------------------
---- 關於檔案/目錄處理的指令 ----------------------------------------------
---------------------------------------------------------------------------
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) 的說明。
---------------------------------------------------------------------------
-- 關於 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。
-----------------------------------------------------------------------------
--- 關於字串處理的指令 ------------------------------------------------------
-----------------------------------------------------------------------------
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 存放所要搜尋的字串
-----------------------------------------------------------------------------
--- 網路上查詢狀況的指令 ----------------------------------------------------
-----------------------------------------------------------------------------
1. man
man 是手冊 ( manual ) 的意思。 UNIX 提供線上輔助( on-line help )的功能,
man 就是用來讓使用者在使用時查詢指令、系統呼叫、標準程式庫函式、各種表
格等的使用所用的。man 的用法如下:
man [-M path] [[section] title ] .....
man [-M path] -k keyword ...
-M path man 所需要的 manual database 的路徑。
我們也可以用設定環境變數 MANPATH 的方式來取代 -M 選項。
title 這是所要查詢的目的物。
section 為一個數字表示 manual 的分類,通常 1 代表可執行指令,
2 代表系統呼叫( system call ) ,3 代表標準函數,等等。
像下面 man 查詢的片段:
SEE ALSO
apropos(1), cat(1V), col(1V), eqn(1), lpr(1), more(1),
nroff(1), refer(1), tbl(1), troff(1), vgrind(1), vtroff(1),
whatis(1), eqnchar(7), man(7), catman(8)
我們如要參考 eqnchar(7) 的資料,則我們就輸入 man 7 eqnchar ,
便能取得我們所要的輔助訊息。
-k keyword
用來將含有這項 keyword 的 title 列出來。
man 在 UNIX 上是一項非常重要的指令,我們在本講義中所述之用法均僅只是一
個大家比較常用的用法以及簡單的說明,真正詳細的用法與說明還是要請你使用
man 來得到。
2. who
who 指令是用來查詢目前有那些人在線上。
3. w
w 指令是用來查詢目前有那些人在線上,同時顯示出那些人目前的工作。
4. ku
ku 可以用來搜尋整個網路上的 user ,不像 w 跟 who 只是針對 local host 的
查詢. 而且 ku 提供讓使用者建立搜尋特定使用者名單的功能。你可以建立一個檔
案 information-file 以條列的方式存放你的朋友的資料,再建立一個檔案
hosts-file 來指定搜尋的機器名稱。 ku 的指令格式可由 ku -h 得到。
-----------------------------------------------------------------------------
---- 關於通訊用的指令 -------------------------------------------------------
-----------------------------------------------------------------------------
1. write
這個指令是提供使用者傳送訊息給另一個使用者,使用方式:
write username [tty]
2. talk/ytalk/cytalk/ctalk
UNIX 專用的交談程式。會將螢幕分隔開為你的區域和交談對象的區域,
同時也可和不同機器的使用者交談。使用方式:
talk username[@host] [tty]
3. mesg
選擇是否接受他人的 messege , 若為 messege no 則他人的 messege 將無法
傳送給你,同時他也無法干擾你的工作。使用方法:
mesg [-n|-y]
4. mail/elm
在網路上的 email 程式,可經由此程式將信件 mail 給他人。 使用方式:
mail [username]
mail -f mailboxfile
如有信件,則直接鍵入 mail 可以讀取你的 mail .
elm 提供較 mail 更為方便的介面,而且可做線上的 alias . 你可以進入 elm
使用上下左右鍵來選讀取的信件,並可按 h 取得線上的 help 文件。
使用方式:
elm [usernmae]
elm -f mailboxfile
----------------------------------------------------------------------------
---- 更改個人使用資料 ------------------------------------------------------
----------------------------------------------------------------------------
1. passwd
passwd 是用來更改你的使用密碼,用法為:
passwd [ username ]
在使用 passwd 的時候,它會先問你的舊密碼,然後詢問兩次要更改的密碼,確定
無誤後才將你的密碼改掉。
2. chsh
chsh 是提供使用者更換 login shell 的指令,你可經由此更換自己使用的 shell 。
--
┼──┼ ┼──┼
│ │ ╭───╮
│ │ ├───┤
├──┤ ╰─┬─╯ B85504047
╰──╯ ─┼─ 台大化工一A 江明洋
--
※ 發信站: 批踢踢實業坊(bbs.m8.ntu.edu.tw)
◆ From: 140.112.8.22