非常詳細的bash的prompt設定

2021-05-22 11:05:38 字數 1531 閱讀 1830

改變 $path

'$path'與'$ps1'一樣,也是環境變數。輸入

set將列出所有當前定義的環境變數。

您看到的這些環境變數在 shell 的配置檔案中定義,可能是使用者自己的配置檔案,也可能是由'root'通過'/etc'下面的系統級檔案定義的。如果您使用 x ,更多的一些變數將由 x 、您的視窗管理器或桌面環境的啟動檔案配置。

如果對這些設定不很清楚,您暫時最好不要隨便改動。了解如何改變 $path 變數很有用,因為這個變數決定了 shell 將到哪些目錄中尋找命令或程式。如果要執行的命令的目錄在 $path 中,您就不必輸入這個命令的完整路徑,直接輸入命令就可以了。一些第三方軟體沒有將可執行檔案放到 linux 的標準目錄中。因此,將這些非標準的安裝目錄新增到 $path 是一種解決的辦法。此外,您也將看到如何處理一般的環境變數。

首先,作為慣例,所有環境變數名都是大寫。由於 linux 區分大小寫,這點您要留意。當然,您可以自己定義一些變數,如'$path'、'$path',但 shell 不會理睬這些變數。

第二點是變數名有時候以'$'開頭,但有時又不是。當設定乙個變數時,您直接用名稱,而不需要加'$':

path=/usr/bin:/bin:/usr/local/bin:/usr/x11r6/bin

要獲取變數值的話,就要在變數名前加'$':

echo $path

/usr/bin:/bin:/usr/local/bin:/usr/x11r6/bin

否則的話,變數名就會被當作普通文字了:

echo path

path

處理 $path 變數要注意的第三點是:您不能只替換變數,而是要將新的字串新增到原來的值中。在大多數情況下,您不能用'path=/some /directory',因為這將刪除 $path 中其他的所有目錄,這樣您在該終端執行程式時,就不得不給出完整路徑。所以,只能作新增:

path=$path:/some/directory

這樣,path 被設成當前的值(以 $path 來表示)+新添的目錄。

到目前為止,您只為當前終端設定了新的 $path 變數。如果您開啟乙個新的終端,執行 echo $path ,將返回舊的 $path 值,而看不到您剛才新增的新目錄。因為您先前定義的是乙個區域性環境變數(僅限於當前的終端)。

要定義乙個全域性變數,使在以後開啟的終端中生效,您需要將區域性變數輸出(export),可以用'export'命令:

export path=$path:/some/directory

現在如果您開啟乙個新的終端,輸入 echo $path ,也能看到新設定的 $path 了。請注意,命令'export'只能改變當前終端及以後執行的終端裡的變數。對於已經執行的終端沒有作用。

為了將目錄永久新增到您的 $path ,只要將'export'的那行新增到您的'.bash_profile'檔案中。

請不要在'.bashrc'中設定 path ,否則會導致 path 中目錄的意外增長。您每次開啟乙個新的 shell ,'.bashrc'都會作用。所以如果在該檔案中新增目錄,您每次開啟乙個終端,目錄又會被新增。這將導致 path 變數由於目錄複製,不斷地增長。

非常詳細的 etc passwd解釋

root x 0 0 root root bin bash bin x 1 1 bin bin sbin nologin daemon x 2 2 daemon sbin sbin nologin desktop x 80 80 desktop var lib menu kde sbin nolog...

非常詳細的html form表單詳解

表單用於收集不同型別的使用者輸入資料,將使用者輸入資料提交給web伺服器,表單使用http協議提交資料 name屬性 設定表單元素的名稱,該名稱是提交資料時的引數名 value屬性 設定表單元素的值,該值是提交資料時引數名所對應的值 textarea標籤 表示表單元素的多行文字輸入框標籤 定義多行文...

bash中 2 1 的詳細解釋

1 首先,bash中0,1,2三個數字分別代表stdin fileno stdout fileno stderr fileno,即標準輸入 一般是鍵盤 標準輸出 一般是顯示屏,準確的說是使用者終端控制台 標準錯誤 出錯資訊輸出 01 2標準輸入 標準輸出 標準錯誤 2 輸入輸出可以重定向,所謂重定向...