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


当前回答

如何在现代macOS上获得最新版本的Bash(在macOS v10.14 (Mojave)上测试)。

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

然后你就可以得到vim风格的tab补全了,它只在Bash >= 4上可用(Homebrew的当前版本是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"

其他回答

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

在General选项卡,shell打开,从默认登录shell更改为命令: 并使用/bin/fish

从终端:

将Fish添加到/etc/shell,这将需要一个管理密码: Sudo echo /usr/local/bin/fish >> /etc/shell 使用chsh将Fish设置为默认shell: CHSH -s /usr/local/bin/fish


从系统首选项:

用户和组→按下当前用户→高级选项… 修改Login shell为/usr/local/bin/fish 按OK,退出并再次登录

这些适用于macOS v10.12.5 (Sierra) (16F73),也可能适用于其他一些最新和即将推出的macOS版本。

CHSH不足以改变默认shell。确保你按Command +,当你的终端是打开的,并改变' shell open with'选项为'Default login shell '。 如果是Bash,请确保执行echo $BASH_VERSION以确认您正在运行预期的Bash版本。Bash—version没有提供正确的信息。

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

您可以检查鱼位置,鱼。对我来说,Fish在/opt/homebrew/bin/ Fish中,这是我添加到etc/shell的位置。

这里有另一种方法:

假设你用MacPorts安装了它,可以这样做:

sudo port install fish

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

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

一旦你完成了这些,你可以通过系统首选项→帐户来更改shell。单击Lock以允许更改。右键单击该帐户,并选择“高级选项…”。在“Login shell”字段中,将路径添加到Fish。