如何通过终端指令查看并切换 MacOS 当前默认 Shell?

2026-04-24 20:372阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计554个文字,预计阅读时间需要3分钟。

如何通过终端指令查看并切换 MacOS 当前默认 Shell?

直接在终端输入 `echo $SHELL` 就能查看当前默认的Shell路径,例如显示 `/bin/zsh` 或 `/bin/bash`。切换Shell使用 `chsh -s` 命令,但需确保目标Shell已被系统认可。

查看系统支持的所有 Shell

执行以下命令,列出所有被 macOS 允许作为登录 Shell 的路径:

cat /etc/shells

输出中应包含 /bin/zsh/bin/bash 等。如果想用的 Shell(如通过 Homebrew 安装的 /usr/local/bin/fish)没出现在列表里,得先手动添加:

  • 运行 sudo sh -c "echo '/usr/local/bin/fish' >> /etc/shells"
  • 输管理员密码完成授权

用 chsh 切换默认 Shell

这是最标准、全局生效的方式,影响所有新登录会话(包括图形界面登录、SSH、新终端窗口等):

  • 设为 zsh:chsh -s /bin/zsh
  • 设为 bash:chsh -s /bin/bash
  • 设为其他已注册 Shell(如 fish):chsh -s /usr/local/bin/fish

输入后会提示你输入当前用户密码。成功无提示,需完全关闭并重新打开终端窗口才能看到变化。

验证是否切换成功

重启终端后,运行两行命令确认:

  • echo $SHELL —— 显示登录时指定的默认 Shell 路径
  • ps -p $$ —— 查看当前正在运行的 Shell 进程名(更实时)

两者结果应一致。若不一致,说明当前会话仍是旧 Shell,可能因未重启终端或 chsh 执行失败。

临时覆盖(仅限 Terminal 应用)

不想改系统级设置,只希望 Terminal 新建窗口/标签页启动特定 Shell,可跳过 chsh:

  • 打开“终端” → “设置” → “通用”
  • 勾选“命令(完整的路径)”,填入如 /bin/bash
  • 新开一个标签页立即生效,不影响其他终端应用(如 iTerm2)或系统登录
标签:macmacOScos

本文共计554个文字,预计阅读时间需要3分钟。

如何通过终端指令查看并切换 MacOS 当前默认 Shell?

直接在终端输入 `echo $SHELL` 就能查看当前默认的Shell路径,例如显示 `/bin/zsh` 或 `/bin/bash`。切换Shell使用 `chsh -s` 命令,但需确保目标Shell已被系统认可。

查看系统支持的所有 Shell

执行以下命令,列出所有被 macOS 允许作为登录 Shell 的路径:

cat /etc/shells

输出中应包含 /bin/zsh/bin/bash 等。如果想用的 Shell(如通过 Homebrew 安装的 /usr/local/bin/fish)没出现在列表里,得先手动添加:

  • 运行 sudo sh -c "echo '/usr/local/bin/fish' >> /etc/shells"
  • 输管理员密码完成授权

用 chsh 切换默认 Shell

这是最标准、全局生效的方式,影响所有新登录会话(包括图形界面登录、SSH、新终端窗口等):

  • 设为 zsh:chsh -s /bin/zsh
  • 设为 bash:chsh -s /bin/bash
  • 设为其他已注册 Shell(如 fish):chsh -s /usr/local/bin/fish

输入后会提示你输入当前用户密码。成功无提示,需完全关闭并重新打开终端窗口才能看到变化。

验证是否切换成功

重启终端后,运行两行命令确认:

  • echo $SHELL —— 显示登录时指定的默认 Shell 路径
  • ps -p $$ —— 查看当前正在运行的 Shell 进程名(更实时)

两者结果应一致。若不一致,说明当前会话仍是旧 Shell,可能因未重启终端或 chsh 执行失败。

临时覆盖(仅限 Terminal 应用)

不想改系统级设置,只希望 Terminal 新建窗口/标签页启动特定 Shell,可跳过 chsh:

  • 打开“终端” → “设置” → “通用”
  • 勾选“命令(完整的路径)”,填入如 /bin/bash
  • 新开一个标签页立即生效,不影响其他终端应用(如 iTerm2)或系统登录
标签:macmacOScos