設定檔.profile,.login,.bash_profile和.bashrc的區別

來源:互聯網
上載者:User

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(匿名命令)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.