此章節將帶您了解更重要的指令。本章節列示很多指令。除了列示個別指令、參數之外,會在適當之處,介紹典型的範例應用程式。若要深入了解各種指令,請使用 man 後加上指令名稱,取得並使用手冊頁,例如,man ls。
在 man 頁面,使用 PgUp 和 PgDn,上下移動。使用 Home 和 End,在文件的開頭和結尾之間移動。按 Q 結束此檢視模式。使用 man man,可詳細瞭解 man 指令本身的資訊。
在以下的介紹中,個別指令元素會以不同的字體表示。實際的指令以及它的必要選項,永遠會列印成指令選項。不要求一定要放在 [方括號] 中的規格或參數。
視您的需要調整設定。如果沒有名稱為 file 的檔案存在,就不需要寫入 ls file。您通常可以結合數個參數,例如使用 ls -la 而不是 ls -l -a。
下節列出最重要的檔案管理指令。其中涵蓋一般檔案管理以及檔案系統 ACL 的操作。
如果您執行 ls 而未加上任何其他參數,程式會以簡要格式,列示所在目錄的內容。
詳細清單
顯示隱藏的檔案
複製來源到目標。
在現有目標被覆寫之前,視需要等候確認
循環複製 (包括子目錄)
複製來源到目標,然後刪除原始的來源。
移動前先建立來源的備份副本
覆寫現有的 targetfile 之前,等候確認 (若有需要)
從檔案系統移除指定的檔案。除非使用選項 -r,否則 rm 無法移除目錄。
刪除任何現有的子目錄
刪除每一個檔案前,等候確認
建立從來源到目標的內部連結。通常,這種連結會直接指向同一檔案系統上的來源。不過,如果執行 ln 時使用 -s 選項,它會建立符號連結,只會指向來源所在的目錄位置,提供跨檔案系統的連結功能。
建立符號連結
切換目前的目錄。cd 未加任何參數可以切換到使用者的主目錄。
建立新目錄。
如果指定的目錄已經是空的,則會刪除該目錄。
將檔案的擁有權轉移給具有指定的使用者名稱的使用者。
變更所有子目錄中的檔案與目錄
將指定檔案的群組擁有權,移交至指定的群組。如果成員屬於目前群組和新群組,則檔案擁有者只可以變更群組擁有權。
變更存取許可權。
模式 參數具有三個部份:群組、存取,與存取類型。 group 可接受下列字元:
使用者
群組
其他
至於 access,使用 + 可授與存取權,使用 - 則可拒絕授與權限。
access type 將提供下列控制選項:
讀取
寫入
執行—執行檔案或變更至目錄
Setuid 位元—應用程式或程式可以依照檔案擁有者方式,進行啟動
做為替代方法,可以使用數字程式碼。此程式碼的四個位數組成值 4、 2 和 1 的總合—二進位遮罩的十進位結果。第一個位數會設定使用者 ID (SUID) (4),設定群組 ID (2) 以及黏貼 (1) 位元。第二個位數定義檔案擁有者的許可權。第三個位數定義群組成員的權限,最後的位數會設定所有其他使用者的許可權。讀取許可權設成 4,寫入許可權設成 2,而執行檔案許可權設成 1。檔案的擁有者一般的執行檔案許可權是 6 或 7。
此程式會使用複雜算術演算法來壓縮檔案內容。用此方法壓縮的檔案,其副檔名是 .gz,而且使用前必須解壓縮。若要壓縮多個檔案或整個目錄,請使用 tar 指令。
解壓縮包裝的 gzip 檔案,如此它們會恢復成原始大小而且可以正常處理 (和指令 gunzip 類似)。
tar 將一或多個檔案放到歸檔。壓縮是選擇性的,tar 是相當複雜的指令,有多個選項可用。最常用的選項是:
通常用來將輸出寫入檔案而不是螢幕
建立新的 tar 歸檔
新增檔案至現有的歸檔
輸出歸檔的內容
但是只有在檔案比已包含在歸檔中的檔案更新時,才新增檔案
解開歸檔的檔案 (擷取)
使用 gzip 包裝產生的歸檔
使用 bzip2 壓縮產生的歸檔
列示處理的檔案
由 tar 建立,且副檔名是 .tar 的歸檔檔案。如果 tar 封存也使用 gzip 壓縮,則副檔名是 .tgz 或 .tar.gz。如果它使用 bzip2 壓縮,則副檔名是 .tar.bz2。
這個指令只有在您已經安裝 findutils-locate 套件時才可使用。locate 指令可以尋找指定檔案的所在目錄。若有需要,請使用萬用字元來指定檔案名稱。程式執行速度非常快,因為它使用針對這個目的而建立的資料庫 (不必搜尋整個檔案系統)。然而此現象也會導致一項重大缺點:locate 無法找到資料庫最後更新之後所建立的所有檔案。資料庫可以由root 使用 updatedb 來產生。
此指令會更新 locate 所使用的資料庫。要在現有目錄包括檔案,請以 root 身份執行程式。加上 &,將它放到背景也是好的方法,如此您可以立即繼續在同一個指令行工作 (updatedb &)。這個指令通常當成每日 cron 工作 (請參閱 cron.daily) 來執行。
使用 find,搜尋指定目錄中的檔案。第一個引數會指定從什麼目錄開始搜尋。選項 -name 的後面必須有一個搜尋字串,搜尋字串也可以包含萬用字元。不同於使用資料庫進行搜尋的 locate,find 會掃描實際目錄。
使用 file 可以偵測指定檔案的內容。
可用來嘗試檢視壓縮檔案中的內容
cat 指令可在不中斷的前提下顯示檔案的內容、列印整個內容至螢幕。
在輸出的左邊界加上編號
此指令可以用來瀏覽指定檔案的內容。使用 PgUp 和 PgDn 向上或向下捲動螢幕的一半頁面,或者使用空格鍵捲動整個螢幕頁面。使用 Home 和 End 移至檔案的開頭或結尾。按 Q 結束程式。
grep 指令可以在指定檔案中搜尋特定的搜尋字串。如果找到搜尋字串,指令會顯示所找到出淚搜尋字串的一行文字以及檔案名稱。
忽略大小寫
只顯示相關檔案的名稱,不是文字行
另外顯示發現符合資料的行數
只列示沒有出淚搜尋字串的檔案
diff 指令會比較任何兩個檔案的內容。程式產生的輸出,會列示不相符的所有行。只需要傳送程式變動的地方,而不是整個原始程式碼的程式設計人員經常使用此指令。
只報告兩個檔案是否不同
產生 制式
差異,使輸出更方便閱讀
此指令可以用來裝載任何資料媒體,例如硬碟、CD-ROM 光碟機以及其他磁碟機至 Linux 檔案系統的目錄。
唯讀裝載
指定檔案系統,通常 ext2 代表 Linux 硬碟、msdos 代表 MS-DOS 媒體、vfat 代表 Windows 檔案系統、iso9660 代表 CD
至於未定義在檔案 /etc/fstab 中的硬碟,也必須指定裝置類型。在此狀況下,只有 root 可以裝載它。如果要讓其他使用者也能裝載該檔案系統,請在 /etc/fstab 的適當行,輸入選項 user (用逗點分開) 並儲存所做的變更。如需更多詳細資訊,請參閱 mount(1) man 頁面。
此指令會檔案系統中的已裝載磁碟機解除裝載。要防止資料遺失,從磁碟機取出抽取式資料媒體前,執行此指令。一般情況下,只有 root 可以執行 mount 與 umount 這兩個指令。若要讓其他使用者執行這些指令,請編輯 /etc/fstab 檔案,為相關的磁碟機指定選項 user。
下節列出一些擷取系統資訊以及控制程序和網路時最重要的指令。
df (磁碟可用空間) 指令,在未加上任何選項時,會顯示所有磁碟空間的資訊、目前使用的磁碟空間以及所有裝載磁碟機的可用空間。如果指定目錄,只會顯示該目錄所在磁碟機的資訊。
顯示佔用的區塊數目 (GB、MB 或 KB)—以人類可判讀的格式。
檔案系統的類型 (ext2、nfs 等等)
在執行時未加上任何參數,此指令會顯示目前目錄的檔案和子目錄所佔用的總磁碟空間。
顯示每一個別檔案的大小
人類可判讀之格式的輸出
只顯示計算的總共大小
指令 free 會顯示關於 RAM 以及交換空間使用的相關資訊,顯示二者類別的總計以及使用總數。如需相關資訊,請參閱節 19.1.6, free 指令。
以位元組為單位的輸出
以 KB 為單位的輸出
以 MB 為單位的輸出
此簡單程式會顯示目前的系統時間。如果以 root 的身分執行,它也可以用來變更系統時間。如需有關此程式的詳細資料,請參閱 date(1) man 頁面。
top 提供目前執行程序的快速概觀。按 H 存取頁面,簡略說明主要選項來自定程式。
如果執行時不加任何選項,此指令會顯示由您啟動的程式或程序的相關表格。此指令的選項前面不會加上連字號。
顯示所有程序的詳細清單,與擁有者無關
不幸地,有時候程式無法以正常方式終止。大部份情況下,您仍然可以指定相關的程序 ID 來執行 kill 指令,以便停止執行中的程式 (請參閱top 和 ps)。kill 會傳送 TERM 訊號,指示程式關閉自已。如果此指令沒有作用,可以使用以下參數:
傳送 KILL 訊號而非 TERM 訊號,這時多半可結束所指定的程序。
此指令類似 kill,但是使用程序名稱 (而非程序 ID) 做為引數,刪除所有該名稱的處理程序。
ping 指令是標準工具,用於測試 TCP/IP 網路的基本功能。它會傳送小的資料封包至目的地主機,要求立即回應。如果有作用,ping 會顯示訊息,指示網路連結基本上是正常的。
決定要傳送的封包總數,並在分派後結束 (依預設,沒有限制設定)
flood ping:儘可能傳送很多資料封包,一種常用方法,保留給 root 來測試網路
指定兩個資料封包之間的時間間隔 (秒) (預設值:1 秒鐘)
網域名稱系統會將網域名稱解析成 IP 位址。使用此工具,傳送查詢至名稱伺服器 (DNS 伺服器)。
Telnet 實際上是一種網際網路通訊協定,供您透過網路在遠端主機上工作。Telnet 也是使用這種通訊協定的 Linux 程式名稱,用來在遠端電腦進行作業。
警告: 不要在第三方可以監聽的網路上使用 telnet。
特別是在網際網路上,使用加密傳送的方法,例如 ssh,防止密碼被惡意使用的危險 (請參閱 ssh 的手冊頁)。
使用者可以使用此指令,在任何時候變更他們自己的密碼。管理員 root 可以使用此指令,變更系統上任何使用者的密碼。
su 指令可以從執行中的工作階段改用不同的使用者名稱登入。指定使用者名稱和相關密碼。將不會要求 root 的密碼,因為 root 己授權為可以使用任何使用者的身份。使用此指令時如果未指定使用者名稱,系統將提示您輸入 root 密碼並變更為超級使用者 (root)。
使用 su -,為不同使用者啟動登入外圍程序
若要避免遺失資料,應該永遠使用這個程式關閉系統。
功能相同於 halt,只是系統會立即重新啟動。
此指令會清除主控台的可見區域。它沒有任何選項。
本章節列示很多指令。如需關於其他指令或更詳細的資訊,建議參閱 O'Reilly 出版的《Linux in a Nutshell》。