Mac升级Sequoia后需统一登录Shell、终端新建窗口Shell及当前会话Shell为Zsh:先用echo $SHELL、cat /etc/shells、ps -p $$确认状态;若/bin/zsh未在/etc/shells中则需sudo添加;再chsh -s /bin/zsh并彻底登出重登录;终端App需在“设置→通用”中手动设为/bin/zsh;当前会话可临时输入zsh或zsh --no-rcs切换。

Mac终端默认Shell仍显示bash但系统已升级到Sequoia,导致别名失效、命令补全异常,必须将登录Shell、终端App新建窗口Shell、当前会话Shell三者统一设为Zsh才能恢复正常交互体验。
确认当前Shell状态和可用Shell列表
打开终端,先执行:echo $SHELL——这显示的是系统为你账户设定的登录Shell路径,不是你此刻正在用的Shell。
再运行:cat /etc/shells——只有这里列出的路径才被系统允许设为默认Shell。如果输出里没有/bin/zsh,说明Zsh未被启用,【chsh命令将直接失败】。
最后查实时运行的Shell:ps -p $$——CMD列显示的才是你现在敲命令时真正解析的Shell进程名。
修改用户登录时启动的默认Shell
这是影响图形界面登录、SSH登录、所有新登录会话的根本设置,必须用chsh命令:
第一步:确保/bin/zsh已在/etc/shells中。若缺失,先执行:sudo sh -c "echo '/bin/zsh' >> /etc/shells"
第二步:执行切换命令:chsh -s /bin/zsh
第三步:输入当前用户密码完成验证。成功后无任何提示,【必须完全退出当前图形会话:登出系统再重新登录,或重启Mac,仅关闭终端窗口/标签页无效】
统一终端App新建窗口使用的Shell
即使$SHELL已改成zsh,macOS终端App默认可能仍按旧设置启动新窗口——它根本不读$SHELL,只认“设置 > 通用”里的配置。
打开“终端” → “设置” → “通用”
在“Shell 的打开方式”中,选择“命令(完整的路径)”
在右侧输入框填入:/bin/zsh
临时切换当前终端会话的Shell
方法一:直接输入Shell名称启动子Shell
比如当前是bash,想临时进zsh调试,就敲:zsh
方法二:跳过配置文件快速进入干净环境zsh --no-rcs——这样不会加载~/.zshrc,适合排查配置冲突。
退出当前Shell回到上一层:exit 或 Ctrl+D

















