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

时间:2009-01-17 12:21:23

标签: macos terminal fish

我不喜欢每次开始终端时重新输入鱼。我希望默认启用fish。如何在Mac上将fish shell设置为我的默认shell?

17 个答案:

答案 0 :(得分:208)

<强> 1。 sudo nano / etc / shells enter image description here

<强> 2。将/ usr / local / bin / fish添加到您的shell列表中 enter image description here

第3。 chsh -s / usr / local / bin / fish

答案 1 :(得分:66)

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

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

chsh -s /bin/zsh

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

答案 2 :(得分:62)

从终端:

  1. 将鱼添加到/etc/shells,这需要管理密码:

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

    chsh -s /usr/local/bin/fish
    

  3. 来自系统偏好设置:

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

    2. 将登录shell更改为/usr/local/bin/fish

      login shell

    3. 按确定,然后再次注销

答案 3 :(得分:22)

这些适用于MacOS Sierra 10.12.5(16F73)以及其他一些近期和即将推出的MacOS版本。

  1. chsh不足以更改默认shell。确保在终端打开时按 Command + ,然后用&#39;更改“打开的贝壳”。默认登录shell的选项。&#39;

  2. 如果是bash,请确保执行echo $BASH_VERSION以确认您运行的是预期版本的bash。 bash --version未向您提供正确的信息。

答案 4 :(得分:20)

这是另一种方法:

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

sudo port install fish

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

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

完成此操作后,您可以转到系统偏好设置 - &gt;更改外壳程序。帐户。单击“锁定”以允许更改。右键单击该帐户,然后选择“高级选项...”。在“登录shell”字段中,添加fish的路径。

答案 5 :(得分:10)

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

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

  2. 然后我跑了chsh -s /usr/local/bin/fish

  3. 最后,我输入 Command + 并将/usr/local/bin/fish添加到默认路径

  4. 只有在完成所有这三件事之后,鱼才开始弹出作为新终端窗口的默认设置。

答案 6 :(得分:9)

答案 7 :(得分:6)

在macOS Mojave上,我必须执行以下操作(以zsh为例):

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

答案 8 :(得分:4)

chsh程序将允许您更改默认shell。它需要可执行文件的完整路径,因此如果您的shell为fish,那么当您键入which fish时,它会要求您提供输出。

您会看到以“Shell:”开头的行。如果您从未编辑过它,则很可能会说“Shell: /bin/bash”。将/bin/bash路径替换为所需shell的路径。

答案 9 :(得分:4)

  1. 打开终端并按命令 + (逗号)。这将打开一个首选项窗口。
  2. 第一个标签是“常规”。
  3. 找到'shell打开'设置并选择第二个选项,它需要完整的shell路径。
  4. 将链接粘贴到fish命令,该命令通常为/usr/local/bin/fish
  5. 我正在使用macOS Sierra。

答案 10 :(得分:4)

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

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

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

答案 11 :(得分:2)

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中的write命令)。

答案 12 :(得分:0)

如果您在使用其他方法时遇到麻烦,请在mac Mojave上工作,但通常应该可以工作。

which fish

将输出路径添加到“系统偏好设置>用户和组>右键单击用户,高级选项”,将结果粘贴到“登录外壳程序:”中

答案 13 :(得分:0)

如何在现代macOS上获取最新版本的bash(在Mojave上测试)。

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

然后您就可以使用get vim style tab completion了,它仅在bash> = 4上可用(brew中的当前版本为5.0.2

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"

答案 14 :(得分:0)

这对我来说是全新安装Mac osx(sierra)的工作:

  1. 将当前用户定义为shell的所有者
sudo chown $(whoami) /etc/shells
  1. 将鱼添加到/ etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
  1. 使用chsh将Fish设置为默认外壳
chsh -s /usr/local/bin/fish
  1. 将root定义为shell的所有者
sudo chown root /etc/shells

答案 15 :(得分:0)

要在Mac上更改默认Shell,请运行以下命令:

chsh -s <name-of-shell>

您可以选择的外壳列表为:

  1. / bin / bash
  2. / bin / csh
  3. / bin /破折号
  4. / bin / ksh
  5. / bin / sh
  6. / bin / tcsh
  7. / bin / zsh

因此,如果您要从/ bin / zsh shell更改,您的命令将类似于:

chsh -s /bin/zsh

您可以通过运行以下命令查看系统上所有可用的外壳程序:

cat /etc/shells

答案 16 :(得分:0)

M1 mac 上的 Homebrew 应该使用 /opt/homebrew 而不是 /usr/local

您可以查看鱼的位置 which fish。对我来说,鱼位于 /opt/homebrew/bin/fish,这是我添加到 etc/shells

的位置