我不想每次打开终端都重新输入fish
。我想让Fish shell成为默认选项。如何在Mac上设置Fish shell为默认shell?
1. sudo nano /etc/shells
2. 将/usr/local/bin/fish添加到您的shell列表中
3. chsh -s /usr/local/bin/fish
从终端操作:
将Fish添加到/etc/shells
,需要管理员密码:
sudo echo /usr/local/bin/fish >> /etc/shells
使用chsh
将Fish设置为默认shell:
chsh -s /usr/local/bin/fish
从“系统偏好设置”中:
用户与群组 → 对当前用户进行 ctrl-单击 → 高级选项...
将登录 shell 更改为 /usr/local/bin/fish
点击“确定”,注销并重新登录
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
。 - purpletonicecho /usr/local/bin/fish | sudo tee -a /etc/shells
。 - mroach你可以使用chsh来更改用户的shell。
例如,运行以下代码可将您的shell更改为Zsh:
chsh -s /bin/zsh
如Lorin所述,根据手册,如果操作系统不知道shell,您需要将其添加到已知列表中:/etc/shells
。
chsh: /usr/local/bin/fish: non-standard shell
的报错。解决方法是按照 @lorin-hochstein 的回答,将其添加到 /etc/shells
文件中。 - lmsurprenant以下内容适用于macOS v10.12.5 (Sierra) (16F73)以及可能的其他近期和即将发布的macOS版本。
chsh
并不能足以更改默认shell。请确保您在终端打开时按下 Command + , 并将“以默认登录shell方式打开”的选项更改为“Default login shell”。
对于Bash,请确保执行 echo $BASH_VERSION
以确认运行所需版本的Bash。 bash --version
并不能给出正确的信息。
以下是另一种方法:
假设您是使用 MacPorts 进行安装的,可以通过以下方式完成安装:
sudo port install fish
您的shell将位于/opt/local/bin/fish
。
您需要告诉OS X这是一个有效的shell。为此,请将此路径添加到/etc/shells
文件的末尾。
完成后,您可以通过转到系统偏好设置→账户来更改shell。单击锁定以允许更改。右键单击帐户,选择"高级选项..."。在"登录shell"字段中,添加Fish的路径即可。
macports
安装完成后,请按照 port notes fish
的说明进行操作。目前,说明中指出需要执行 sudo chpass -s /opt/local/bin/fish ${USER}
命令。 - Y. E.查看此屏幕截图,其中zsh
被设置为默认值。
我正在使用macOS v10.12(Sierra)。 它也可用于macOS v10.14(Mojave)。
对我有用的唯一方法是将所有这些方法结合起来使用。
首先,我必须将Fish可执行文件的路径添加到/etc/shells
文件中。
然后我运行了chsh -s /usr/local/bin/fish
最后,我键入 Command + , 并在默认路径中添加/usr/local/bin/fish
只有在完成这三件事之后,Fish才会成为新终端窗口的默认选项。
fish
检查是否已经正确安装,如果已正确安装,请输入exit
which fish
,复制该路径。sudo sh -c 'echo <your-fish-path-here> >> /etc/shells'
chsh -s <your-fish-path-here>
/opt/homebrew/bin/fish
。 - Ash Singhbash
和zsh
中使用which
来找到正确的位置。加上其他18个答案,几乎不可能信息没有被重复多次了 ;-) - NotTheDr01dszsh
)为例):brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
。它已经存在于 macOS Mojave 上。在 Mojave 中捆绑,是 Catalina 的默认选项。 - Basil Bourque