Mac怎么修改默认Shell为zsh或bash_Mac如何切换终端使用的默认Shell类型【操作】

千雪吖_8088

千雪吖_8088

2026-03-25

492人浏览

原创

若 echo $SHELL 返回路径非预期,需切换默认 Shell:一、chsh 命令修改系统记录;二、系统设置图形界面调整;三、终端偏好设置覆盖;四、Homebrew 安装并注册新 Shell;五、验证 dscl 与 $SHELL 一致性并执行 exec 刷新。

mac怎么修改默认shell为zsh或bash_mac如何切换终端使用的默认shell类型【操作】

如果您在 macOS 终端中运行 echo $SHELL 后发现返回路径并非预期的 /bin/zsh 或 /bin/bash,说明当前登录 Shell 未按需配置。以下是切换默认 Shell 的多种可靠操作方式:

一、使用 chsh 命令切换默认 Shell

该方法直接修改系统用户数据库中记录的登录 Shell 路径,适用于所有 macOS 版本,且更改对所有新终端会话生效。

1、打开“终端”应用,执行命令查看系统支持的 Shell 列表:cat /etc/shells

2、确认目标 Shell(如 /bin/zsh 或 /bin/bash)已存在于输出中;若缺失,需先用 sudo sh -c "echo '/path/to/shell' >> /etc/shells" 添加

3、执行切换命令:chsh -s /bin/zsh(设为 zsh)或 chsh -s /bin/bash(设为 bash)

4、输入当前用户密码完成验证;成功后无提示信息,需关闭并重新打开终端窗口

5、运行 echo $SHELL 验证结果,输出应与所设路径一致

二、通过系统设置图形界面修改默认 Shell

此方式绕过命令行,适合偏好图形化操作或受限于权限策略的用户,直接调用系统账户管理接口更新登录 Shell。

1、点击屏幕左上角苹果菜单,选择“系统设置”

2、进入“用户与群组”,点击当前用户名右侧的锁形图标,输入管理员密码解锁

3、右键点击当前用户名,选择“高级选项”

4、在“登录 Shell”下拉菜单中,选择 /bin/zsh 或 /bin/bash

5、点击“好”保存,关闭设置窗口后重启终端

三、通过“终端”偏好设置覆盖默认 Shell

该方法不更改系统级登录 Shell,仅影响 Terminal 应用新建窗口/标签页启动时调用的 Shell,适合临时调试或多 Shell 并行使用场景。

1、打开“终端”,从顶部菜单栏选取“终端”→“设置”(或“偏好设置”)

2、切换到“通用”标签页

Adobe Firefly
Adobe Firefly

Adobe Firefly是一款面向创意工作流的生成式 AI 图片、视频、音频和设计平台。

下载

3、在“Shell 的打开方式”区域,勾选“命令(完整的路径)”

4、在输入框中填入完整路径:/bin/zsh 或 /bin/bash

5、关闭设置窗口,新开一个终端标签页即可立即生效

四、通过 Homebrew 安装并启用非预装 Shell

当需使用系统未内置的 Shell(如 fish、ion),需先安装并注册至合法 Shell 列表,再设为默认,确保系统安全策略允许启动。

1、若尚未安装 Homebrew,先在终端执行官方安装脚本:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2、使用 Homebrew 安装目标 Shell,例如:brew install fish

3、将新 Shell 路径添加至系统合法 Shell 列表:echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells(Apple Silicon 设备)或 echo /usr/local/bin/fish | sudo tee -a /etc/shells(Intel 设备)

4、执行 chsh -s /opt/homebrew/bin/fish(或对应路径)设为默认

5、重启终端,运行 echo $0 确认当前 Shell 名称

五、验证与故障响应

若执行 chsh -s /bin/zsh 后提示 chsh: no changes made,表明系统已记录该 Shell 为当前值,无需重复操作;若仍不生效,需检查是否误改了其他 Shell 配置文件而未重启终端。

1、运行 dscl . -read ~ UserShell 直接读取系统账户数据库中存储的 Shell 路径

2、对比 echo $SHELL 输出,二者应完全一致;若不一致,说明当前会话未继承登录 Shell 设置

3、强制刷新当前会话环境:exec zsh -l(切换至 zsh)或 exec bash -l(切换至 bash)

4、若提示权限错误,确认当前用户具有修改自身登录 Shell 的权限,必要时使用管理员账户重试

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3703

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

855

4

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3168

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

5049

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3829

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

466

15

macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

2025.05.09

4904

14

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

2845

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

4021

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 190人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.6万人学习

好课诞生记
好课诞生记

共20课时 | 7.2万人学习