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


当前回答

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

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

其他回答

编辑文件.zshrc并将其更改为

执行 /bin/bash

或者你喜欢什么壳都行。

好处:它不需要root访问权限,可以在所有版本的OS X上运行。

唯一的问题是它不会以这种方式读取文件.bash_profile;只有当Bash作为交互式登录shell运行时,才会读取它。你必须从文件.bashrc中包含它,就像这样:

if [[ "$OSTYPE" == "darwin"* ]]; then
    #local hack on osx.
    if [[ -f $HOME/.bash_profile ]]; then
      . $HOME/.bash_profile
    fi
fi

另外:osx附带的bash版本有点过时,最好使用brew install bash安装一个最新版本的bash;在这种情况下,.zshrc文件应该运行正确的bash版本。目前是

exec /usr/local/Cellar/bash/5.1.8/bin/bash

要更改Mac上的默认shell,运行以下命令:

chsh -s <name-of-shell>

你可以选择的shell列表有:

/bin/bash /bin/csh /bin/dash /bin/ksh /bin/sh /bin/tcsh /bin/zsh

因此,如果你想从/bin/zsh shell,你的命令将如下所示:

chsh -s /bin/zsh

您可以通过运行以下命令查看系统中所有可用的shell:

cat /etc/shells

chsh程序将允许您更改默认shell。它需要可执行文件的完整路径,所以如果你的shell是Fish,那么当你输入哪个Fish时,它会希望你提供给定的输出。

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

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

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

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

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

chsh -s /bin/zsh

正如Lorin在手册中所描述的,如果操作系统不知道shell,您必须将其添加到其已知列表:/etc/shell .