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


当前回答

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

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

其他回答

输入fish检查是否正确安装,如果安装正确,输入exit 键入哪条鱼,复制路径。 输入sudo sh -c 'echo <your-fish-path-here> >> /etc/shell ' 重新启动终端 输入CHSH -s <your-fish-path-here> 重新启动终端 现在应该可以了。

对我来说,唯一有效的方法就是把所有这些方法结合起来。

首先,我必须将Fish可执行文件的路径添加到/etc/shell文件中 然后运行chsh -s /usr/local/bin/fish 最后,我输入Command +,并将/usr/local/bin/fish添加到默认路径

只有在我完成这三件事之后,Fish才开始作为默认的新终端窗口弹出。

如何在现代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"

在macOS v10.14 (Mojave)上,我必须做以下事情(以Z shell (zsh)为例):

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

从终端:

将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,退出并再次登录