1./etc/profile和使用者主目錄下的設定檔
使用者登陸到shell時,shell會執行一系列初始化動作,其中就包括讀取設定檔,然後根據設定檔設定環境資訊。這樣使用者就可以很方便地在環境中加入自訂資訊,如設定環境變數。事實上,登陸shell會讀兩配置個檔案,/etc/profile檔案和使用者主目錄下的設定檔,這兩個檔案的區別是:
/etc/profile檔案:為系統的每個使用者佈建環境資訊,對所有使用者的登陸shell都有效;
使用者主目錄下的設定檔:為目前使用者設定環境資訊,僅對目前使用者的登陸shell有效;
2.使用者主目錄下有哪些設定檔
使用者主目錄下的設定檔有.profile, .login, .bash_profile, .bash_login。不同的登陸SHELL用不同的設定檔,具體為:
Bourne Shell (sh):使用.profile檔案;
Korn Shell (ksh):相容sh,也使用.profile檔案;
C Shell (csh):使用.login檔案;
Bourne Again Shell(bash):bash被設計成相容sh,ksh,並有csh的特徵, 所以會在使用者的主目錄下依次尋找.bash_profile,.bash_login,.profile檔案,並用找到的第一個作為自己的設定檔;
bash尋找這些同義檔案的好處是,如果曾經用過Bourne shell,你可以保留它,如果需要加入特定的bash命令,可以將它們放入.bash_profile中並在後面跟一條命令source .profile。登入時,所有特定的bash命令均被執行,然後bash將會調用.profile,執行其保留的命令。即使決定仍使用Bourne shell,也不必修改已存在的檔案,類似的方法也可以用於.bash_login和C shell的.login,但由於這些shell基本文法的差異性,這不是一個好主意。
需要注意的是:經過編輯的.bash_profile檔案,直到退出再次登入,該檔案被重新讀取後,.bash_profile中的內容才會生效。
2.Bash的其他幾個設定檔
Bash的設計考慮的情境比較齊全,所以除了上面的幾個設定檔外,還有如下幾個設定檔:
~/.bash_logout檔案:每次登入shell退出時檔案.bash_logout被讀取並執行,它提供了定製使用者環境的功能,如刪除帳號內的臨時檔案或記錄登入系統所花的時間;
~/.bashrc檔案:.bash_profile只被登入shell讀取並執行,如果你在命令列上鍵入bash啟動一個新的shell,這個新shell讀取的是.bashrc而不是.bash_profile,將登入shell和運行一個子shell所需的設定檔分開可以獲得非常靈的配置策略,從而滿足不同的應用情境;
/etc/bashrc檔案:和~/.bashrc的含義一樣,只不過適用於所有的使用者;
事實上,很多情況下某些設定檔是一樣的,比如.bashrc和.bash_profile,這時只需要在一個設定檔中執行另外一個設定檔就可以了,例如source .bashrc,或 ..bashrc(匿名命令)。