zsh環境變數失效

2021-08-09 07:40:34 字數 821 閱讀 8465

問題

shell又bash變為zsh,發現/etc/profile中設定的環境變數全部失效了

在終端source /etc/profile設定的環境變數生效,但是zsh的主題以及外掛程式消失。

在終端source ~/.zshrc後,zsh的主題和外掛程式恢復

重新啟動終端,環境變數再次失效

推測問題原因

/etc/profile的生效期是使用者登入的時候,生效物件是所有使用者的所有shell。然而最新安裝的shell(zsh)不在/etc/profile的生效物件內。所以在變更shell時環境變數失效

在終端source /etc/profile時,重新載入了/etc/profile,所以環境變數生效,但是在/etc/profile中執行了 source /etc/bash.bashrc導致zsh的樣式和主題失效(可以檢視/etc/profile的源**)

在終端source ~/.zshrc後,zsh的主題和外掛程式恢復,理所當然樣式和外掛程式恢復

由於在終端中source /etc/profile只是讓本shell程序執行,相當於只是在本shell執行了環境變數,所以重啟之後依舊失效

嘗試解決方案最終得出可能結論

更改shell為zsh後,在重啟系統登入式shell中並沒有執行/etc/profile。

至於為什麼沒有執行,我還沒有明白,請知道問題的大佬指教。

臨時解決方案

啟動zsh時,.zshrc是肯定會執行的,所以把環境變數寫到.zshrc中即可。

改用zsh後使用者環境變數失效

新手osx使用者,同事表示無力吐槽我的白板終端,給我推薦了zsh iterm的組合 當然少不了oh my zsh 終端瞬間高大上了。用起來爽太多,但是給我帶來乙個小問題,那就是我之前配置的環境變數重啟後會失效了。我是把我的環境變數寫在 bash profile裡的,按道理每次重啟系統都會自動去執行一...

mac下的zsh環境變數

當使用了zsh shell的時候,之前的 使用者環境變數就不會自動載入了 bash profile 該shell會載入 zshrc檔案,所以當需要載入原來.bash profile中的使用者環境變數,那麼就在.zshrc中加入乙個 source bash profile 如果是bourne shel...

iTerm2環境變數失效

新安裝的iterm2,然後自己 bash profile都失效了!系統啟動第一步載入 etc profile 系統啟動第二步載入 etc environment 使用者登入,僅bash模式載入 bash profile 問題就在這兒,zsh模式的shell根本不會載入 bash profile檔案中...