什么是 Zsh?你应该使用它吗?
您可能已经知道 Linux/Unix 中有各种可用的 shell。Bash 是最受欢迎的 shell,也是大多数 Linux 发行版的默认 shell。
另一个流行的 shell 是Zsh。它功能强大,也是 macOS 中的默认 Shell。
现在,问题来了,什么特性使得 Zsh 成为流行的选择,您是否应该费心使用它?
让我来回答这个问题。
什么是 Zsh?
“Z shell”最初是由 Paul Falstad 在普林斯顿大学读书时创建的。Zsh 整合了其他流行 Shell 中的许多有用功能,例如 Bourne-Again Shell (Bash)、Korn Shell (ksh)、C-shell (csh) 和 tcsh。因此,Zsh 旨在提供与这些 Shell 的一定程度的兼容性,从而提高用户的采用率。
如今,Zsh 是一个大型开源项目(不是由 Paul Falstad 维护),拥有庞大的用户和贡献者社区,自 2019 年以来,它一直是 Apple macOS 的默认 Shell。
Bash 和 Zsh 有什么区别?
如今,这两个开源项目的积极开发使得这两个 shell 在一般特性和功能方面保持接近,但在如何执行某些操作方面存在一些细微差异。默认情况下,Zsh 更强大且可自定义,而 Bash 可能需要一些额外的脚本(插件)来实现某些功能。
从更广泛的角度来看,Zsh 优于 Bash 的主要特点是:
Zsh 拥有更多高级功能。
Zsh 中的自动补全功能运行得更快更好。在 bash 中,制表符补全通过从开头匹配术语来工作( mn 将匹配 mnt 但不匹配findmnt)。在 Zsh 中,即使术语位于中间,它也可以显示结果。
在 Zsh 中,命令历史记录在 shell 之间共享,从而提高了自动完成的用户体验。
Zsh 还内置了自动更正功能。如果你打字太快而打错了,它可能会建议另一个正确的命令。
Zsh 的配置性更强,并且具有更多选项来构建精美的用户提示。
Zsh 有大量可用的插件、主题和框架,比如流行的Oh My Zsh。它可以帮助您获得具有实用功能的精美终端。
你应该使用 Zsh 吗?
Zsh 已被证明是一个强大而快速的 shell,易于定制,允许用户轻松设置一个花哨且用户友好的 CLI 以供日常使用。
如果你是一名软件开发人员,或者从事任何其他需要在自己的计算机上经常使用 CLI 的活动,Zsh 似乎是改善你的总体体验的不错选择。特别是如果你愿意花一些时间去探索它的话。
我该放弃 Bash 吗?
Bash 不会消失,这是事实!它是大多数 Linux 发行版中嵌入的标准 shell,这意味着世界上大多数服务器、容器、虚拟机和云实例都嵌入了它。
关于脚本,除非您有非常特殊的用途,否则您最好编写 bash 脚本来实现系统一致性。
您可能在主计算机中使用 Zsh,但不要认为您不会再接触 Bash,Bash 脚本在未来几年内仍然会是一个安全的选择。
为什么它是 macOS 上的默认设置?
除了 Zsh 是一个具有良好功能的出色 shell 之外,这个问题的答案都与软件许可证有关。
在切换到 Zsh 之前,MacOS 多年来一直将 Bash 的旧版本 v3.2(2007 年发布!)作为默认 shell,这是最后一个根据 GPLv2 授权的版本。在 3.2 之后,Bash 的新版本根据 GPLv3 授权,而这个许可证似乎对 Apple 来说已经难以接受。
在默认提供过时的 shell 十多年后,Apple 决定解决这个问题,并转而使用根据 MIT 许可证授权的 Zsh。
结论
Zsh 可能会改善您在主计算机上的 CLI 体验,并且它是初学者的完美选择,因为某些框架可以通过简单的安装使其大放异彩。
Bash 是编写脚本的一个不错的选择,而且熟悉标准 Bash 安装对于处理 DevOps、系统管理、云计算和容器的人来说可能非常有用,因为它是大多数 Linux 发行版的默认 shell。
如果您想尝试,请安装 Zsh,切换到 Z shell并进行探索。如果您觉得它很棒,甚至可以将其设为默认 shell。