在 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/bash
将bash
设置为默认值,
或chsh -s /bin/zsh
将zsh
设置为默认值。
终端需要重启才能生效。
【讨论】:
不完全正确。可以简单地输入命令:“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。至少对我有用。
【讨论】:
这个更简单。 这确实有效,但每次您输入zsh
或bash
时,您都会进入一个子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”附近的解析错误