如何在不卸载的情况下“禁用”oh-my-zsh(和 zsh)?

Cha*_*ker 29 zsh oh-my-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 上。不确定这是否重要,但我倾向于更喜欢更适用于更通用的 Unix 环境而不是我自己的答案。

str*_*gee 30

您问题的措辞含糊不清,因此我无法确定您的意思是要停止使用zsh还是要停止使用oh-my-zsh. 我将涵盖两者。

禁用 zsh

只需运行chsh并选择您之前使用的任何 shell。如果您不知道以前使用的是什么 shell,那几乎可以肯定是bash. 此命令更改与您的用户关联的“登录外壳”。从本质上讲,它会更改您的默认 shell。

您将需要打开一个新的终端窗口以使更改生效。如果这不起作用,您将需要注销并重新登录以重新初始化您的环境。

仅禁用 oh-my-zsh

  1. 检查是否~/.zshrc.pre-oh-my-zsh存在。它可能会。(此文件将在oh-my-zsh安装脚本将您以前的安装脚本移开时创建.zshrc.zshrc是 的启动文件zsh,类似于.bashrcfor bash。)
  2. 如果是,请执行mv ~/.zshrc ~/.zshrc.oh-my-zsh。这会将oh-my-zsh-created.zshrc排除在外,因此我们可以通过执行mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc.
  3. 如果它不存在,请~/.zshrc在文本编辑器中打开。找到说的那一行,source $ZSH/.oh-my-zsh然后将其注释掉或将其删除。这将禁用oh-my-zsh.

您需要重新启动 shell 才能使更改生效。


zza*_*per 14

因为它有点隐藏在 @Gilles 答案中,无需任何配置即可加载 zsh 的快速方法,例如 .zshrc .zshenv 等

zsh -f
Run Code Online (Sandbox Code Playgroud)

当您想要测试配置中的任何内容是否阻止 zsh 的某些功能运行时,这非常有用。


小智 11

chsh -s /bin/bash

要手动设置新的默认 shell,请执行 chsh -s /my/new/shell,例如 chsh -s /bin/bash。然后只需重新打开您的外壳。