Shell

如何重置shell環境?

  • April 6, 2019

這個問題困擾了我一段時間,雖然我認為我已經通過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給它一個乾淨的環境。

根據您的配置,您可能需要附加-lzsh / bash以載入您.profile$HOME. 總而言之,這看起來像:

env -i HOME="$HOME" zsh -l

引用自:https://unix.stackexchange.com/questions/14885