我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

mac系统中,在之前的终端是使用bash的。从 macOS Catalina 版开始,bash下岗了,被zsh这个更先进的终端系统所替代。这就是本文的主要写作背景。

苏南大叔:mac系统,如何切换终端使用zsh或者bash? - mac-zsh-bash
mac系统,如何切换终端使用zsh或者bash?(图5-1)

本文测试环境:mac@big surbash@3.2.57zsh@5.8。不过,需要事先说明的是:您可能没有什么必要切换到bashzsh据说才是未来的潮流设置。

最大的变数

其实对于苏南大叔来说,这个终端是zsh还是bash,其实是没有啥区别的。其中的最大变数就是:配置文件到底是.zshrc,还是.bash_profile。因为,在很多地方,都是在这里加载环境变量的,如果zshbash切换了,那么就意味着一些环境变量可能就失效了。

苏南大叔:mac系统,如何切换终端使用zsh或者bash? - iterm2-bash-version
mac系统,如何切换终端使用zsh或者bash?(图5-2)

很多的网上的教程里面,大多数都让写到.bash_profile文件里面的。这样的话,对于现在的mac系统来说,.bash_profile因为并不是默认加载的配置文件了。所以,网上的教程就大量失效了。

可能的解决方案是:在~/.zshrc文件里面,source一下~/.bash_profile

苏南大叔:mac系统,如何切换终端使用zsh或者bash? - source-bash-profile
mac系统,如何切换终端使用zsh或者bash?(图5-3)

这里有个小tip,可以看到:实际上在路径~下,是有4个文件的。

  • .zprofile 的作用与 .bash_profile 相同,并且在登录时运行(包括通过 SSH 运行)。
  • .zshrc的作用与 .bashrc 相同,并针对每个新的“终端”会话运行。

查看终端设置

想查看当前的终端是zsh还是bash呢?可以使用下面的命令:

echo $0

另外iterm2的顶部标题位置,也可以显示job name。如下图所示:

苏南大叔:mac系统,如何切换终端使用zsh或者bash? - detech-bash
mac系统,如何切换终端使用zsh或者bash?(图5-4)

切换终端设置

值得说明的是:

  • 切换之后需要新开终端窗口(iterm2)才能生效,当前窗口不生效。
  • 并不需要sudo,但是会需要输入当前用户密码。

切换到zsh

chsh -s /bin/zsh

切换到bash:

chsh -s /bin/bash

苏南大叔:mac系统,如何切换终端使用zsh或者bash? - bash-warning
mac系统,如何切换终端使用zsh或者bash?(图5-5)

但是切换到bash之后,系统会提示现在推荐zsh

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

相关链接

总结

mac系统里面,如果搞清楚存在着zshbash的区别的话,就可以解释很多奇怪的现象了。更多mac使用小技巧,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   mac    bash