如何在 Mac OS X 中设置我的 shell?

如何在 Mac OS X 中设置我的 shell?

我知道我可以在终端偏好设置中设置“打开的 Shell”,但我很好奇是否有任何系统范围的方法来设置它(类似于在某些 Unix 中更新 /etc/passwd)。

答案1

chsh像这样使用该实用程序:

chsh -s bash

与 Linux 相比, Apple 在 Mac OS X 上做了chsh一些改动chsh。您可以在chsh Mac OS X 手册页

答案2

请注意,您只能更改为 中列出的 shell /etc/shells。这通常没问题,但这意味着如果您想安装 Bash 4(从 Homebrew、MacPorts 或编译您自己的),您需要在 中添加一行/etc/shells。(我几周前遇到过这个问题,并认为这可能会帮助其他人了解……)

编辑蒂姆·史密斯指出,如果您通过 以 root 身份/etc/shells运行,则可以绕过此限制。例如,即使中未列出,也可以工作。我更喜欢编辑,但最终,这是两种方式的一种用途,因为您无法以普通用户身份进行编辑。所以也许其中有六分之一,其他有六分之一。chshsudosudo chsh -s /usr/local/bin/my_shell $USERmy_shell/etc/shells/etc/shellssudo/etc/shells

答案3

要使用 Mac OS X GUI 执行此操作:

  1. 打开“系统偏好设置”。
  2. 打开“帐户”/“用户和组”偏好设置窗格,并解锁偏好设置窗格(如果适用)。
  3. 在您想要更改 shell 的用户上,control单击或右键单击该用户并选择“高级选项...”
  4. 将“登录 Shell:”更改为您想要使用的 Shell。

值得注意的是,如果您不习惯使用终端,则可以在此位置更改主目录、UUID、用户 ID、组 ID 和简称。有一个类似的问题位于此处也一样。

答案4

对于较新的和自制安装的 shell:

  1. 编辑/etc/shells,将你的新 shell 添加到列表中

    • (或者sudo vim /etc/shells您喜欢的编辑器)
    • 或者echo '/usr/local/bin/fish' | sudo tee -a /etc/shells ; cat /etc/shells
  2. 然后你可以chsh -s /usr/local/bin/fish

与其他答案不同,我发现(macOs Monterey 2022)我必须提供chshshell 的完整路径。同样,如果 bash 是我的 shell,则默认 Apple 消息显示

要更新你的帐户以使用 zsh,请运行chsh -s /bin/zsh

相关内容