當我在.bash_rc
或.bash_profile
中進行更改後,當我啓動GNU屏幕時,它不能識別這些更改。 我可以如何讓GNU屏幕讀取.bash_profile/.bash_rc更改?
source ~/.bash_profile
,它適用於當前的屏幕窗口,我有開放的,但我必須這樣做,對於每一個畫面的窗口,我已經打開。
如何讓屏幕閱讀我在bash配置中的最新更改?
當我在.bash_rc
或.bash_profile
中進行更改後,當我啓動GNU屏幕時,它不能識別這些更改。 我可以如何讓GNU屏幕讀取.bash_profile/.bash_rc更改?
source ~/.bash_profile
,它適用於當前的屏幕窗口,我有開放的,但我必須這樣做,對於每一個畫面的窗口,我已經打開。
如何讓屏幕閱讀我在bash配置中的最新更改?
你必須在你打開的每個屏幕上這樣做,因爲它們都是不同的殼。如果每次打開新shell都需要更改,我建議將更改放在〜/ .bashrc中。
顯然,你可以一次使用this syntax命令發送到所有窗口:
C-a :
at "#" stuff "source ~/.bash_profile^M"
我能夠爲所有打開的屏幕窗口提供.bash_profile,但它不適用於我打開的任何新窗口窗口。 當我開始新的屏幕會話時,它也不會加載所有新的.bash_profile數據。 –
我不知道我爲什麼要這樣做。 .bash_profile僅在您第一次登錄時纔會生成.bashrc在每次打開shell時完成。如果您每次都需要它,我建議您將更改放入.bashrc而不是.bash_profile。 – gpojd
完美的工作!非常感謝! 我仍然會認爲把東西放入.bash_profile會在我登錄時加載,但事實並非如此。 –
如果你想屏幕總是把你的shell作爲登錄shell和源將如果讀取相同的文件剛開始一個新的外殼通常,添加以下~/.screenrc
(或者~/.byobu/.screenrc
,如在評論中指出):
shell -$SHELL
這樣,你不需要手動告訴它每次源文件ÿ ou開始一個新的屏幕。儘管如果您只是進行了更改,並希望這些更改反映在當前屏幕中,您將不得不這樣做。
此文檔(以及許多其他屏幕詳細信息)可以找到here。基本上,shell
是一個屏幕命令,告訴它在需要創建新shell時運行以下命令。 $SHELL
是通常的變量,它保存着您首選shell的路徑。 $SHELL
前面的破折號-
表示它應該作爲登錄外殼運行(這通常意味着它源自您的~/.bash_profile
等)。
但值得指出的是,屏幕默認只是從開始屏幕的shell中繼承大多數環境變量;並且登錄子shell可能會以某種意外的方式更改某些環境變量。我遇到了一種情況,我的$ PATH元素基本上是排列的。我通過超級用戶this particularly excellent answer解決了這個問題。
您可能會注意到source
命令可用。需要注意的是,這會產生一個screen
命令的文件,而不是shell命令。其他相關(屏幕)命令包括eval
和exec
。
在我的情況下,需要編輯的.screenrc位於.byobu/.screenrc中。 RHEL6 –
邁克如何將接受的答案更改爲另一個(正確的)答案? – dotz