在macOS(Catalina及更高版本)中将默认Shell从zsh切换回bash
macOS Catalina替换bash为zsh的原因
- 许可证合规问题:bash 4.x及以上版本采用GPLv3许可证,这类许可证条款对苹果这类商业公司存在潜在限制;而Catalina之前预装的bash 3.2是最后一个使用GPLv2的版本,已多年未更新,苹果选择替换为采用MIT许可证的zsh,规避后续许可风险。
- 功能体验升级:zsh完全兼容bash语法,同时提供更强大的特性——比如智能路径补全、主题自定义、丰富的插件生态(如oh-my-zsh),比老旧的bash 3.2更适配现代终端使用场景。
能否切换回bash及具体操作
完全可以切换回bash,分两种场景:
- 临时切换:打开终端后直接执行
bash,回车即可进入bash环境,关闭终端后自动恢复默认zsh。 - 设置为默认Shell:
- 先确认系统自带bash的路径,执行命令:
which bash,通常输出为/bin/bash - 执行
chsh -s /bin/bash,输入用户登录密码后生效,重启终端即默认进入bash。 - 图形界面操作:打开「系统设置」→ 找到「用户与群组」→ 右键点击当前用户选择「高级选项」→ 在「登录Shell」下拉菜单中选择
/bin/bash,点击「好」保存设置。
- 先确认系统自带bash的路径,执行命令:
切换回bash是否合理
是否合理取决于实际需求:
- 适合切换的场景:如果工作流严重依赖bash专属脚本(注意:Catalina自带bash是3.2版本,不支持4.x新语法),或完全习惯bash交互逻辑,切换是合理的。
- 不建议切换的场景:若无特殊依赖,更推荐保留zsh——它兼容绝大多数bash用法,能获得更好的功能体验,且苹果后续系统更新会偏向zsh的优化。
切换回bash的注意事项
- 版本限制:macOS自带bash停留在3.2版本,无法通过系统更新升级到4.x及以上。若需要新版本bash,可通过Homebrew安装(
brew install bash),之后需将/usr/local/bin/bash添加到/etc/shells文件中,才能设置为默认Shell。 - 配置文件切换:切换默认Shell后,zsh的配置文件(如
.zshrc)不再生效,需确保bash的配置文件(.bash_profile、.bashrc)配置正确,避免环境变量、别名等失效。 - 长期兼容性:苹果后续macOS版本可能逐步弱化对bash的支持,部分系统工具的默认交互更适配zsh,长期使用bash可能遇到小范围兼容性问题。
内容的提问来源于stack exchange,提问作者P i
相关产品推荐
相关产品推荐

