【发布时间】:2012-05-07 15:34:50
【问题描述】:
我正在学习使用 Rails 进行开发,并发现了 zsh 的强大功能。但是,对于我的其他一些任务,我希望使用普通的bash。
虽然它们是相同的,但在某些情况下,我对bash 的布局感到满意。
如何来回切换,或打开和关闭zsh?
【问题讨论】:
我正在学习使用 Rails 进行开发,并发现了 zsh 的强大功能。但是,对于我的其他一些任务,我希望使用普通的bash。
虽然它们是相同的,但在某些情况下,我对bash 的布局感到满意。
如何来回切换,或打开和关闭zsh?
【问题讨论】:
您可以使用 exec 将当前的 shell 替换为新的 shell:
切换到bash:
exec bash
切换到zsh:
exec zsh
这不会影响新的终端窗口或任何东西,但很方便。
【讨论】:
exit 即可返回 bash。执行它似乎是不必要和不可取的。
您可以尝试chsh -s /bin/bash 将bash 设置为默认值,
或chsh -s /bin/zsh 将zsh 设置为默认值。
终端需要重启才能生效。
【讨论】:
我经常在 zsh 和 bash 之间切换。有一段时间,我曾经不得不在每次切换时获取我的 bash_profile。然后我发现你可以(通常)这样做
exec bash --login
或者只是
exec bash -l
【讨论】:
Make bash act as if it had been invoked as a login shell (see INVOCATION below). Source
如果只是临时切换
您可以使用上面提到的 exec,但更多的是永久解决方案。
您可以使用 chsh -s /bin/bash(切换到 bash)和 chsh -s /bin/zsh(切换到 zsh)
【讨论】:
对于 Bash,试试
chsh -s $(which bash)
对于zsh,试试
chsh -s $(which zsh)
【讨论】:
zsh 有一个内置命令emulate,它可以通过设置适当的选项来模拟不同的 shell,尽管 csh 永远不会被完全模拟。
emulate bash
perform commands
emulate -R zsh
-R 标志将所有选项恢复为该 shell 的默认值。
【讨论】:
在 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。
【讨论】:
你可以只输入bash 或者如果你总是想使用 bash:
关于“iTerm2”
bash
通过关闭 iTerm 进行测试并再次打开它
【讨论】:
你应该可以在终端输入bash切换到bash,然后输入zsh切换到zsh。至少对我有用。
【讨论】:
zsh 或bash 时,您都会进入一个子shell(当前shell 下的子进程)。您需要多次输入 exit 才能返回到最顶层的 shell。
按照以下步骤操作!
chsh -s /bin/bash
Restart terminal
check which shell is in use by echo $SHELL
source .profile
你带着 Bash 回来了!!
【讨论】:
您可以使用命令“bye”轻松切换回 bash
【讨论】: