如何在Mac OS X中设置外壳?


21

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

Answers:


24

chsh像这样使用实用程序:

chsh -s bash

chshchsh您在Linux中看到的相比,苹果在Mac OS X上做了一些改动。您可以在chsh Mac OS X手册页中阅读它们的内容。


在这里,我发现某些OSX专用实用程序有些复杂,呵呵。谢谢。
NALL

@john-博学多才:)
akira

是的,我上次也知道答案,我被殴打了!:(
约翰T

19

请注意,仅允许您更改为中列出的shell /etc/shells。通常这很好,但这意味着,如果要安装Bash 4(通过Homebrew,MacPorts或自己编译),则需要在上添加一行/etc/shells。(几周前我遇到了这个问题,并认为这可能会帮助其他人知道...)

编辑蒂姆·史密斯(Tim Smith)指出,/etc/shells如果您chsh通过root以root身份运行,则可以绕开限制sudosudo chsh -s /usr/local/bin/my_shell $USER即使my_shell未在中列出,Eg 也能正常工作/etc/shells。我更喜欢编辑/etc/shells,但是最后,这是sudo两种方式的一种用法,因为您不能/etc/shells以普通用户的身份进行编辑。因此,可能是六个,另一个是六个。


/etc/shells如果不需要,为什么要更改?为了保持理智,我宁愿将系统文件保持不变。
ma11hew28'2015-10-19

@MattDiPasquale我不确定您所说的“理智”是什么意思。/etc/shells是系统上定义可识别外壳程序的文件。我更改该文件是因为我想将外壳添加到已识别外壳的列表中。对我来说似乎很合理。
Telemachus 2015年

好alt。出于某种原因,chsh对我不起作用。我懂了 ; chsh: bash: non-standard shell
RyBolt '16

@RyBolt对:原因可能是我在答案中提到的。不能使用chsh,如果你正在尝试使用未在上市壳孤独/etc/shells
Telemachus's

@Telemachus,我只是尝试更改为默认Mac OSX构建随附的原始bash shell。也许这/etc/shells对我来说似乎并不奇怪。
RyBolt '16

10

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

  1. 打开“系统偏好设置”。
  2. 打开“帐户” /“用户和组”首选项窗格,然后解锁首选项窗格(如果适用)。
  3. 在您要更改外壳control的用户上,+单击或右键单击该用户,然后选择“高级选项...”。
  4. 上面显示“ Login Shell:”的地方,将其更改为您要使用的shell。

值得注意的是,如果您对终端不满意,可以在此位置更改主目录,UUID,用户ID,组ID和简称。还有一个类似的问题就设在这里为好。


5

使用上面的答案,我收到一条错误消息:

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

要变通解决此问题:

sudo chsh -s zsh $(whoami)

whoami 子外壳程序中的内容是为您的用户而不是根用户更改外壳程序。

如果您正在使用自制软件,则还有另外一件事。当您以root身份运行命令(使用sudo)时,zsh指向/ bin / zsh,它是OSX随附的,可能已过时。要使用通过自制程序安装的最新版本,请使用以下命令:

sudo chsh -s $(which zsh) $(whoami)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.