在macOS终端里输入echo $SHELL并回车,如果返回的结果不是/bin/zsh,那就意味着你的默认登录Shell尚未切换至苹果官方推荐的zsh。这种情况其实相当常见,尤其多见于从旧版系统升级上来的用户,或是之前自行调整过Shell配置的朋友。不必担心,将默认Shell更换为zsh并不麻烦,而且有多种途径可供选择,总有一种适合你的需求。

一、使用 chsh 命令修改系统级登录 Shell
这是最正规、最彻底的方式。它直接修改系统用户数据库中记录的“登录Shell”,影响范围最广。无论你通过图形界面登录、使用SSH远程连接,还是新建一个终端窗口,系统都会默认启动zsh。堪称“一劳永逸”的标准操作。
具体执行步骤如下:
首先,打开“终端”应用。第一步,先查看系统允许使用哪些Shell,输入命令:cat /etc/shells。这个列表里应该包含/bin/zsh。
万一列表中没有(虽然这种情况极少发生),你需要手动将其添加进去。执行这条命令:sudo sh -c "echo '/bin/zsh' >> /etc/shells",输入管理员密码授权即可。
接下来就是关键步骤:执行切换命令 chsh -s /bin/zsh。系统会提示你输入当前用户的密码进行验证。
操作成功后通常不会有任何提示信息,这是Unix命令“沉默是金”的风格。你需要彻底关闭当前的终端窗口,再重新打开一个新的。
最后,用echo $SHELL验证结果,如果输出为/bin/zsh,那就大功告成了。
二、通过系统设置图形界面修改登录 Shell
如果你更习惯使用鼠标操作,或者当前用户权限不足以运行chsh命令,那么通过系统设置来完成就非常合适。它本质上调用了macOS底层的账户管理接口,效果与chsh命令完全相同。
操作路径如下:
点击屏幕左上角的苹果菜单,选择“系统设置”。找到并进入“用户与群组”面板。你会看到当前用户名旁边有个小锁图标,点击它,输入管理员密码解锁。
然后,在当前用户名上右键单击,在弹出的菜单中选取“高级选项”。在弹出的窗口中找到“登录 Shell”这一项,点击下拉菜单,从列表中选择/bin/zsh。
点击“好”保存设置。修改完成后,同样需要重启你的终端应用,让改动生效。
三、通过“终端”偏好设置指定 Shell 启动路径
前面两种方法都是修改“系统级”的默认设置。但有时你可能只想在“终端”这个应用里使用zsh,或者临时测试一下,不希望改动全局配置。这时,终端应用自带的偏好设置就能派上用场。
这个方法的特点是“局部生效”,仅影响通过“终端”应用新建的窗口或标签页,无需管理员权限,非常灵活。
打开“终端”,从屏幕顶部的菜单栏选择“终端” -> “设置”(在部分老版本中叫“偏好设置”)。切换到“通用”标签页。
找到“Shell的打开方式”这个区域。默认选项可能是“默认登录Shell”。你需要将其改为“命令(完整的路径)”。
接着,在下面的输入框中填入zsh的完整路径:/bin/zsh。
关闭设置窗口。现在,你无需重启整个应用,只需新建一个终端标签页或新窗口,它就会直接调用zsh。你可以随时在偏好设置中改回原来的设置,或换用其他Shell路径,非常适合进行对比测试。
四、验证 zsh 是否已正确启用并加载配置
切换成功只是第一步。有时候,虽然echo $SHELL显示已经是/bin/zsh,但使用起来感觉不对劲,例如命令提示符未改变、自动补全不工作。这通常是因为zsh的配置文件(主要是~/.zshrc)没有正确加载。
因此,完成切换后最好进行一次健康检查。
首先,再次确认当前Shell:echo $SHELL,输出必须是/bin/zsh。
然后,检查配置文件是否存在:ls -l ~/.zshrc。如果该文件不存在,zsh启动时会跳过配置加载,导致许多个性化设置丢失。你可以使用touch ~/.zshrc创建一个空的配置文件。
如果文件存在,但修改后未生效,可以手动强制加载一次:source ~/.zshrc。
最后,可以简单测试一下zsh的特性是否正常。比如输入zsh --version查看版本,或者在输入命令时按Tab键,看能否触发智能补全。如果这些都正常,那么你的zsh环境就算完美就绪了。
