
chsh 换成 Fish 之后,仅仅日常手动打开的终端会启用 Fish,系统后台所有 Bash 脚本还是以 Bash 执行,环境彼此独立,更换配置不存在弄坏系统的风险。Ubuntu 安装 Fish Shell
安装方式选择
Ubuntu 官方仓库最为稳妥,但版本相对滞后;
添加 Fish Shell 4.x PPA 既能使用 APT 管理更新,还能第一时间用上最新 4.x 系列的特性。
适用场景 | |||
Ubuntu的 universe 仓库 | apt upgrade | 追求极简维护 | |
Fish Shell 4.x PPA | apt upgrade | Fish 4.x 前沿体验 | |
更新系统包索引
sudo apt update方法 1:通过官方仓库安装 Fish Shell
sudo apt install fish若安装时提示找不到包,需要先激活 Universe 仓库。
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 包会自动保留为回退选项。
sudo apt install software-properties-commonsudo add-apt-repository -y ppa:fish-shell/release-4sudo apt update
apt-cache policy fishsudo apt install fishfish --version将 Fish 设置为默认 Shell
fishexit
command -v fishFISH_PATH="$(command -v fish)"grep -qxF "$FISH_PATH" /etc/shells || printf '%s\n' "$FISH_PATH" | sudo tee -a /etc/shells >/dev/null
chsh -s "$(command -v fish)"
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 即可手动访问。更多详细配置可以参考官方教程和完整文档。
自定义配置文件
(1)Fish 的主配置文件位于~/.config/fish/config.fish,所有自定义环境变量、别名和函数都可以写在这里:
mkdir -p "$HOME/.config/fish"vim "$HOME/.config/fish/config.fish"
(2)建议把交互相关的配置包裹在if status is-interactive块中,避免影响到非交互场景(如脚本运行):
if status is-interactivealias ll='ls -lah'end
(3)修改保存后,执行以下命令重载配置,无需重启终端:
source "$HOME/.config/fish/config.fish"全局变量与缩写
除了手动编辑配置文件,你还可以通过命令行,直接设置全局变量和缩写:
set -Ux EDITOR nanofish_add_path "$HOME/.local/bin"abbr -a gs git statusabbr -a ga git addabbr -a gc git commitset -U fish_greeting
缩写优先级高于别名,键入缩写后敲击空格,自动扩写为完整指令。示例:输入gs并空格,自动展开为git status,大幅提速 Git 日常操作。
迁移 Bash 配置
Fish 并不会自动加载~/.bashrc中的配置,原有的 Bash 别名和环境变量需要你手动转换成 Fish 语法才能使用。你也不必一次性迁移所有配置,只需要把最常用的短命令设置成 Fish 缩写即可。
更新 Fish
通过 APT 或 PPA 安装的 Fish,会随系统更新自动升级。只单独更新 Fish,可以执行:
sudo apt updatesudo apt install --only-upgrade fish fish-common
卸载 Fish
(1)执行以下命令卸载 Fish 主程序:
sudo apt remove fish fish-common(2)清理残留依赖。建议先通过--dry-run确认要删除的包无误后,再执行实际清理:
sudo apt autoremove --dry-runsudo apt autoremove
(3)如果你是通过 PPA 安装的,可以删除源并更新索引:
sudo add-apt-repository -y --remove ppa:fish-shell/release-4sudo apt update
(4)验证 Fish 是否已经完全卸载:
dpkg -l fish fish-common如需体验 Fish,可先在 Ubuntu 环境安装试用,磨合满意后再设为默认 Shell。别名、快捷指令、提示符美化均可后续按需调整;切勿修改 /bin/sh 软链接,即可保证系统原生 Bash 正常运行。
夜雨聆风