我不喜欢每次启动终端时都重新输入鱼。我希望Fish默认开启。如何将Fish shell设置为Mac上的默认shell ?
当前回答
可以使用chsh更改用户的shell。
例如,运行以下代码将shell更改为Zsh
chsh -s /bin/zsh
正如Lorin在手册中所描述的,如果操作系统不知道shell,您必须将其添加到其已知列表:/etc/shell .
其他回答
chsh程序将允许您更改默认shell。它需要可执行文件的完整路径,所以如果你的shell是Fish,那么当你输入哪个Fish时,它会希望你提供给定的输出。
您将看到以“Shell:”开头的一行。如果你从未编辑过它,它很可能会显示“Shell: /bin/bash”。将/bin/bash路径替换为所需shell的路径。
使用dscl:
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中的write命令)。
可以使用chsh更改用户的shell。
例如,运行以下代码将shell更改为Zsh
chsh -s /bin/zsh
正如Lorin在手册中所描述的,如果操作系统不知道shell,您必须将其添加到其已知列表:/etc/shell .
这些适用于macOS v10.12.5 (Sierra) (16F73),也可能适用于其他一些最新和即将推出的macOS版本。
CHSH不足以改变默认shell。确保你按Command +,当你的终端是打开的,并改变' shell open with'选项为'Default login shell '。 如果是Bash,请确保执行echo $BASH_VERSION以确认您正在运行预期的Bash版本。Bash—version没有提供正确的信息。
如何在现代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"
推荐文章
- 如何从终端/命令行调用VS代码编辑器
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- “你有邮件”的消息在终端,os X
- Mac OS X中的环境变量
- 如何从macOS完全卸载蟒蛇
- 如何配置Mac OS X术语,使git有颜色?
- 如何使制表符4个空间而不是8个空间在纳米?
- 我如何确定文件编码在OS X?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 如何强制从另一个SSH会话分离屏幕?
- 如何从终端机发送电子邮件?
- 在Mac OS X上哪里安装Android SDK ?
- Mac/OS X上的/var/lib/docker在哪里