如何在Mac上设置我的默认shell?
每次我启动terminal,我都不喜欢重新打字。 我想默认fish
。 我怎样才能将鱼壳设置为Mac上的默认shell?
我想在这里添加两件重要的事情。 这些适用于MacOS Sierra 10.12.5(16F73),也可能适用于其他近期和即将推出的MacOS版本。
1) chsh
不足以改变默认的shell。 确保在terminal打开的情况下按下Command
+ ,
并将“Shells open with”选项更改为“Default login shell”。
2)如果是bash,请确保执行echo $BASH_VERSION
以确认您正在运行bash的预期版本。 bash --version
不会给你正确的信息。
1. sudo nano / etc / shells
2.将/ usr / local / bin / fish添加到您的shell列表中
3. chsh -s / usr / local / bin / fish
您可以使用chsh来更改用户的shell。
运行以下代码,例如,将shell更改为Zsh
chsh -s /bin/zsh
如联机帮助页和Lorin中所述,如果操作系统不知道shell,则必须将其添加到其已知列表: /etc/shells
。
从docker:
-
将Fish添加到
/etc/shells
,这将需要一个pipe理密码:sudo echo /usr/local/bin/fish >> /etc/shells
-
使用
chsh
将Fish设置为默认shell:chsh -s /usr/local/bin/fish
从系统偏好设置:
-
用户和组→按住Ctrl键并单击当前用户→高级选项…
-
将loginshell更改为
/usr/local/bin/fish
-
按OK,注销并重新login
这是另一种方法:
假设您使用MacPorts安装它,可以通过以下操作完成:
sudo port install fish
你的shell将位于/opt/local/bin/fish
。
你需要告诉OSX这是一个有效的shell。 为此,请将此path添加到/etc/shells
文件的末尾。
完成此操作后,可以转到“系统首选项” – >“帐户”来更改shell。 点击locking以允许更改。 用鼠标右键单击该帐户,然后select“高级选项…”。 在“loginshell”字段中,添加鱼的path。
Mac OS X:如何更改terminalshell
唯一对我有用的是所有这些方法的组合。
-
首先,我必须将鱼添加到
/etc/shells
文件 -
然后我运行
chsh -s /usr/local/bin/fish
-
最后,我键入Command + ,并将
/usr/local/bin/fish
到默认path
只有在完成所有三件事情之后,鱼才会开始popup作为新的terminal窗口的默认值。
chsh
程序会让你改变你的默认shell。 它将需要可执行文件的完整path,所以如果你的shell是fish
那么当你inputwhich fish
时候,它会希望你提供给出的输出。
你会看到一行以“ Shell:
”开头的行。 如果你从来没有编辑过,那很可能是“ Shell: /bin/bash
”。 将该/bin/bash
pathreplace为所需shell的path。
在terminal中,使用Command + ,打开terminal首选项。
在设置选项卡上,select其中一个主题,然后select右侧的shell选项卡。
你可以设置自动启动命令fish
。
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
的写入命令)。
- 打开您的terminal,然后按命令 + , (逗号)。 这将打开一个偏好窗口。
- 第一个标签是“常规”。
- find'壳打开'设置,并select第二个选项需要完整的path到壳。
- 将链接粘贴到您的鱼命令,通常是
/usr/local/bin/fish
。
我正在使用macOS Sierra。