區分二者之間的區別,首先要搞清楚login shell
和no-login shell
之間的區別。html
當你經過終端輸入用戶名和密碼,而後進入到terminal,這時候進入的shell環境就叫作是login shell,例如,經過ssh
遠程進入到主機。shell
顧名思義就是不須要輸入用戶名密碼而進入的shell環境,例如你已經登錄了你的桌面電腦,這時候在應用管理器中找到termianl
圖標,而後雙擊打開終端,也就是經過像gnome
,KDE
這種桌面環境而進入的終端,這時候你進入的shell環境就是所謂的no-login shell
環境。簡而言之,就是把你想經過login shell
運行的shell命令放入到.bash_profile
中,把想經過no-login shell
運行的shell命令放入到.bashrc
文件中。bash
有一個例外就是在Mac OS
系統中,當你每次運行termianl的時候,系統都會默認的給你運行一個login shell
環境,因此你看到在Mac OS
系統中~/
目錄下只有一個.bash_profile
文件而沒有.bashrc
文件,就是這個道理了。ssh
那麼若是我在Mac OS
系統中也想把一些shell命令放到.bashrc
文件中呢?固然不推薦這麼作,也沒什麼意義,那麼你能夠建立一個.bashrc
的文件。而後在.bash_profile
文件中寫上以下代碼:code
if [ -f ~/.bashrc ]; then source ~/.bashrc fi
在terminal讀取.bash_profile
文件後就會load.bashrc
文件中的內容。htm
原文連接terminal