Friendly Interactive Shell(通常称为FISH)是用于UNIX和类UNIX操作系统的Shell,它是根据GNU通用公共许可证v2发布的。
FISH是一种用户友好的交互式Shell,旨在与任何其它Linux Shell(如bash或ZSH)配合使用。它的设计方式是让用户获得易于发现、记住和使用的强大功能。
当然,与其它Shell默认禁用各种功能以节省系统资源不同,FISH默认启用所有功能,以便用户可以充分利用它。以下是Fish Shell的一些主要功能:
- 交互性和用户友好性:Fish的目标是让初学者容易上手,让有经验的用户感到舒适。
- 语法高亮显示:Fish Shell为命令提供语法高亮显示,使其更容易区分命令的不同部分并识别错误。
- 自动建议:Fish根据用户的命令历史记录和可用的系统命令在键入时建议命令和参数,这可以帮助加快命令输入速度并减少错误。
- 强大的Tab补全功能:Fish提供智能Tab补全功能,使用户可以更轻松地完成命令行中的命令、文件路径和其他元素。
- 脚本语言:Fish带有自己的脚本语言,其设计比其它Shell的脚本语言更简单。
- 无需外部插件:Fish拥有丰富的内置功能,减少了对外部插件的需求,它旨在提供一套全面的开箱即用的功能。
- 通用变量:Fish支持通用变量,可以在不同会话之间共享。
- 丰富的内置命令集:Fish包含各种有用的内置命令,可以简化常见任务,减少对外部程序的依赖。
在将Fish安装到Linux系统上之前,可以在Web浏览器中尝试体验Fish相关功能,看看它的魅力之处,地址是:https://rootnroll.com/d/fish-shell/。
在Linux中安装Fish Shell
在Debian上安装Fish Shell
将以下存储库添加到Debian并手动安装,具体如下:
----------------在Debian12上---------------- echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:3.list curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg > /dev/null sudo apt update sudo apt install fish
----------------在Debian 11上--------------- echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_11/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:3.list curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_11/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg > /dev/null sudo apt update sudo apt install fish
echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:3.list curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg > /dev/null sudo apt update sudo apt install fish
在Ubuntu和Linux Mint上安装Fish Shell
在Ubuntu和Linux Mint(所有受支持的版本)上执行以下命令:
sudo apt-add-repository ppa:fish-shell/release-3 sudo apt update sudo apt install fish
在Fedora上安装Fish Shell
在Fedora上,以 root 身份运行以下命令。
----------------在Fedora 39上---------------- dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:3/Fedora_39/shells:fish:release:3.repo dnf install fish
----------------在Fedora 38上---------------- dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:3/Fedora_38/shells:fish:release:3.repo dnf install fish
----------------在 Fedora 37上---------------- dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:fish:release:3/Fedora_37/shells:fish:release:3.repo dnf install fish
在CentOS上安装Fish Shell
在CentOS-9 Stream上,以root身份运行以下命令:
cd /etc/yum.repos.d/ wget https://download.opensuse.org/repositories/shells:fish:release:3/CentOS-9_Stream/shells:fish:release:3.repo yum install fish
在RHEL上安装Fish Shell
在RHEL发行版上,以root身份运行以下命令:
sudo dnf install fish
在Arch Linux上安装Fish Shell
对于Arch和基于Arch的发行版,可以运行以下命令来安装fish:
pacman -S fish
在Linux中使用Fish Shell
第一次启动Fish时,应该在终端上看到以下内容:
fish
检查安装的fish的版本,输入以下命令:
echo $FISH_VERSION
接下来看看几个典型案例,看看它自动工作的过程:
date Desktop locale ...
寻求帮助,你将在默认HTTP Web浏览器中获得相关帮助:
help
使用高级选项卡自动完成,然后使用不完整的字符串/命令自动搜索(模糊匹配):
tty
根据用户类型突出显示语法:
/usr/bin/calendar
智能实时自动选色:
echo "I am loving FISH <3"
可以查看上次运行命令的退出状态:
echo $status
将FISH设置为默认shell:
chsh -s /usr/bin/fish
出现提示时输入密码:
要切换回以前的shell,请执行以下操作:
chsh -s /bin/bash
如果任何其它shell是你的默认 shell,请将“/bin/bash”替换为你的 shell。例如,如果是zsh则,那么输入:
chsh -s /bin/zsh
注意:进入之前请检查两次shell的路径。如果你不小心输入了错误的shell路径,您将被强制退出shell。如果你使用管理员帐户执行此操作,则需要重置管理员密码,然后更改shell。为了摆脱这些麻烦,所以在输入之前必须格外小心。
总结
Fish Shell提供清晰且交互式的输出,这将改变你查看Linux Shell的方式。如此多的颜色、缩进、代码突出显示、自动完成、建议和其它功能让你可以专注于想要实现的目标,而不是如何实现它。对于那些说Linux命令行很无聊的人来说,Fish就是一个很不错的例子。
如果你是狂热的Linux用户并且是Linux命令行的粉丝,那么Fish Shell值得一试,它不会让你失望的,或许会改变你对Linux Shell命令行枯燥无味的一些看法。