Linux 下载、安装 fzf v0.74.2(附安装包fzf-0.74.2-linux_amd64.tar.gz)
文章目录

1. fzf 简介
fzf 是韩国开发者 Junegunn Choi 用 Go 语言编写的命令行模糊查找器(fuzzy finder),自 2013 年创建以来已持续维护十余年,GitHub 上积累了约 8 万颗星标,被公认为终端用户最不可或缺的命令行工具之一。它采用 MIT 开源许可证,以单个静态编译的二进制文件分发,无任何运行时依赖。作者 Junegunn Choi 同时也是极简 Vim 插件管理器 vim-plug 的作者,其开发的 fzf.vim 插件同样广受欢迎。
fzf 要解决的,是 Linux 终端里一个很常见、又很头疼的问题:面前有一长串东西要挑选时,怎么快速挑出想要的那一个。
举个例子:你想打开一个文件,但只记得名字里有 report;你想从几百条历史命令里找回上周敲过的那个部署命令;你想在几十个 docker 容器里找到名字含 db 的那个。过去只能一行行翻、靠眼睛找。而 fzf 做的事情很简单——它把这份列表展示成一个可以即时搜索的界面,你输入几个记得的关键字(哪怕记不全、顺序不对),它立刻把匹配项筛出来,回车即选中。
fzf 本身不关心列表里装的是什么。你把什么数据喂给它(文件、命令历史、进程、git 提交、服务器地址……),它就在这份数据里帮你筛选。所以它被称为"终端里的搜索引擎":列表内容由你决定,筛选体验由 fzf 负责。也正因为它只管"筛选加选择"这一件事,可以和任何命令组合使用,成为日常终端操作里最常用的那块积木。
fzf 的核心特点:
- 便携(Portable):单个二进制文件,下载即可运行,无依赖
- 快速(Fast):针对毫秒级处理数百万条目的场景优化
- 可编程(Programmable):基于事件驱动架构,可构建自定义终端界面与工作流
- 开箱即用(Batteries-included):内置 Bash、Zsh、Fish、Nushell、Vim 与 Neovim 集成脚本
2. v0.74.2 版本亮点
该版本汇集了 5 位贡献者 的 25 条 贡献。
v0.74.2 是 fzf 在 2026 年 8 月初发布的一个版本,重点优化了短查询性能,并修复了一批跨 shell、跨平台的细节问题:
2.1 性能优化
- 短查询大幅提速:短查询会扫描最大的候选集,首次按键需要扫描整个输入。单字符查询提速最高 2.4 倍,双字符查询提速最高 1.4 倍
- 更快的排序:搜索结果排序更快,跳过冗余的基数(radix)遍历
2.2 功能改进
change-border-label和transform-border-label现在可作用于 tmux 或 Zellij 浮动窗格的原生边框- fzf 现在可以在 Windows 的
--height模式下检测终端窗口大小变化
2.3 Bug 修复
- 修复预览命令发出的 Kitty 图形序列被 tmux 误当作窗格标题请求的问题
- 修复
--preview-window ~N导致预览顶部图片撕裂的问题 - 修复匹配高亮位置不确定的问题
- 修复 fzf 作为库使用时,
Run()返回后信号和窗口大小调整处理器仍残留的问题 - fish:修复历史命令受用户初始化脚本影响的问题,并改进 CTRL-R 中时间戳的颜色
- zsh:修复 perl 可用时 CTRL-R 不传递 fzf 退出状态的问题
- zsh:修复 ALT-C 导致
chpwd钩子函数被调用两次的问题
3. 获取安装包
如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/2259(内含 fzf-0.74.2-linux_amd64.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。
适用于 Linux x86_64(amd64)。
fzf 其他版本:https://hanshuixin.org/resource/software_integrated_package/Linux/fzf
Linux安装fzf-v0.74.2(fzf-0.74.2-linux_amd64).zip
├── fzf-0.74.2-linux_amd64.tar.gz ← 解压后部署使用
├── Linux安装fzf-v0.74.2(fzf-0.74.2-linux_amd64).pdf
├── README/
│ ├── README.md
│ └── README-中文版.md
├── 发布说明/
│ ├── RELEASE-NOTES.md
│ └── RELEASE-NOTES-中文版.md
└── LICENSE4. 安装
fzf-0.74.2-linux_amd64.tar.gz 是 fzf 官方发布的 Linux amd64/x86_64 二进制发行包,内含 Go 静态编译的单文件可执行程序,无运行时依赖,不绑定特定发行版,适用于绝大多数 Linux 环境。
# 解压发行包
tar -xzf fzf-0.74.2-linux_amd64.tar.gz
# 将可执行文件部署到系统路径(推荐 /usr/local/bin)
sudo mv fzf /usr/local/bin/
# 验证安装
fzf --version4.1 shell 集成配置
fzf 的核心价值在于与 shell 的深度集成。在 shell 配置文件中添加对应的一行,即可启用命令行快捷键(CTRL-T、CTRL-R、ALT-C)和模糊补全:
bash(
~/.bashrc)eval "$(fzf --bash)" source ~/.bashrczsh(
~/.zshrc)source <(fzf --zsh)fish(
~/.config/fish/config.fish)fzf --fish | source
重连一次终端后生效
--bash、--zsh、--fish选项仅在新版本 fzf 中可用;旧版本可在/shell目录中逐个 source 对应脚本文件。
5. 使用
5.1 经典使用场景
fzf 的用法本质上就一句话:把一份列表交给它,输入关键字筛选,回车选择。下面是最常见的几个场景。这些场景基于全新安装的 Debian 12,所需命令全部系统自带(fzf 本身除外),无需额外安装 git、docker、fd、bat 等工具。
场景一:打开一个只记得一半名字的文件
首先创建一个演示目录并放入几个示例文件:
mkdir -p ~/demo && cd ~/demo
touch monthly-report.md quarterly-report.md notes.txt config.yaml# 输入 cat 后加两个星号再按 TAB,直接进入模糊补全
cat **<TAB>界面出现后,输入 report,列表立即只剩文件名里带 report 的文件,上下键选中,回车即显示内容。整个过程不用记完整路径。
想用编辑器打开时,把
cat换成vi即可(Debian 12 自带 vim-tiny 提供的vi,nano需另行安装)。
场景二:找回以前敲过的命令
# 先执行几条命令,让历史记录里有一些内容
ls -la
cat /etc/os-release
df -h# 然后按 CTRL-R,输入关键字,历史命令瞬间筛出匹配项
# 例:只记得刚才查过磁盘,输入 df按一次回车即可重新执行;再按一次 CTRL-R 可切换为按时间顺序显示。
场景三:快速跳进某个目录
# 先创建几个层级目录
mkdir -p ~/project/backend/config ~/project/frontend/src ~/docs# 按 ALT-C,输入目录名关键字,选中后直接 cd 进入
# 例:想进 ~/project/backend/config,输入 config省去一层层 cd 的麻烦。
场景四:杀某个进程
# 先启动一个后台进程,作为待查找的目标
sleep 1000 &# 然后按 kill -9 后加两个星号再按 TAB,输入 sleep 选中
kill -9 **<TAB>不用先 ps 查 PID 再手动抄下来,模糊补全会列出匹配的 PID 供选择。
场景五:在已安装的软件包里快速定位
# 列出 Debian 所有已安装的软件包,输入关键字瞬间筛选
dpkg -l | fzf例如输入 python,即可在数百个已装软件包里迅速找到 python3 等带 python 的软件包。
场景六:在任何命令的输出里挑选
# 从系统服务列表里挑一个(查看运行状态)
systemctl list-units --type=service | fzf
# 回到场景一创建的演示目录,从 txt 文件里挑一个查看内容
cd ~/demo
ls *.txt | fzf --preview 'cat {}' | xargs cat5.2 基本使用
fzf 从 STDIN 读取列表,把选中的条目写到 STDOUT,因此可以嵌入任何命令管道:
# 筛选文件并写入结果
find * -type f | fzf > selected
# 用 fzf 选文件并查看内容
cat $(fzf)
# 从命令历史中模糊查找
history | fzf没有 STDIN 管道时,fzf 会遍历当前目录下的文件系统来生成文件列表。在查找器界面中,CTRL-K / CTRL-J(或 CTRL-P / CTRL-N)上下移动光标,Enter 选择条目,CTRL-C / CTRL-G / ESC 退出;多选模式(-m)下用 TAB 和 Shift-TAB 标记多个条目,并支持鼠标操作。
5.3 命令行快捷键
配置 shell 集成后,可在 bash、zsh、fish、Nushell 中使用以下快捷键:
- CTRL-T:遍历文件与目录,将选中路径粘贴到命令行
- CTRL-R:从命令历史中模糊查找命令;再次按下切换为按时间顺序排序
- ALT-C:模糊匹配目录并
cd进入
5.4 搜索语法
fzf 默认支持模糊匹配,输入的关键字可以不全、可以顺序不对,它会按匹配度排序。需要精确控制时,可用以下语法:
| 语法 | 匹配类型 | 说明 |
|---|---|---|
sbtrkt |
模糊匹配 | 匹配包含 sbtrkt 的条目 |
'wild |
精确匹配(加引号) | 包含 wild 的条目 |
'wild' |
精确边界匹配 | 单词边界处包含 wild 的条目 |
^music |
前缀精确匹配 | 以 music 开头的条目 |
.mp3$ |
后缀精确匹配 | 以 .mp3 结尾的条目 |
!fire |
反向精确匹配 | 不包含 fire 的条目 |
!^music |
反向前缀精确匹配 | 不以 music 开头的条目 |
!.mp3$ |
反向后缀精确匹配 | 不以 .mp3 结尾的条目 |
单个竖线字符(|)充当 OR 运算符:^core go$ | rb$ | py$ 匹配以 core 开头、且以 go、rb 或 py 结尾的条目。
5.5 预览窗口
用 --preview 选项开启预览窗口,fzf 自动以当前行为参数启动外部进程并显示结果,选中前就能看到内容:
# 预览文件内容(cat 为系统自带)
find . -type f | fzf --preview 'cat {}'
# 预览软件包详情
dpkg -l | fzf --preview 'apt-cache show {2} 2>/dev/null | head -20'若想获得彩色高亮的预览效果,可安装 bat 后把预览命令换成
bat --color=always {};不装 bat 时用系统自带的cat即可。
--preview-window 选项可自定义预览窗口的大小、位置和边框;预览窗口支持 ANSI 颜色与图片显示(Kitty graphics、iTerm2 inline images、Sixel 协议)。
5.6 常用环境变量与高级用法
# 默认输入来源:不传管道时用 find 生成文件列表
export FZF_DEFAULT_COMMAND='find . -type f'
# 默认选项:反向布局 + 底部 40% 高度
export FZF_DEFAULT_OPTS='--height 40% --layout reverse --border'
# 多选并把选中文件用 vi 打开(become 把 fzf 转变为新进程)
fzf --multi --bind 'enter:become(vi {+})'
# 交互式 grep 集成:输入时实时搜索当前目录下的文件内容
: | fzf --bind 'start:reload:grep -rn "" .' \
--bind 'change:reload:grep -rn {q} . || true' \
--bind 'enter:become(vi +{2} {1})' \
--ansi --disabled --delimiter : --nth 2..其他常用选项可通过手册页查看:fzf --man 或 man fzf。