MacOS如何切换shell类型

切换 shell 类型

如果你想在不同的 shell 之间切换,以探索它们的不同之处,或者因为你知道自己需要其中的一个或另一个,可以使用如下命令:

切换到 bash

bash 复制代码
chsh -s $(which bash)

切换到 zsh

sh 复制代码
chsh -s $(which zsh)

$()语法的作用是运行

这会提示你输入 macOS 密码。要使更改生效,你需要打开一个新的终端选项卡,或退出并重启终端应用程序。

重要提示:

切换 shell 时,如果你希望使用相同的配置,请确保将 ~/.bash_profile 的内容复制到 ~/.zshrc 中,反之亦然。此外,还要注意任何与两个 shell 不兼容的代码。

如果你不确定如何打开和编辑点文件或隐藏文件(文件名以句点开头的文件,如 .zshrc),请阅读我的 Mac 隐藏文件打开指南。

可能出现的错误

如果你收到一条关于非标准 shell 的信息,这意味着你的 shell 未列在 /etc/shells 中。使用 Homebrew 安装 shell 后可能会出现这种情况,因为你可以获得比 macOS 自带版本更新的 shell。

要让 macOS 知道 shell 的 Homebrew 版本,需要将其添加到 /etc/shells 中。以下是如何安全添加 Homebrew 的 zsh:

找到 Homebrew zsh 的路径:

sh 复制代码
which zsh

用 Sublime Text 或其他代码编辑器打开 /etc/shells,但不要用 TextEdit:

sh 复制代码
open /etc/shells -a "Sublime Text"

将 zsh 的输出复制并粘贴到 /etc/shells 底部,然后保存文件。这会提示你输入 macOS 密码。再次运行 chsh -s 命令,这次应该不会再有抱怨了。记得打开新标签页查看新的 shell。

另一种方法

另一种更改 shell 的方法是通过终端应用程序首选项,在 "Shells open with:(用以下内容打开 shell)"部分选择 "Command (complete path)(命令(完整路径))"单选按钮,如下图所示:

请注意,这不会更改您的默认登录 shell,您可以通过运行 echo $SHELL 来检查。您可以按照以下步骤进行测试:

将登录 shell 设置为 zsh:

sh 复制代码
chsh -s $(which zsh)

在 ~/.zshrc 的顶部添加这一行:

sh 复制代码
echo "hello from zsh"

在 ~/.bash_profile 的顶部添加这一行:

bash 复制代码
echo "hello from bash"

如果文件不存在,可以用 touch 创建:

sh 复制代码
touch ~/.bash_profile

更新终端首选项,使用 /bin/bash 命令打开 shell,如上图所示。

退出并重启终端。

你应该会看到 "hello from bash",但如果运行 echo $SHELL,则会看到 /bin/zsh。

我不确定这是否会影响本地开发,所以我会坚持使用默认设置,并使用 chsh -s 来切换 shell。

如果你不确定如何打开和编辑点文件或隐藏文件(文件名以句点开头的文件,如 .zshrc),请阅读我的 Mac 隐藏文件打开指南。

相关推荐
韦东东13 小时前
万元级边缘算力方案:Mac Mini在几个知识库项目的部署实践
人工智能·macos·大模型·mac mini·边缘算力·知识库应用
小镇学者17 小时前
【python】macos环境升级自己安装的python3
开发语言·python·macos
TESmart碲视17 小时前
解锁多屏办公效率:2026年深度解析EDID技术与KVM切换器解决方案
macos·计算机外设·kvm切换器·tesmart·双屏kvm切换器·tesmart碲视
我的golang之路果然有问题19 小时前
mac 上进行 comfyUI 等绘画的好处以及分享
人工智能·macos·ai作画·人工智能作画·comfy
奔跑的呱呱牛19 小时前
解决MacOS下Chrome嗯下F5不刷新页面的问题
chrome·macos·mac
叶之道19 小时前
MacOS 配置 Qt 开发环境
qt·macos
2501_9160074720 小时前
在没有 Mac 的情况下完成 iOS 应用上架 App Store
android·macos·ios·小程序·uni-app·iphone·webview
软件小滔2 天前
我使用MAC WiFi Explorer Pro完成了一次家庭网络“大扫除”
网络·macos·智能路由器·mac·应用推荐·wifi explorer
不爱吃糖的程序媛2 天前
Kuikly-OH 实践(mac版本)
macos
活蹦乱跳酸菜鱼2 天前
MAC 发出的一个帧(MAC Frame)及其完整的帧格式
网络·macos