以下只說明各指令的基本用法,若需詳細說明,請用man去讀詳細的manual。[Cygwin通常沒有安裝 man相關的文件,所以沒有man功能] 1.關於文件/目錄處理的指令: 1.1 ls 這是最基本的文件指令。ls的意義為“list”,也就是將某一個目錄下的內容顯示出來。如果你在ls指令後 沒有跟 ...
以下只說明各指令的基本用法,若需詳細說明,請用man去讀詳細的manual。[Cygwin通常沒有安裝 man相關的文件,所以沒有man功能]
1.關於文件/目錄處理的指令: 1.1 ls 這是最基本的文件指令。ls的意義為“list”,也就是將某一個目錄下的內容顯示出來。如果你在ls指令後 沒有跟任何文件,它將會顯示出目前目錄中所有文件。也可以在ls後面加上所要察看的目錄名稱或文 件的名稱,如 $ls /home/
ls有一些參數,可以給予使用者更多有關的資訊,如下: -a:(a 代表 all)在Linux中若一個目錄或文件名字的第一個字元為“.”,則使用ls將不會顯示出這個文 件的名字,我們稱此類文件為隱藏文件,如”.bashrc”文件。如果我們要察看這類文件,則必須加上參 數“-a”。 -l:(l 代表 long)這個參數代表使用ls的長格式,可以顯示更多的資訊,如文件存取權,文件擁有者 (owner),文件大小,文件最後更新日期。比如: ls -l drwxr-xr-x 4 lix staff 136 Oct 9 07:19 dir -rw-r--r-- 1 lix staff 25 Nov 8 2015 hain.h -rw-------@ 1 lix staff 1537750 Aug 27 22:49 lang.pdf -rw-r--r-- 1 lix staff 5438 Nov 4 2015 main.h -rwxr-xr-x 1 lix staff 51 Nov 8 2015 rename.sh
第一個字母如果是”d”, 則是目錄(d 代表 directory);如果是”-“,那麼就是文件。上面dir是目錄, hang.h, lang.pdf, main.h, rename.h 都是文件。請註意,這裡列印的順序是按照英文字母排列: dir, hain.h, lang.pdf, main.h, rename.sh.
如果指令改為: ls –lrt (r代表reverse,顛倒; t 代表 time, 時間) -rw-r--r-- 1 lix staff 5438 Nov 4 2015 main.h -rw-r--r-- 1 lix staff 25 Nov 8 2015 hain.h -rwxr-xr-x 1 lix staff 51 Nov 8 2015 rename.sh -rw-------@ 1 lix staff 1537750 Aug 27 22:49 lang.pdf drwxr-xr-x 4 lix staff 136 Oct 9 07:19 dir
這時候列印出來的順序就是按照建立或者修改的時間,從最老的到最新的。如上顯示,main.h是2015 年11月4日建立或者修改的,hain.h是2015年11月8日,rename.sh也是2015年11月8日(幾點幾分幾秒, 這裡沒有顯示,rename.sh應該是比hain.h新的文件)。這個例子也說明,幾個參數是可以一起使用的。
上面的列印結果顯示,文件main.h的大小是5438 byte,文件hain.h的大小是25 byte,…,文件 lang.pdf的大小是1537750 byte。這讓人讀起來很不方便,因為人們通常都是說kilobyte(KB), megabyte(MB), gigabyte(GB). 1KB = 1000byte, 1MB = 1000KB, 1GB = 1000MB. 這時候可以使用參 數”-h” (h: human,意思是人讀起來方便) ls –lrth (r代表reverse,顛倒; t 代表 time, 時間)
-rw-r--r-- 1 lix staff 5.4K Nov 4 2015 main.h -rw-r--r-- 1 lix staff 25B Nov 8 2015 hain.h -rwxr-xr-x 1 lix staff 51B Nov 8 2015 rename.sh -rw-------@ 1 lix staff 1.5MB Aug 27 22:49 lang.pdf drwxr-xr-x 4 lix staff 136B Oct 9 07:19 dir
-R: (R 代表 recursive;請註意,這裡必須是大寫,不是小寫。小寫的”-r”上面已經使用。) 使用這 個參數,會顯示當前目錄的內容,以及所有下麵的子目錄,子子目錄內容。(你如果用滑鼠在資源管 理器上點擊,你則需要點擊各個子目錄來查看裡面的內容,很不方便。)
1.2 cp cp這個指令的意義是複製(“COPY”),也就是將一個或多個文件複製成另一個文件或者是將其複製到另 一個目錄去。請註意,這是複製,既原來的文件,或者目錄,沒有任何改變,依然存在。
cp的用法如下: cp f1 f2:將文件名為f1的文件複製一份為文件名為f2的文件。請註意:如果f2已經存在,會怎樣?請 用不重要的文件嘗試。答案:原來的f2文件會被一下子衝掉,所以使用這個命令要小心。
現在,f2同樣是事先存在的,請運行這個指令: cp –i f1 f2 i: interactive 互動模式。回答”y”,意思是”yes”; 回答”n”, 意思是”no”。
cp f1 f2 f3 f3 f5 dir/.:將文件f1, f2, f3 …複製一份放到目錄dir裡面。請註意,末尾是”dir/.”。註意那 一點”.”。
cp f1 f2 f3 … dir/:作用與上面一樣。請註意末尾是”dir/”,沒有那一點。
cp –r dir1 dir2:將目錄dir1的全部內容(包括裡面的文件,子目錄,子目錄下麵的子目錄,子子目錄) 全部複製為dir2。”r” means recursive,上面已經提到。對cp而言,r可以大寫,或者小寫,功能相同。
cp –r dir1/ dir2/: same function as above.
1.3 mv mv的意義為move,有兩個功能:一是更改文件或者目錄的名字;二是轉移文件或者目錄到另外一個地 方: mv f1 f2:將文件名為f1的文件變更成文件名為f2的文件。提問:如果f2事先已經有了,會如何?請註 意使用參數”-i” (這與cp指令的是同樣的參數)。
mv f1 /dirA/dirB/.: 把文件f1移到dirB裡面(請註意那個點)。
mv dir1 dir2:將文件名為dir1的目錄變更成文件名為dir2的目錄。提問:如果dir2事先已經有了,會 如何?請註意使用參數”-i”。
mv dir1 dir2/.:這是把目錄dir1移到目錄dir2裡面(dir2必須是事先存在的)。註意與上面指令的區別。
mv f1 f2 f3 f4 dir/.:將文件f1,f2,f3…都移至目錄dir裡面。
1.4 rm rm的意義是remove,也就是用來刪除一個文件或者目錄的指令。一個被刪除的文件除非系統有備份, 通常是不能夠救回來的。所以在做rm動作的時候使用者應該要特別小心。
rm的格式如下: rm f1 f2 f3:刪除文件f1, f2, f3。
而rm的參數比較常用的有幾個: -i:(i: interactive.這在上面的cp和mv指令中已經介紹)在除去文件之前詢問是否真要除去。
rm –rf dir1/:刪除目錄dir1,無論裡面是空的,還是有文件,子目錄,子子目錄,一次全部刪除。
-r:(r: recursive,遞迴式的)。 -f: (f: force, 強制性的)。
小心不要隨便使用rm -rf,否則有一天你會“欲哭無淚” 1.5 mkdir mkdir是一個讓使用者建立一個目錄的指令。你可以在一個目錄底下使用mkdir建立一個子目錄,使用 的方法如下: mkdir dirname
再比如: mkdir -p dirnameA/dirnameB/dirnameC/ 一次性建立三層目錄,目錄裡面有子目錄,孫目錄。這是用滑鼠無法一次做到的。
1.6 cd 這是讓使用者用來轉移工作目錄用的。 cd的用法如下: cd dirname 如此你就可以將目前的目錄轉移到dirname這一個目錄去。
cd -: 回到你上一次所在的目錄。
1.7 rmdir 相對於mkdir,rmdir是用來將一個“空的”目錄殺掉的。這個目錄必須是空的,裡面沒有任何文件和子目 錄。rmdir的使用法如下: rmdir dirname1
如果一個目錄底下有其他的文件,rmdir將無法將這個目錄殺掉。參見上面使用rm ,陪上參數,刪除 目錄的指令。也就是因為這樣的原因,我從不使用rmdir,而是使用rm。
1.8 pwd pwd 會將目前目錄的路徑(path working directory)顯示出來。