Ssh
為本地和遠端訪問設置 .bash_profile 和 .bashrc
我注意到,當我在本地 ubuntu 機器上打開終端時,它會 source
.bashrc
,但是當我通過 ssh 連接時,它會 source.bash_profile
。.bashrc
我在原始碼中添加了一行,.bash_profile
因此在本地工作時我有兩個文件源。我希望在遠端訪問機器時有相同的行為。當然,如果我只是來源.bashrc
,.bash_profile
我將有一個無限循環。設置它的正確方法是什麼?
您可以使用命令
shopt login_shell
。如果外殼是非登錄外殼,那麼它將列印login_shell off
,如果它是登錄外殼,那麼它將列印login_shell on
。
.bash_profile
每當以互動式登錄模式啟動或通過 ssh 訪問時,它都由 bash 獲取。所以你可以把 if 條件放在.bash_profile
like :if [ "$(shopt login_shell | cut -f2)" = "on" ] then source .bashrc fi
.bashrc
每當在終端中啟動 bash 時都會獲取源,因此您可以將 if 條件放入.bashrc
if [ "$(shopt login_shell | cut -f2)" = "off" ] then source .bash_profile fi