🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

在 macOS 上活用 Bash:如何从 Zsh 切换?

在之前的文章中,我们学习了从 Bash 的基础知识到在 Windows 上通过 WSL 使用 Bash 的方法。这次,我们将为 macOS 用户深入探讨,分享一些能让您的终端环境更加舒适的知识。如果您是一位钟爱 macOS 的 Web 创作者,可能曾有过这样的经历:打开终端时,看到了陌生的“zsh”字样,心中不禁疑惑:“咦,这不是 Bash 吗?”

没错,自 macOS Catalina(2019年发布)起,Mac 的默认 Shell 已从 Bash 更改为 Zsh (Z Shell)。Zsh 是一个功能非常强大且优秀的 Shell,但市面上的许多教程和服务器仍以 Bash 为标准。因此,有不少人希望能“为了学习而搭建 Bash 环境”或“希望使用与服务器完全相同的 Shell 进行工作”。

本文将为这些 macOS 用户,通俗易懂地解说以下几点:

读完本文后,您应该就掌握了自由定制 macOS 终端环境,并根据项目需求选择最合适 Shell 的知识!


Zsh 与 Bash,有何不同?

首先,Zsh 和 Bash 都是“Shell”的一种,是我们向操作系统传达命令的交互式程序,这一点是共通的。许多基本命令(如 ls, cd, mkdir 等)在两种 Shell 中的用法完全相同。

那么,为什么苹果公司要从多年来一直是标准的 Bash 切换到 Zsh 呢?让我们来看看主要区别和原因。

总而言之,Zsh 在功能上接近 Bash 的上位替代,但兼容性并非 100%。为了与服务器环境或现有脚本保持一致而希望使用 Bash 的需求,至今仍然非常普遍。


步骤 1: 安装最新版的 Bash

如前所述,macOS 自带的 Bash 版本非常老旧。首先,我们使用 Homebrew 来安装最新版的 Bash。Homebrew 是 macOS 上一个方便的包管理工具。

打开终端,执行以下命令来安装 Bash。(如果尚未安装 Homebrew,请先完成安装)。

brew install bash

这样,除了 macOS 标准的 /bin/bash 之外,一个由 Homebrew 管理的新的 Bash 就被安装好了。(通常位于 /usr/local/bin/bash/opt/homebrew/bin/bash)。


版本确认

安装后,我们来比较一下新旧 Bash 的版本。首先,确认 macOS 自带的旧版 Bash 的版本。

$ /bin/bash --version
GNU bash, version 3.2.57(1)-release ...

接下来,确认通过 Homebrew 安装的新版 Bash 的版本。(请根据您的环境调整路径)。

$ /opt/homebrew/bin/bash --version
GNU bash, version 5.2.15(1)-release ...

可以看到,版本号为 5 系列的新版 Bash 已经安装成功了!


步骤 2: 将默认 Shell 切换为 Bash

仅仅安装了新的 Bash 还不够,此时新打开的终端使用的仍然是 Zsh。接下来,我们来看看如何将其更改为我们刚刚安装的新版 Bash。

2-1. 将新版 Bash 添加到允许的 Shell 列表中

出于安全考虑,macOS 将用户可以设置为默认 Shell 的程序路径记录在一个名为 /etc/shells 的文件中。首先,我们需要将通过 Homebrew 安装的 Bash 的路径追加到这个文件中。

请执行以下命令。如果提示输入密码,请输入您 Mac 的登录密码。

sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells'

2-2. 使用 chsh 命令更改默认 Shell

添加到允许列表后,我们使用 chsh (change shell) 命令,将您的登录 Shell 更改为新版 Bash。

chsh -s /opt/homebrew/bin/bash

执行此命令后,请完全退出并重新打开终端。这样,下次启动终端时就会默认使用 Bash 了。


步骤 3: 验证与恢复方法

打开一个新的终端窗口后,让我们来确认一下 Shell 是否真的切换到了 Bash。执行以下命令。

$ echo $SHELL
/opt/homebrew/bin/bash

如果显示的是通过 Homebrew 安装的 Bash 的路径,那么切换就成功了!


想换回 Zsh 的时候

如果您开始怀念 Zsh 的功能,或者想换回去,也非常简单。同样使用 chsh 命令,只需指定 Zsh 的路径即可。

chsh -s /bin/zsh

之后,重新打开终端,您就会回到熟悉的 Zsh 提示符界面了。


总结

辛苦了!这次我们为 macOS 用户解说了如何将默认 Shell 从 Zsh 切换到最新版的 Bash。这样一来,您的 Mac 就拥有了与 Web 开发一线广泛使用的 Bash 环境几乎一致的配置,学习和工作都会变得更加顺畅。

Zsh 和 Bash 都是各有所长的优秀工具,没有哪一个绝对优于另一个。重要的是理解它们各自的特点,并具备根据项目需求或个人喜好随时切换环境的知识。通过今天的文章,您已经掌握了这种能力!

好了,既然 Bash 环境已经就绪,下一步就是逐一深入学习 Bash 的基本命令了。在下一篇文章中,我们将详细解说文件操作的基础,如 `cd` 和 `ls` 等。这是使用 Bash 的基本功,请务必继续关注。

Bash 基本命令一览与用法入门(cd, ls, echo 等)