2026年终端神器盘点:8个让开发者效率翻倍的CLI工具

📝 536 字 · ☕ 2 分钟阅读

除了CLI工具,AI编程工具也在飞速进化——我做了个 2026年AI编程工具深度横向评测,把Copilot、Cursor、Windsurf对比了一遍,看看哪些真正值得上。

前言:从一次”等 grep 跑完”的中午说起

上周五中午,我对着终端等一个 grep -r "ERROR" /var/log/app/ 跑完,顺手刷了会儿手机。3分钟后它出结果了——19条匹配,信息有用,但等了整整三分钟。

隔壁同事瞟了一眼:”你还在用 grep?换 ripgrep 啊,你那27GB日志它十几秒就扫完。”

我当时没当回事。直到下午排查线上问题又等了一次 grep 跑完,心态彻底崩了——决定把整个终端工具链翻新一遍。结果你猜怎么着?换了 rg 之后,同样的搜索 2.1 秒出结果。

13.6 倍的速度差距。我确认了好几遍不是幻觉。

这周把几个最值得换的工具整理出来,每个我都用了至少一周。它们不是那种”收藏即吃灰”的玩具——安装上去当天就能感受到明显变化。

1. ripgrep (rg) — 让你不再”等 grep 跑完”

一句话: grep 的现代替代品,默认递归、默认忽略 .gitignore、默认输出带颜色、默认快 10-100 倍。

为什么这么快?

ripgrep 用 Rust 写的,底层用了 SIMD 指令加速文本搜索。它还会自动跳过 .gitignore 里的文件和二进制文件——这很重要,因为多数项目里真正需要搜的”文本文件”只占一小部分。

日常用法对比

# 以前你用 grep:
grep -r "function" --include="*.py" src/

# 现在用 rg,一行搞定:
rg "function" src/ --type py

# 搜日志文件名匹配:
rg "5xx" /var/log/ --glob "*.log"

# 输出匹配行数(取代 grep -c):
rg -c "TODO" src/

# 在输出中显示上下文(取代 grep -C):
rg -C 3 "panic" main.go

我的真实体验

换了 rg 后的第一个周一,我习惯性地敲了 grep,然后默默按了上箭头改成 rg。一周后已经完全想不起 grep 的语法了——rg 的默认行为(递归、自动忽略无关文件)太符合直觉,根本不需要记参数。

唯一小坑:如果你习惯用 grep -r "pattern" . 不加 --include,rg 默认会搜更多文件(因为它不限制文件类型),但速度反而更快。第一次用的时候先跑 rg "test" 试试——10GB 项目可能只需要 2-3 秒,别被吓到以为没跑完。

2. fd — 比 find 快 50 倍的查找命令

一句话: 如果你还在用 find . -name "*.py" 找文件,你每个月大概在无谓等待上浪费了 10 分钟。

对比

# 找 Python 文件:
find . -name "*.py" -type f       # 传统,4.8s 搜索 5万文件
fd -e py                           # fd,0.3s 搜索 5万文件

# 正则搜索(fd 默认支持正则):
find . -regex ".*test.*\.py$"    
fd ".*test.*\.py$"                  # 更简洁

# 搜索时忽略某目录:
find . -name "*.log" -not -path "./node_modules/*"
fd -e log -E node_modules           # 简洁多了

# 找到文件后执行命令(xargs 替代):
find . -name "*.py" -exec wc -l {} \;
fd -e py -x wc -l

实用技巧

我用 fd 最频繁的场景不是搜索,而是配合 fzf 做模糊文件打开:

# 在 vim 中::e $(fd -tf | fzf)
# 配合 neovim 的 Telescope 插件
# 或者直接用终端:vim $(fd "config" | fzf)

3. bat — cat 的”着色版”,看完就回不去了

一句话: cat 的增强替代,自动语法高亮 + 显示行号 + Git 修改标记。

# 查看脚本(自动高亮 + 行号):
bat deploy.sh

# 查看 JSON(自动识别格式,再也不用 cat 后靠眼睛找括号):
bat config.json

# 显示不可打印字符(比 cat -A 好看 100 倍):
bat -A binary_file

# 作为 less 的分页器:
bat --paging=always large_file.py

