在 OS X 上从 zsh 切换到 bash,然后再切换回来?

Posted

技术标签:

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

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

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

如何来回切换,或打开和关闭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

以上是关于在 OS X 上从 zsh 切换到 bash,然后再切换回来?的主要内容,如果未能解决你的问题,请参考以下文章

从 bash 接收切换到 zsh 后:“PROMPT_COMMAND=vim”附近的解析错误

用 Mac OS X 自带的 SSH 登陆 Linux 后出现中文乱码,如何解决?

linuxmac的bash和zsh如何切换

linux-ubuntu-bash切换zsh问题

在 OS X 上从 XCode 迁移到 GCC

Mac 下使用zsh及切换bash