Shell
如何重置shell環境?
這個問題困擾了我一段時間,雖然我認為我已經通過EnvWatcher找到了答案,但不幸的是它只適用於 Bash。我使用zsh。
我想在較小程度上複製 env-watcher 所做的事情,但我需要知道是否有一個命令可以將 shell 重置為乾淨的啟動階段。
例如,我想要以下工作流程。
source some-functions alias another-thing export SVN_EDITOR=vim RESET-ZSH # none of the above are valid any more
有這樣的內在可能性,還是我在追逐蝴蝶?
你可以
exec zsh
,這會給你一個新的 zsh 並重新執行 init 函式。請注意,您需要exec zsh -l
登錄 zsh 以保持其“登錄 shell”狀態。我不知道它保存命令歷史的效果如何(它似乎對我有用,但如果你在不同的終端中使用多個 shell,你可能會在兩個 shell 的歷史之間得到“串擾”)
要撤消導出的環境變數,可以使用
env
命令env -i zsh
。env
執行作為參數給出的命令,並-i
給它一個乾淨的環境。根據您的配置,您可能需要附加
-l
到zsh
/bash
以載入您.profile
的$HOME
. 總而言之,這看起來像:env -i HOME="$HOME" zsh -l