如何“禁用”oh-my-zsh(和 zsh)而不卸載它?

如何“禁用”oh-my-zsh(和 zsh)而不卸載它?

我正在嘗試新的開發環境,包括 zsh 和 oh-my-zsh。現在我已經安裝了 oh-my-zsh,它在我的終端機(iTerm2 和終端)上預設啟動,始終以 zsh 啟動,並且設定從 oh-my-zsh 開始。我想知道是否可以“禁用”或停止使用 zsh 及其與 oh-my-zsh 的設置,而無需卸載 oh-my-zsh?如果知道如何重新打開它們也很好。

目前,我的終端自動進入 zsh(我認為)並自動使用 oh-my-zsh。我希望對此有更多的控制,並且當使用 zsh 和使用 oh-my-zsh 功能時我能夠控制兩者。

我還想知道的一件事是,終端應用程式如何知道在啟動時開始運行哪個 shell。如果能夠控制的話那就太好了!

如果您盡可能多地解釋您給我的每個命令的“原因”,那將會很有用! :)


我使用的是 OS X。

答案1

你的問題的措詞不明確,所以我無法判斷你的意思是你想停止使用zsh還是你想停止使用oh-my-zsh。我將涵蓋兩者。

停用zsh

只需運行chsh並選擇您之前使用的 shell 即可。如果您不知道以前使用的是什麼 shell,那麼幾乎可以肯定bash。此命令變更與您的使用者關聯的「登入 shell」。本質上,它改變了你的預設 shell。

您需要開啟一個新的終端機視窗才能使變更生效。如果這不起作用,您將需要登出並重新登入以重新初始化您的環境。

僅禁用oh-my-zsh

  1. 檢查是否~/.zshrc.pre-oh-my-zsh存在。可能確實如此。 (當安裝腳本移走oh-my-zsh之前的文件時,就會建立此文件。是 的啟動文件,類似於的啟動文件。).zshrc.zshrczsh.bashrcbash
  2. 如果確實如此,請執行mv ~/.zshrc ~/.zshrc.oh-my-zsh.這會將oh-my-zsh創建的內容排除.zshrc在外,因此我們可以透過執行 來恢復原始內容mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
  3. 如果不存在,請~/.zshrc在文字編輯器中開啟。找到該行source $ZSH/.oh-my-zsh,然後將其註解掉或將其刪除。這將禁用 的初始化oh-my-zsh

您需要重新啟動 shell 才能使變更生效。

答案2

chsh -s /bin/bash

若要手動設定新的預設 shell,請執行 chsh -s /my/ new/shell,例如 chsh -s /bin/bash。然後重新打開你的 shell 即可。

答案3

因為它有點隱藏在 @Gilles 答案中,無需任何配置即可加載 zsh 的快速方法,例如 .zshrc .zshenv 等

zsh -f

當您想要測試配置中的任何內容是否阻止 zsh 的某些功能運行時,這非常有用。

答案4

您可以透過設定環境變數來告訴 zsh 從不同的目錄載入其每個使用者設定檔ZDOTDIR在啟動 zsh 之前。

如果您想在不載入設定檔的情況下啟動 zsh,請設定ZDOTDIR為不存在的目錄。如果您想跳過系統設定檔(除了/etc/zshenv),您可以運行zsh -f.如果您想跳過系統設定檔但運行每用戶文件,請運行zsh -d.

例如,如果您想要測試驅動程式 oh-my-zsh 而不將其設為預設值,請勿將.zshrcoh-my-zsh 中的檔案放入您的主目錄中。相反,將其放在其他地方,例如。中~/.oh-my-zsh,然後ZDOTDIR=~/.oh-my-zsh zsh當你想使用 oh-my-zsh 時運行。


終端應用程式運行環境變數指示的 shell SHELL。如果未設定此變量,它們將運行用戶資料庫 ( ) 中指示的登入 shell /etc/passwd。當您啟動終端模擬器時,您可以要求不同的應用程序,例如xterm -e fish

相關內容