系统极客一直在努力
专注操作系统及软件使用技能

Ubuntu 安装 Fish Shell 指南:安装方法 + 进阶配置

Fish Shell

一旦用惯了 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 PPAFish Shell 4.x PPAapt upgradeFish 4.x 前沿体验

更新系统包索引

sudo apt update

方法 1:通过官方仓库安装 Fish Shell

1以下命令会自动安装fishfish-common两个组件:

sudo apt install fish

如果安装时提示找不到包,需要先激活 Universe 仓库

2安装完成后验证版本:

fish --version
在 Ubuntu 上安装并查看 Fish Shell 版本
在 Ubuntu 上安装并查看 Fish Shell 版本

具体版本取决于你的 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
进入和退出 Fish 交互
进入和退出 Fish 交互

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)"
将 Fish 设置为默认 Shell
将 Fish 设置为默认 Shell

6重新登录后验证是否配置成功:

getent passwd "$USER" | cut -d: -f7
验证默认 Shell
验证默认 Shell

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 生态的运行就不会有任何影响。

赞(1)
分享到

评论 抢沙发