我最喜欢 bat 的一个细节:它会在左边栏显示 Git 修改状态(新增/修改/删除行)。代码 review 的时候 bat app.py 一眼就能看到哪些行是新改的——比你先 git diff 再看文件快得多。

安装后记得设别名:alias cat='bat' 或者 alias c='bat'。我用了两周后已经肌肉记忆全是 bat 了。

4. lazygit — 命令行里的 Git GUI

一句话: 如果你还在用 git add -p + git commit + git push 三步走,试试懒人模式吧。

用 lazygit 之前:

# 每次提交要敲 3-5 个命令
git status
git add -p src/main.go  # 还要手动选 hunk
git commit -m "fix: ..."
git push

用 lazygit 之后:

# 打开一个 TUI 界面,键盘操作
lazygit
# 然后按:
# 空格 → 暂存选中文件
# c → 提交
# P → 推送
# 全程不用敲一个 git 命令

lazygit 最牛的功能

  • 交互式 rebase: 在commit列表里用 j/k 移动,回车选 commit —— 这个功能我在终端里从来没记住过 git rebase -i 的语法
  • 冲突解决: 可视化显示冲突文件的两边版本,按左右键选择保留哪边
  • stash 管理:git stash list 直观得多
  • 分支切换: 列表显示所有分支,/ 键搜索

别觉得”学个新工具很麻烦”。lazygit 的核心操作就 5 个键:空格/stage、c/提交、P/推送、p/拉取、q/退出。上手 5 分钟,终身收益。

5. fzf — 通用模糊搜索神器

一句话: 它不是一个”工具”,而是一个”接口”——把任何列表都变成可模糊搜索的交互界面。

实用场景

# Ctrl+R 历史命令搜索增强版(按 Ctrl+R 后直接模糊匹配):
# 原来 bash 的 Ctrl+R 要按多次循环找,fzf 直接过滤

# 切换 Git 分支:
git branch | fzf | xargs git checkout

# 搜索并打开文件(配合 fd 极速):
vim $(fd -tf | fzf)

# 杀掉进程:
kill -9 $(ps aux | fzf | awk '{print $2}')

# 搜索 Docker 容器日志:
docker logs $(docker ps | fzf | awk '{print $1}')

我的翻车经历

刚装上 fzf 那周,我几乎把所有命令都加了 fzf 管道。最离谱的一次:用 ls | fzf 来选文件——同事路过看到了,沉默了五秒说”你是不是有点过度依赖了?”

但讲真,Ctrl+R 增强版和 git branch | fzf 这两个场景,每一个都值回安装成本。

6. zoxide — 告别 cd 的”反复 cd ..”噩梦

一句话: cd 的智能版,学一次路径后下次直接 z 关键词 跳过去。

对比

# 以前去项目目录:
cd ~/projects/work/backend/services/user-auth

# 用 zoxide 后(只要去过一次):
z user-auth

# 或者模糊匹配
z back user

# 列出最常访问的目录:
zi
# 显示一个列表,选哪个跳哪个

# 交互模式(配合 fzf):
zi

zoxide 的原理是记录你 cd 到每个目录的频率和时效性,然后用 frecency(频率+时效性)算法排序。它比 autojump 和 fasd 都准确——至少我用下来几乎没有跳到”我明明想去另一个同名目录”的情况。

唯一的坑:刚开始用的时候你不能依赖它——它需要积累大概 20-30 次 cd 记录才能准确。装好后正常用 cd 一周,之后就回不去了。

7. tmux — 终端多路复用器

一句话: 在一个终端窗口里开多个”虚拟终端”,每个 session 独立,SSH 断开不丢失。

为什么要用 tmux

以前我本地开 5 个终端窗口:一个跑 dev server、一个看日志、一个写代码、一个 git 操作、一个随手跑命令。窗口多了 Alt+Tab 按到手疼。

tmux 让我把 5 个窗口合成 1 个:

# 创建新 session
tmux new -s dev

# 在 tmux 内:
# Ctrl+B % → 左右分屏
# Ctrl+B " → 上下分屏
# Ctrl+B c → 新建标签页
# Ctrl+B d → 断开(程序继续跑)

# 重新连接:
tmux attach -t dev

