本博客不欢迎:各种镜像采集行为。请尊重国家相关法律法规,大家都是程序员,不要闹得不开心。

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使用小技巧,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

本站的忠实读者小伙伴,正在阅读下面这些文章: