如何在Mac上设置我的默认shell?

每次我启动terminal,我都不喜欢重新打字。 我想默认fish 。 我怎样才能将鱼壳设置为Mac上的默认shell?

我想在这里添加两件重要的事情。 这些适用于MacOS Sierra 10.12.5(16F73),也可能适用于其他近期和即将推出的MacOS版本。

1) chsh不足以改变默认的shell。 确保在terminal打开的情况下按下Command + ,并将“Shells open with”选项更改为“Default login shell”。

2)如果是bash,请确保执行echo $BASH_VERSION以确认您正在运行bash的预期版本。 bash --version不会给你正确的信息。

1. sudo nano / etc / shells 在这里输入图像说明

2.将/ usr / local / bin / fish添加到您的shell列表中 在这里输入图像说明

3. chsh -s / usr / local / bin / fish

您可以使用chsh来更改用户的shell。

运行以下代码,例如,将shell更改为Zsh

 chsh -s /bin/zsh 

如联机帮助页和Lorin中所述,如果操作系统不知道shell,则必须将其添加到其已知列表: /etc/shells

从docker:

  1. 将Fish添加到/etc/shells ,这将需要一个pipe理密码:

     sudo echo /usr/local/bin/fish >> /etc/shells 
  2. 使用chsh将Fish设置为默认shell:

     chsh -s /usr/local/bin/fish 

从系统偏好设置:

  1. 用户和组→按住Ctrl键并单击当前用户→高级选项…

  2. 将loginshell更改为/usr/local/bin/fish

    登录shell

  3. 按OK,注销并重新login

这是另一种方法:

假设您使用MacPorts安装它,可以通过以下操作完成:

 sudo port install fish 

你的shell将位于/opt/local/bin/fish

你需要告诉OSX这是一个有效的shell。 为此,请将此path添加到/etc/shells文件的末尾。

完成此操作后,可以转到“系统首选项” – >“帐户”来更改shell。 点击locking以允许更改。 用鼠标右键单击该帐户,然后select“高级选项…”。 在“loginshell”字段中,添加鱼的path。

Mac OS X:如何更改terminalshell

唯一对我有用的是所有这些方法的组合。

  1. 首先,我必须将鱼添加到/etc/shells文件

  2. 然后我运行chsh -s /usr/local/bin/fish

  3. 最后,我键入Command + 并将/usr/local/bin/fish到默认path

只有在完成所有三件事情之后,鱼才会开始popup作为新的terminal窗口的默认值。

chsh程序会让你改变你的默认shell。 它将需要可执行文件的完整path,所以如果你的shell是fish那么当你inputwhich fish时候,它会希望你提供给出的输出。

你会看到一行以“ Shell: ”开头的行。 如果你从来没有编辑过,那很可能是“ Shell: /bin/bash ”。 将该/bin/bashpathreplace为所需shell的path。

在terminal中,使用Command + 打开terminal首选项。

在设置选项卡上,select其中一个主题,然后select右侧的shell选项卡。

你可以设置自动启动命令fish

 heimdall:~ leeg$ dscl Entering interactive mode... (type "help" for commands) > cd /Local/Default/Users/ /Local/Default/Users > read <<YOUR_USER>> [...] UserShell: /bin/bash /Local/Default/Users > 

只需更改该值(使用dscl的写入命令)。

  1. 打开您的terminal,然后按命令 + (逗号)。 这将打开一个偏好窗口。
  2. 第一个标签是“常规”。
  3. find'壳打开'设置,并select第二个选项需要完整的path到壳。
  4. 将链接粘贴到您的鱼命令,通常是/usr/local/bin/fish

我正在使用macOS Sierra。