You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iTerm2未使用chsh指定的默认shell问题求助

解决Mac Sonoma下iTerm2默认Shell仍为旧版Bash的问题

以下是针对性的排查和解决步骤:

1. 确认chsh设置是否真正生效

  • 打开iTerm2后执行:
    echo $SHELL
    
    如果输出不是/opt/homebrew/bin/bash,说明系统层面的默认Shell变更未生效:
    • 先检查/etc/shells文件,确认/opt/homebrew/bin/bash路径无拼写错误、无多余空格:
      cat /etc/shells
      
    • 尝试通过系统设置修改:打开「系统设置」→「通用」→「传输与隐私」→「高级」→「登录Shell」,手动选择/opt/homebrew/bin/bash,完成后重启系统。
    • 部分Sonoma版本中,chsh的变更需要重启系统才能完全生效,而非仅重启iTerm2。

2. 检查iTerm2的Profile配置

  • 不要只修改全局默认配置,需检查当前正在使用的Profile:
    1. 打开iTerm2的设置窗口(Cmd+,)
    2. 切换到「Profiles」标签,选中你日常使用的Profile
    3. 进入「General」选项卡,确认「Command」选项选择的是Login shell,而非手动指定了/bin/bash或其他路径——手动指定的Command会覆盖系统默认Shell设置。

3. 调整PATH环境变量优先级

  • 打开iTerm2后执行:
    echo $PATH
    
    如果/bin出现在/opt/homebrew/bin之前,那么输入bash时会优先调用系统内置的3.2版本。解决方法:
    • 在~/.bash_profile或~/.bashrc文件中添加以下内容(brew安装的Bash会加载这些配置文件):
      export PATH="/opt/homebrew/bin:$PATH"
      
    • 保存后执行source ~/.bash_profile生效,重启iTerm2验证。

4. 排查启动脚本是否强制切换Shell

  • 检查~/.bash_profile、~/.bashrc甚至~/.zshrc(如果之前用的是Zsh)中,是否存在类似exec /bin/bash的命令,这类命令会强制切换回旧版Shell,如有则删除相关行。

内容的提问来源于stack exchange,提问作者loadedmind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:44:57