在昨天的 WWDC 大会上,苹果隆重介绍了 macOS 的下一个重大版本 Catalina 。
不过对于开发者和高级用户来说,macOS Catalina 还有一个重大的变化 —— zsh 已取代 bash 成为新版操作系统中的默认 shell 。
bash on macOS Mojave
默认情况下,在 macOS Catalina 中所有新创建的用户帐号都将使用 zsh。当然,为了帮助用户顺利过渡,bash 并不会立即从 macOS Catalina 中消失,但苹果表示用户应该开始转向使用 zsh,以尽快习惯这一变化,因为 bash 最后可能还是会被移除。
苹果没有解释做出这一决定的原因,但猜测与 GPLv3 开源协议有关。尽管苹果已经获得基于 GPLv2 许可协议的 bash 3.2 版本,但新版的 bash 采用了 GPLv3 协议。
苹果一直没有在 macOS 中使用 GPLv3 软件包。因为像苹果这样自签发的企业,会在代码审核和对待许可证的态度上更加严格,且其中包含了明确的专利授权。
虽然许多 Mac 开发者已经开始使用像 Fish 这样的更加现代化的 shell,但 zsh 和 Bourne shell(sh)与大多数 bash 更加兼容。zsh 拥有更加灵活的自动完成特性,如果你有意转投 macOS Mojave 时引入的 zsh,请尽快在 bash 被彻底淘汰之前,适应全新的终端设置。