2 命令存放的位置:PATH 變量

當您從 shell 上打入一個命令,它必須在運行這個命令之前在您的硬碟上找到這個程式。如果 shell 不得不搜索整個硬碟,將會非常得慢。所以,它去搜索一下包含在 PATH 環境變量中的目錄列表。這個目錄列表構成了 shell 的搜索路徑;當您鍵入一個命令時,它按順序檢查遍每個目錄來尋找您要求運行的這個程式。

如果您自己在一個非標準位置安裝了某個程式,您也許需要修改 PATH 變量。PATH 變量的值是用冒號分開的一系列目錄的列表。Debian 系統上的預設值是:

/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

這個值在 /etc/profile 中定義,並適用於所有的用戶。只要您有權力修改環境變量,您可以很方便地改變這個值。如果您鍵入 ls 這個命令,shell 首選會在 /usr/local/bin 這個目錄中搜索; ls 不在那兒,所以它將再檢查 /usr/bin 目錄;當再次沒找到時,它將檢查 /bin。在那�堨曲N發現 /bin/ls,這時它將停止搜索,並且運行 /bin/ls 這個程式。如果還有 /usr/bin/X11/ls(實際上現在沒有,但假設有),它將被忽略。

您可以用 type 命令來查看 shell 將運行哪個 ls。type ls 返回的答案將是 /bin/ls。請親自試一下。

請試著查一下 type 這個命令自己存放在哪�堙G

$ type type

type is a shell builtin 

type 實際上不是一個程式;它是 shell 提供的一個函數。然而,您可像使用一個外部程式一樣使用它。

類似這樣的命令有很多;可以通過鍵入 man builtins 來看一下關於內部命令的幫助頁。一般來說,您不需要知道一個命令是內部命令還是一個真實的程序。然而,內部命令將不會在 ps 或 top 命令的輸出中顯示出來,因為它們不是獨立的進程。它們只是 shell 的一部分。


John Goerzen / Ossama Othman / Debian 中文計劃