我知道我可以在终端偏好设置中设置“打开的 Shell”,但我很好奇是否有任何系统范围的方法来设置它(类似于在某些 Unix 中更新 /etc/passwd)。
答案1
答案2
请注意,您只能更改为 中列出的 shell /etc/shells
。这通常没问题,但这意味着如果您想安装 Bash 4(从 Homebrew、MacPorts 或编译您自己的),您需要在 中添加一行/etc/shells
。(我几周前遇到过这个问题,并认为这可能会帮助其他人了解……)
编辑:蒂姆·史密斯指出,如果您通过 以 root 身份/etc/shells
运行,则可以绕过此限制。例如,即使中未列出,也可以工作。我更喜欢编辑,但最终,这是两种方式的一种用途,因为您无法以普通用户身份进行编辑。所以也许其中有六分之一,其他有六分之一。chsh
sudo
sudo chsh -s /usr/local/bin/my_shell $USER
my_shell
/etc/shells
/etc/shells
sudo
/etc/shells
答案3
要使用 Mac OS X GUI 执行此操作:
- 打开“系统偏好设置”。
- 打开“帐户”/“用户和组”偏好设置窗格,并解锁偏好设置窗格(如果适用)。
- 在您想要更改 shell 的用户上,control单击或右键单击该用户并选择“高级选项...”
- 将“登录 Shell:”更改为您想要使用的 Shell。
值得注意的是,如果您不习惯使用终端,则可以在此位置更改主目录、UUID、用户 ID、组 ID 和简称。有一个类似的问题位于此处也一样。
答案4
对于较新的和自制安装的 shell:
编辑
/etc/shells
,将你的新 shell 添加到列表中- (或者
sudo vim /etc/shells
您喜欢的编辑器) - 或者
echo '/usr/local/bin/fish' | sudo tee -a /etc/shells ; cat /etc/shells
- (或者
然后你可以
chsh -s /usr/local/bin/fish
与其他答案不同,我发现(macOs Monterey 2022)我必须提供chsh
shell 的完整路径。同样,如果 bash 是我的 shell,则默认 Apple 消息显示
要更新你的帐户以使用 zsh,请运行
chsh -s /bin/zsh
。