您可以使用 exec
将当前的 shell 替换为新的 shell:
切换到 bash
:
exec bash
切换到 zsh
:
exec zsh
这不会影响新的终端窗口或任何东西,但它很方便。
您可以尝试 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 的默认值。
请参阅:zsh manual
在 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 进行测试并再次打开它
请按照以下步骤操作!
chsh -s /bin/bash
Restart terminal
check which shell is in use by echo $SHELL
source .profile
你和 Bash 一起回来了!!
您应该可以在终端中输入 bash
以切换到 bash,然后输入 zsh
以切换到 zsh。至少对我有用。
zsh
或 bash
时,您都会进入一个子 shell(当前 shell 下的子进程)。您需要多次键入 exit 才能返回到最顶层的 shell。
您可以使用命令“bye”轻松切换回 bash
exit
后返回 bash。执行它似乎是不必要和不可取的。