我正在学习开发 Rails,并发现了 zsh
的强大之处。然而,在某些其他任务中,我希望使用普通的 bash
。
虽然它们是相同的,但在某些情况下我只是更喜欢 bash
的布局。
我如何在 zsh
和 bash
之间切换或启用和禁用 zsh
?
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
如果只是暂时切换,可以像上面提到的那样使用exec命令,但对于更长期的解决方案。
你可以使用 chsh -s /bin/bash (切换到bash)和 chsh -s /bin/zsh (切换到zsh)
对于Bash,请尝试
chsh -s $(which bash)
对于zsh,请尝试
chsh -s $(which zsh)
在 Mac OS Catalina 中,默认的交互式 shell 是 zsh。要将 shell 从 bash 更改为 zsh:
chsh -s /bin/zsh
然后您需要输入Mac密码。退出终端并重新打开它。要检查是否成功更改为ssh,请输入以下命令。
echo $SHELL
chsh -s /bin/bash
使用echo $SHELL
再次验证。 结果应为/bin/bash。
zsh有一个内置命令emulate
,可以通过设置适当的选项来模拟不同的shell,尽管csh永远无法完全模拟。
emulate bash
perform commands
emulate -R zsh
您可以只输入bash
或者如果您总是想使用bash:
在 "iTerm2" 上:
bash
通过关闭 iTerm 并重新打开来测试
按照以下步骤进行操作:
chsh -s /bin/bash
重新启动终端
检查正在使用的shell: echo $SHELL
source .profile
现在你已经回到Bash了!
您只需在终端中键入bash
即可切换到bash,然后键入zsh
即可切换到zsh。至少对我而言是这样的。
zsh
或 bash
都会进入一个子 Shell(在当前 Shell 下运行的子进程)。你需要多次输入 "exit" 才能回到最顶层的 Shell。 - RichVel
echo $SHELL
,它会一直显示/bin/zsh
,这会导致意外的结果,比如MC的这个问题(bug 3580)。 - Pablo Bianchichsh -s /bin/zsh
会更改默认shell。要执行任何可执行文件,包括你的 .bash_profile,请执行. {filename}
。 - barclay