shell啟動時讀取的配置文件


bash shell具體可以分為3種類型,這3種類型為:

1 login shell

就是需要輸入用戶名和密碼才能登陸的shell

 

2 可交互的非login shell

就是不用登陸的,但是可以同用戶進行交互的shell,比如在父shell當中執行bash命令產生的子shell就是一個可交互的非login shell

 

3 不可交互的非login shell

這類shell通常都是系統自己使用

 

對於第三類不可交互的非login shell,如果想要讓shell啟動之前讀取相應配置文件,可以通過設置BASH_ENV環境變量來實現。當把要執行的配置文件賦給這個變量時,那么不可交互的非login shell就可以通過BASH_ENV的值來執行相關的配置文件

 

對於第一類的login shell和第二類可交互的非login shell,涉及到的配置文件分別位於/etc和$HOME目錄下,如下圖所示:

/etc目錄下面包含profile,bashrc文件和profile.d目錄(其中包含各種自頂一個的.sh文件);

$HOME目錄下包含.bash_profile|.bash_login|.profile(shell的搜索順序按照這個順序進行,找到一個就不會在找下一個。如果想知道自己的shell到底使用哪個配置文件,也可以通過man bash查看)和.bashrc。

當logins shell執行時,配置文件讀取額流程如下圖所示:

login shell首先讀取/etc/profile文件,/etc/profile會調用執行/etc/profile.d目錄下的.sh文件,然后shell讀取$HOME目錄下的.bash_profile|.bash_login|.profile,然后.bash_profile|.bash_login|.profile會調用.bashrc,.bashrc會調用/etc/bashrc,/etc/bashrc會調用執行/etc/profile.d目錄下的.sh文件

當可交互的非login shell執行時,配置文件的讀取流程如下圖所示:

可交互的非login shell首先讀取.bashrc,同上面一樣,.bashrc調用/etc/bashrc,/etc/bashrc調用執行/etc/profile.d目錄下面的.sh文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM