在OSX上从zsh切换到bash,然后再返回?

vpo*_*a88 163 bash terminal zsh

所以我学习在Rails中开发,并发现了zsh的强大功能.但是,对于我的其他一些任务,我希望使用普通的Bash.虽然它们是相同的,但我对在某些情况下打击bash感到很自在.如何来回切换,或打开和关闭zsh?谢谢!

lar*_*sks 330

您可以使用exec新shell替换当前shell:

切换到bash:

exec bash
Run Code Online (Sandbox Code Playgroud)

切换到zsh:

exec zsh
Run Code Online (Sandbox Code Playgroud)

这不会影响新的终端窗口或任何东西,但它很方便.

  • 你如何改变默认值?另外,当我在zsh中执行"exec bash"时,它不会获取我的bash_profile. (2认同)

wan*_*hao 110

您可以尝试chsh -s /bin/bash将bash设置为默认值,或chsh -s /bin/zsh将zsh设置为默认值.

  • 不完全正确。只需输入命令:“bash”或“zsh”即可使用该 shell。 (7认同)

小智 45

我经常在zsh和bash之间切换.有一段时间,我曾经不得不每次切换我的bash_profile.然后我发现你可以(通常)做

exec bash --login
Run Code Online (Sandbox Code Playgroud)

要不就

exec bash -l
Run Code Online (Sandbox Code Playgroud)

  • 你写的“--login”的用途会有用吗? (3认同)
  • 谢谢菲尔,我安装了thoughtbot/laptop,它弄乱了我的所有配置。你的提示有助于恢复我的 bash 环境。 (2认同)

as *_* if 10

对于Bash,请尝试

chsh -s $(which bash)
Run Code Online (Sandbox Code Playgroud)

对于zsh,请尝试

chsh -s $(which zsh)
Run Code Online (Sandbox Code Playgroud)


小智 9

如果只是一个临时开关

您可以如上所述使用exec,但更多的是永久解决方案。

您可以使用chsh -s / bin / bash(切换到bash)和chsh -s / bin / zsh(切换到zsh)

  • 我的现在是 zsh,但是当我尝试 chsh -s /bin/bash 并输入我的密码时,它显示没有进行任何更改 (2认同)

Ran*_*oon 8

在 Mac OS Catalina 中,默认交互式 shell 是 zsh。要将 shell 从 bash 更改为 zsh:

chsh -s /bin/zsh
Run Code Online (Sandbox Code Playgroud)

然后您需要输入您的 Mac 密码。退出终端并重新打开它。要检查是否已成功更改为 ssh,请发出以下命令。

echo $SHELL
Run Code Online (Sandbox Code Playgroud)

如果结果是 /bin/zsh,则您的任务已完成。

要将其更改回 bash,请在终端上发出以下命令。

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

使用 再次验证它echo $SHELL。那么结果应该是/bin/bash。


小智 6

zsh有一个内置命令emulate,可以通过设置适当的选项来仿真不同的shell,尽管永远不会完全仿真csh。

emulate bash
perform commands
emulate -R zsh
Run Code Online (Sandbox Code Playgroud)

-R标志将所有选项恢复为该Shell的默认值。

请参阅:zsh手册


Sar*_*h A 6

bash如果您总是想使用 bash,您只需输入以下命令即可:

关于“iTerm2”

  • 转到首选项 > 配置文件 > 命令
  • 从下拉列表中选择“命令”
  • 类型bash

关闭 iTerm 并再次打开进行测试


kus*_*eep 6

请按照以下步骤操作:

chsh -s /bin/bash
重新启动终端
检查正在使用哪个 shell:echo $SHELL
source .profile

你和 Bash 一起回来了!