欢迎各位兄弟 发布技术文章
这里的技术是共享的
要在 macOS 上永久将默认 Shell 更改为 /bin/bash
(即使重启后仍生效),请按以下步骤操作:
/bin/bash
可用运行以下命令检查 /bin/bash
是否有效:
bashls -l /bin/bash
确保输出中包含 /bin/bash
(例如:/bin/bash -> bash
)。
⚠️ 注意:从 macOS Catalina 开始,默认 Shell 是 /bin/zsh
,但 /bin/bash
仍存在(可能是较旧版本)。
chsh
更改默认 Shell (我自己亲自做的 ,重启后 还是 /bin/bash)bashsudo chsh -s /bin/bash
输入密码后,会修改当前用户的默认 Shell。
但在 macOS 上可能仍需额外步骤,因为系统可能会在重启后重置。
macOS 可能通过配置文件覆盖 Shell 设置。需通过以下方法强制生效:
/etc/shells
文件确保 /bin/bash
在合法 Shell 列表中:
bashsudo sh -c 'echo "/bin/bash" >> /etc/shells'
打开 系统偏好设置 > 用户与群组。
右键点击当前用户 → 高级选项。
在 登录 Shell 字段中手动输入 /bin/bash
,点击 OK。
如果使用终端工具(如 iTerm2 或 Terminal.app),在其设置中指定默认 Shell 为 /bin/bash
,避免依赖系统全局设置。
重启终端或执行:
bashecho $SHELL
应显示 /bin/bash
。若仍不正确,尝试完全重启 macOS。
权限问题:确保使用 sudo
修改系统文件。
Shell 版本问题:macOS 的 /bin/bash
版本较旧(GPLv2 限制)。如需新版 bash
,可通过 Homebrew 安装:
bashbrew install bash sudo sh -c 'echo "/usr/local/bin/bash" >> /etc/shells' chsh -s /usr/local/bin/bash
通过以上步骤,你的 macOS 将在重启后仍保持 /bin/bash
作为默认 Shell。如果问题持续,检查是否有其他配置(如 Shell 初始化文件)覆盖了设置。
要在 macOS 中永久将默认 Shell 更改为 /bin/bash
(即使重启后仍生效),请按以下步骤操作:
打开终端(当前 Shell 可能是 zsh
)
修改默认 Shell:
sudo chsh -s /bin/bash
输入当前用户的密码确认。
验证是否修改成功:
echo $SHELL
如果显示 /bin/bash
表示修改成功。
某些终端应用(如 iTerm2)可能覆盖系统设置:
打开终端应用设置:
系统自带终端:Terminal > Settings > Profiles > Shell
选择 Default login shell(不要勾选自定义命令)。
iTerm2:iTerm2 > Settings > Profiles > General > Command
选择 Login Shell(不要填写自定义路径)。
重启终端应用。
如果 ~/.bash_profile
或 ~/.zshrc
中有强制切换 Shell 的代码,请删除:
nano ~/.bash_profile # 删除任何包含 'exec zsh' 或类似命令的行 nano ~/.zshrc # 同上
完全关闭所有终端窗口。
打开新终端窗口,执行:
echo $SHELL # 应显示 /bin/bash ps -p $$ # 检查进程名是否为 bash
权限问题:
确保命令用 sudo
执行(但 chsh
不需要 sudo):
sudo chsh -s /bin/bash # 非必要,普通用户直接 chsh 即可
Shell 未注册:
检查 /bin/bash
是否在 /etc/shells
中(通常默认存在):
cat /etc/shells # 确保有 /bin/bash
系统更新重置:
macOS 大版本更新可能重置 Shell,更新后需重新执行 chsh
。
所有新终端窗口、SSH 登录、脚本执行(如 #!/bin/bash
)均会使用 /bin/bash
。
系统重启后仍保持生效。
⚠️ 注意:从 macOS Catalina 开始,默认 Shell 是
zsh
,但通过以上步骤可永久切换回bash
。