
一旦用惯了 Fish Shell 的智能「命令历史记录」、自动补全和上下文提示,就再也回不去了🙂↔️。在 Ubuntu 上安装 Fish Shell 主要有 3 种方式:便捷的 Ubuntu 官方仓库、追求 4.x 新特性的 Fish PPA,以及直接从 GitHub 拉取二进制文件。本文重点介绍前 2 种最常用的安装方法。
Ubuntu 默认使用的是 Bash Shell。但在使用chsh修改默认 Shell 后,Fish 只会接管你的交互式终端入口,系统底层运行的 Bash 脚本完全不受影响。两套环境完全分离,不用担心改崩系统。
Ubuntu 安装 Fish Shell
安装方式选择
具体选哪种安装方式,要看你对 Fish Shell 的版本需求:
- Ubuntu 官方仓库最为稳妥,但版本相对滞后;
- 添加 Fish Shell 4.x PPA 既能使用 APT 管理更新,还能第一时间用上最新 4.x 系列的特性。
| 安装方式 | 包来源 | 升级机制 | 适用场景 |
|---|---|---|---|
| Ubuntu 官方仓库 | Ubuntu 的 universe 仓库 | apt upgrade | 追求极简维护 |
| Fish PPA | Fish Shell 4.x PPA | apt upgrade | Fish 4.x 前沿体验 |
更新系统包索引
sudo apt update
方法 1:通过官方仓库安装 Fish Shell
1以下命令会自动安装fish和fish-common两个组件:
sudo apt install fish
如果安装时提示找不到包,需要先激活 Universe 仓库。
2安装完成后验证版本:
fish --version

具体版本取决于你的 Ubuntu 发行版:Ubuntu 26.04 提供 4.2.x,24.04 提供 3.7.x,22.04 还停留在 3.3.x。想要用上最新 4.x 版本,建议通过 PPA 安装。
方法 2:使用 PPA 安装 Fish 4.x
该 PPA 已经适配了最近 3 代 Ubuntu LTS 版本,安装后原系统自带的 Fish 包会自动保留为回退选项。
1先安装 PPA 管理工具:
sudo apt install software-properties-common
2添加 Fish Shell 4.x PPA 并更新包索引:
sudo add-apt-repository -y ppa:fish-shell/release-4
sudo apt update
3验证源是否添加成功:
apt-cache policy fish
4安装 Fish:
sudo apt install fish
5验证当前安装的版本:
fish --version
将 Fish 设置为默认 Shell
1安装完成后可以先试用,不用直接改成默认 Shell:
fish
2要退出 Fish 回到原来的 Shell,就执行:
exit

3确认 Fish 的安装路径:
command -v fish
4把 Fish 的路径加到/etc/shells白名单:
FISH_PATH="$(command -v fish)"
grep -qxF "$FISH_PATH" /etc/shells || printf '%s\n' "$FISH_PATH" | sudo tee -a /etc/shells >/dev/null
5设置当前用户的默认 Shell 为 Fish:
chsh -s "$(command -v fish)"

6重新登录后验证是否配置成功:
getent passwd "$USER" | cut -d: -f7

Fish 不兼容 POSIX sh语法,千万别把系统/bin/sh的软链接指向 Fish。只要脚本头部的#!/bin/bash标记不变,系统原有 Bash 脚本就能照常运行。
Fish Shell 进阶配置
内置补全和历史记录
Fish 开箱即用的智能补全是核心优势:输入几个字符后,按「右方向键」即可补全灰色的预测内容;按Tab键会展开所有候选选项,能够通吃:命令参数、Git 分支、APT 包名等几乎所有常用场景。
查看文档与可视化配置
Fish 自带完整的离线帮助文档和 Web 可视化配置界面,无需额外安装。执行以下命令即可访问:
# 离线帮助文档
help
# Web 可视化配置
fish_config
执行fish_config会自动打开默认浏览器进入配置页面。如果在无头服务器上运行,复制终端输出的代理 URL 即可手动访问。更多详细配置可以参考官方教程和完整文档。
自定义配置文件
1Fish 的主配置文件位于~/.config/fish/config.fish,所有自定义环境变量、别名和函数都可以写在这里:
mkdir -p "$HOME/.config/fish"
vim "$HOME/.config/fish/config.fish"
2建议把交互相关的配置包裹在if status is-interactive块中,避免影响到非交互场景(如脚本运行):
if status is-interactive
alias ll='ls -lah'
end
3修改保存后,执行以下命令重载配置,无需重启终端:
source "$HOME/.config/fish/config.fish"
全局变量与缩写
除了手动编辑配置文件,你还可以通过命令行,直接设置全局变量和缩写:
set -Ux EDITOR nano
fish_add_path "$HOME/.local/bin"
abbr -a gs git status
abbr -a ga git add
abbr -a gc git commit
set -U fish_greeting
缩写的优先级高于别名。输入缩写后按「空格键」,就会自动展开成完整命令。比如:输入gs按空格,就会变成 git status,是提升 Git 操作效率的利器。
迁移 Bash 配置
Fish 并不会自动加载~/.bashrc中的配置,原有的 Bash 别名和环境变量需要你手动转换成 Fish 语法才能使用。你也不必一次性迁移所有配置,只需要把最常用的短命令设置成 Fish 缩写即可。
更新 Fish
通过 APT 或 PPA 安装的 Fish,会随系统更新自动升级。只单独更新 Fish,可以执行:
sudo apt update
sudo apt install --only-upgrade fish fish-common
卸载 Fish
1执行以下命令卸载 Fish 主程序:
sudo apt remove fish fish-common
2清理残留依赖。建议先通过--dry-run确认要删除的包无误后,再执行实际清理:
sudo apt autoremove --dry-run
sudo apt autoremove
3如果你是通过 PPA 安装的,可以删除源并更新索引:
sudo add-apt-repository -y --remove ppa:fish-shell/release-4
sudo apt update
4验证 Fish 是否已经完全卸载:
dpkg -l fish fish-common
如果你对 Fish Shell 感兴趣,可以在 Ubuntu 上装好后先试用几天。确认所有常用操作都能正常进行,再设置成默认 Shell。别名、缩写、提示符这些个性化配置可以慢慢打磨,只要不修改系统/bin/sh的软链接,原有 Bash 生态的运行就不会有任何影响。










最新评论
有多亮,是blingbling的吗🤣
这个网站眼前一亮
不要装,千万不要装,无法自定义鼠标指针,主题和壁纸需要重新设置,但是鼠标指针完全被像素版大白指针替代,无法更改。
鼠标指针也没了qwq