【问题标题】:Switching from zsh to bash on OS X, and back again?在 OS X 上从 zsh 切换到 bash,然后再切换回来?
【发布时间】:2012-05-07 15:34:50
【问题描述】:

我正在学习使用 Rails 进行开发,并发现了 zsh 的强大功能。但是,对于我的其他一些任务,我希望使用普通的bash

虽然它们是相同的,但在某些情况下,我对bash 的布局感到满意。

如何来回切换,或打开和关闭zsh

【问题讨论】:

    标签: bash terminal zsh


    【解决方案1】:

    您可以使用 exec 将当前的 shell 替换为新的 shell:

    切换到bash

    exec bash
    

    切换到zsh

    exec zsh
    

    这不会影响新的终端窗口或任何东西,但很方便。

    【讨论】:

    • 不客气!如果您对此答案感到满意,请花点时间通过选中答案左侧的复选标记将其标记为已接受。谢谢!
    • 或者,只需调用 zsh,完成后 exit 即可返回 bash。执行它似乎是不必要和不可取的。
    • 一切都取决于您在退出时希望终端窗口执行的操作。我自己发现启动子shell 是不必要且不可取的。
    • 如何更改默认值?此外,当我在 zsh 中执行“exec bash”时,它不会获取我的 bash_profile。
    • 有时我想使用 zsh,有时它会干扰我想做的事情。来回设置默认值是个坏主意,所以这是完美的解决方案!!!赞!!
    【解决方案2】:

    您可以尝试chsh -s /bin/bashbash 设置为默认值, 或chsh -s /bin/zshzsh 设置为默认值。

    终端需要重启才能生效。

    【讨论】:

    • 不完全正确。可以简单地输入命令:“bash”或“zsh”来使用该 shell。
    【解决方案3】:

    我经常在 zsh 和 bash 之间切换。有一段时间,我曾经不得不在每次切换时获取我的 bash_profile。然后我发现你可以(通常)这样做

    exec bash --login
    

    或者只是

    exec bash -l
    

    【讨论】:

    • 谢谢菲尔,我安装了思想机器人/笔记本电脑,它弄乱了我所有的配置。您的提示有助于恢复我的 bash 环境。
    • 你写的“--login”是干什么用的?
    • Make bash act as if it had been invoked as a login shell (see INVOCATION below). Source
    【解决方案4】:

    如果只是临时切换

    您可以使用上面提到的 exec,但更多的是永久解决方案。

    您可以使用 chsh -s /bin/bash(切换到 bash)和 chsh -s /bin/zsh(切换到 zsh)

    【讨论】:

    • 我的现在是 zsh,但是当我尝试 chsh -s /bin/bash 并输入我的密码时,它显示没有进行任何更改
    【解决方案5】:

    对于 Bash,试试

    chsh -s $(which bash)
    

    对于zsh,试试

    chsh -s $(which zsh)
    

    【讨论】:

      【解决方案6】:

      zsh 有一个内置命令emulate,它可以通过设置适当的选项来模拟不同的 shell,尽管 csh 永远不会被完全模拟。

      emulate bash
      perform commands
      emulate -R zsh
      

      -R 标志将所有选项恢复为该 shell 的默认值。

      见:zsh manual

      【讨论】:

      • 不清楚它会模拟哪个版本的 bash,它会模拟 bash 4.x 吗?还是 5.x?
      【解决方案7】:

      在 Mac OS Catalina 中,默认的交互式 shell 是 zsh。 将 shell 从 bash 更改为 zsh:

      chsh -s /bin/zsh
      

      然后您需要输入您的 Mac 密码。退出终端并重新打开它。要检查它是否已成功更改为 ssh,请发出以下命令。

      echo $SHELL
      

      如果结果是/bin/zsh,你的任务就完成了。

      要将其改回 bash,请在终端上发出以下命令。

      chsh -s /bin/bash
      

      使用echo $SHELL 再次验证。那么结果应该是/bin/bash。

      【讨论】:

        【解决方案8】:

        你可以只输入bash 或者如果你总是想使用 bash:

        关于“iTerm2”

        • 转到首选项 > 配置文件 > 命令
        • 从下拉列表中选择“命令”
        • 输入bash

        通过关闭 iTerm 进行测试并再次打开它

        【讨论】:

          【解决方案9】:

          你应该可以在终端输入bash切换到bash,然后输入zsh切换到zsh。至少对我有用。

          【讨论】:

          • 这个更简单。
          • 这确实有效,但每次您输入zshbash 时,您都会进入一个子shell(当前shell 下的子进程)。您需要多次输入 exit 才能返回到最顶层的 shell。
          【解决方案10】:

          按照以下步骤操作!

             chsh -s /bin/bash
             Restart terminal 
             check which shell is in use by echo $SHELL
             source .profile 
          

          你带着 Bash 回来了!!

          【讨论】:

            【解决方案11】:

            您可以使用命令“bye”轻松切换回 bash

            【讨论】:

            • 再见将退出 zsh 但不会返回 bash
            猜你喜欢
            • 2021-06-27
            • 1970-01-01
            • 2017-02-27
            • 1970-01-01
            • 2012-11-25
            • 2012-11-02
            • 1970-01-01
            • 2014-06-08
            相关资源
            最近更新 更多