登入啟動shell時候呼叫的幾個配置檔案簡單總結

不淨之心發表於2013-03-27
[url]http://www.linuxdiyf.com/bbs/thread-312980-1-1.html[/url]

[color=red][b]開機啟動[/b][/color]: 在/etc/rc.d/rc.local 增加啟動程式碼.
比如:[url]http://blog.csdn.net/fjssharpsword/article/details/7436898[/url]

最近接手一臺伺服器,用root登入以後,感覺設定的bash shell環境特別不舒服,就想改改,結果一看發現,都是寫在/etc/profile檔案中的了。所以就總結了一下,啟動一個bash,主要會呼叫哪些檔案,如果要配置自己的bash環境的話,應該修改什麼檔案,不應該修改什麼檔案。
當使用者輸入帳號密碼登入一個使用者終端的時候,那麼,[color=red][b]首先,系統會讀取檔案/etc/profile[/b][/color],載入其中的配置,/etc/profile這個檔案又會呼叫幾個檔案,包括/etc/sysconfig/i18n這個檔案用來設定終端的語言資訊,/etc/inputrc這個檔案主要設定終端的輸入方式,比如Ctrl+C之類的情況,還有一個比較重要的就是/etc/profile.d/目錄下的指令碼檔案,那麼如果真的需要修改一些全域性的bash環境的話,最好是將環境寫成一個shell指令碼,放在/etc/profile.d/目錄中,那麼登入的時候,/etc/profile會自動去呼叫。
那麼,上面說到的是使用者登入的時候 ,執行的全域性檔案,那麼[color=red][b]在自己的家目錄下,還會執行個人的shell配置檔案,主要有.bash_profile,.bash_login,.profile這三個檔案[/b][/color],一般情況下,你的家目錄下應該只有.bash_profile這個檔案,因為[color=red][b]系統只執行這三個檔案中的一個[/b][/color],如果沒有找到.bash_profile,才會繼續搜尋.bash_login,沒有的話,搜尋.profile。
用vim編輯器開啟.bash_profile,可以看到,這個檔案又會呼叫~/.bashrc這個檔案,可以看到一些alias設定,所以,如果你需要設定你自己個人的一些alias和一些環境變數的時候,強烈建議寫在這個檔案中或者~/.bash_profile中。但是還是寫在~/.bashrc中比較好,為什麼呢?因為有一種情況,比如你在X window下,直接開啟一個命令列終端的話,是不用輸入帳號密碼登入的,都有印象吧,那麼在這個情況下,實際上是不會去讀取/etc/profile,~/.bash_profile這些檔案的,而是直接讀取[color=red][b]./bashrc這個檔案,所以,如果你想你的環境設定在任何時候都有效的話,建議寫入這個檔案[/b][/color]。
最後再提一點,那麼看~/.bashrc這個檔案中的內容,可以看到,這個檔案其實還會呼叫/etc/bashrc檔案的內容,用vim開啟/etc/bashrc這個檔案看看,會發現在這個檔案的最後又會呼叫/etc/profile.d/裡面的sh檔案,呵呵,很有趣吧~~~其實Linux中很多都是這樣,最後都是殊途同歸,到一個檔案中。

相關文章