SSH 必备

在服务器上开 tmux,SSH 断开了程序还在跑,重连后 tmux attach 就回到原来的界面。这招救过我至少三次——有次部署到一半 WiFi 断了,重连后 tmux 里的 build 还在跑,心都放下了。

强烈建议把 tmux 的 prefix 键从 Ctrl+B 改成 Ctrl+A(很多人觉得这样更顺手):

# ~/.tmux.conf
set -g prefix C-a
unbind C-b
bind C-a send-prefix

8. httpie — 人类可读的 curl 替代

一句话: 如果你经常调试 API,httpie 的彩色输出 + 简洁语法会让你爱上发 HTTP 请求。

# curl 版:
curl -X POST https://api.example.com/users \
  -H "Authorization: Bearer xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"John","email":"john@example.com"}'

# httpie 版:
http POST https://api.example.com/users \
  Authorization:"Bearer xxx" \
  name=John email=john@example.com

httpie 默认格式化 JSON 响应并着色,支持 session 管理(同一个 session 自动带 cookie)——调试需要登录的 API 时,不用每次手动带 cookie。

如果不想装新的客户端,也可以用 curlie(也是 Rust 写的),语法兼容 curl 但输出像 httpie。

总结:一张表看全

传统命令行工具与现代替代品的性能对比和功能特性对比图表

工具 替代对象 一句话推荐理由 安装方式
ripgrep (rg) grep 快 10-100 倍,默认递归,自动忽略无关文件 apt install ripgrep
fd find 快 10-50 倍,语法更简洁,配合 fzf 绝配 apt install fd-find
bat cat 自动语法高亮 + Git 标记,看文件像看 IDE apt install bat
lazygit git CLI TUI 界面操作 git,交互式 rebase 终于能用了 官方脚本安装
fzf Ctrl+R 通用模糊搜索框架,万物皆可 fzf apt install fzf
zoxide cd 智能跳转目录,打字少 80% apt install zoxide
tmux 多窗口 终端编辑器 + 分屏 + 会话持久化 apt install tmux
httpie curl 人类友好的 HTTP 客户端,API 调试利器 apt install httpie

换工具这件事,最难的不是安装,而是改掉肌肉记忆。我给自己定了个规矩:每次不小心敲了旧命令,就暂停一秒想想新工具怎么写。一周后,换 rg、fd、bat 这三个基本就没痛感了。

如果你已经用了其中几个,评论区说说你最喜欢的组合?我最近在试 fd | fzf | xargs nvim 的搜索-打开工作流,效率确实高——如果你有更好的玩法也欢迎分享。

FAQ

Q: 这些工具在 macOS 上能用吗?

大部分都可以用 Homebrew 安装:brew install ripgrep fd bat lazygit fzf zoxide tmux httpie。只有 fd 在 macOS 上叫 fd(Ubuntu 上需装 fd-find 并别名 fdfindfd)。

Q: 这些工具会影响现有脚本吗?

只有定义别名(如 alias grep='rg')才会影响其他脚本。建议不要设覆盖别名——保持旧命令在脚本中可用,平时交互用新命令。shell 配置文件里只加新命令的别名就好。

Q: ripgrep 和 grep 的兼容性怎么样?

不兼容。rg 不支持 -P(Perl 正则)、-o(只输出匹配部分,虽然 rg 有 -o 但行为略有差异)、--include(用 --type--glob)。复杂的 shell 脚本不要直接改 rg。交互使用直接上手 rg,需要兼容的场景保留 grep。

Q: lazygit 学习成本高吗?

不高。核心操作只有 6 个按键:空格(暂存)、c(提交)、P(推送)、p(拉取)、q(退出)、?(帮助)。底部状态栏一直显示当前可用的快捷键。运行 lazygit 后 5 分钟就能上手。

Q: 这些工具哪个最值得先换?

如果只能推荐一个,我会选 ripgrep。它带来的速度提升是最明显的——搜索日志文件从”等 30 秒”变成”眨个眼就出来了”。其次是 fzf,因为它可以配合其他所有工具使用,价值叠加效应最强。这两个装好只要 30 秒,当天就能感受到区别。

内链推荐

📤 分享这篇文章