Shell會話有兩種類型:login shell 會話和 non-login shell 會話。login shell 會話會提示用戶輸入用戶名和密碼,如虛擬控制臺會話。而在GUI中啟動的終端會話則是一個典型的 non-login shell 會話。
用戶登錄系統后,bash程序就會啟動并讀取一系列啟動文件。login shell 會讀取一個或多個啟動文件,如下表所示:
| 文件 | 說明 |
| /etc/PRofile | 適用于所有用戶的全局配置腳本 |
| ~/.bash_profile | 用戶的個人啟動文件??蓴U展或重寫全局配置腳本 |
| ~/.bash_login | 若 ~/.bash_profile 缺失,則 bash 嘗試讀取此腳本 |
| ~/.profile | 若~/.bash_profile 與~/.bash_login 均缺失,則 bash 嘗試讀取此文件。在基于 Debian 的 Linux 版本中(如 Ubuntu),這是默認值 |
non-login shell 讀取的啟動文件如下:
| 文件 | 說明 |
| /etc/bash.bashrc | 適用于所有用戶的全局配置腳本 |
| ~/.bashrc | 用戶的個人啟動文件??蓴U展或程序全局配置腳本 |
non-login shell在讀取以上啟動文件之外,還會繼承父進程的環境,父進程通常是一個login shell。
用戶可以通過修改啟動文件自定義環境變量,例如在~/.bashrc 中配置:
export java_HOME=/usr/lib/jvm/java-7-sunexport PATH=$PATH:${JAVA_HOME}/bin只有在啟動 shell 會話時才會讀取 ~/.bashrc,因此對~/.bashrc 做出的修改只有在關閉 shell 終端會話并重啟才會生效。也可以用source 命令使 bash 重新讀取~/.bashrc 文件:
source ~/.bashrc
新聞熱點
疑難解答