现在用终端写代码的人越来越多了。VSCode固然好,但总有那么一些场景——连服务器、查日志、翻项目目录——你只能用命令行。用自带的cd、cat、grep也不是不行,但体验大概相当于骑共享单车去跑马拉松:能到,累。
下面这10个工具是我日常在用的,每个都给安装命令和真实使用场景。全装当然最好,但说实话,先装前3个你的终端体验就完全不一样了。
1. zoxide — 智能跳转,cd可以退休了
你肯定遇到过这种情况:cd到一个深目录,过两天再想去,已经忘了路径。zoxide会记录你的访问频率和最近时间,自动加权排序。
# 安装 curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
它的z命令是cd的智能替代。举个例子:三个月前你在~/projects/my-big-app/backend/src/services里改过代码,现在想回去,不用翻cd历史了,直接z proj(只要你输过projects)或者z bac ser(模糊匹配backend和services),它就自动跳过去。
用了zoxide之后我才意识到以前每次cd进项目目录花的时间加起来有多夸张。这东西属于那种「装完就回不去」的类型。
2. fzf — 模糊搜索一切
fzf是一个通用的模糊搜索工具,跟什么都能组合:搜文件、搜历史命令、搜git分支、搜进程id。
# Ubuntu/Debian sudo apt install fzf # macOS brew install fzf
最常用的三个场景:
- Ctrl+R搜历史命令:比系统自带的ctrl-r好用太多,输入ssh直接列出所有ssh过的服务器,上下键选就行
- Ctrl+T搜文件:在深目录里找文件,打几个字母就出来
- git branch | fzf:项目有一百多个分支的时候,fzf搜一下秒切
关键是不用记完整名字,打几个字母就行,匹配逻辑很聪明。
3. bat — cat带语法高亮
cat看代码文件就是一坨黑白的,bat自带语法高亮、行号、Git diff标记(改动过的行旁边有小标记)。
# Ubuntu/Debian sudo apt install bat # macOS brew install bat # 注意:Ubuntu旧版本装完后命令可能是batcat
比如你在服务器上快速看nginx配置:bat /etc/nginx/nginx.conf,所有注释是灰色的,directive是高亮的,一眼就知道哪里配了什么。比cat不知道强到哪里去了。而且它自动分页,文件太长不会刷屏。
4. ripgrep (rg) — 比grep快一个数量级
ripgrep是用Rust写的,天生快。在一个10万行代码的项目里搜一个字符串,grep可能要半秒,rg基本是瞬间出结果。
# Ubuntu/Debian sudo apt install ripgrep # macOS brew install ripgrep
真实场景:线上报了个bug,你知道日志里有个"timeout"关键字,但不知道在哪个文件里。用rg timeout /var/log/myapp/,一秒内所有相关日志行全列出来,文件名+行号标得清清楚楚。
而且rg默认就忽略.gitignore里的文件,搜代码目录不用额外加--exclude。
5. fd — find替代品,命令短一半
find的语法真的很反人类。fd是find的现代化替代,命令更短,默认忽略.gitignore和隐藏文件。
# Ubuntu/Debian sudo apt install fd-find # macOS brew install fd
对比一下就知道了:
- find当前目录所有.js文件:
find . -name "*.js" - fd版本:
fd '\.js$'或者直接fd -e js
找最近7天修改过的Python文件?fd -e py --changed-within 7d。语法比find直观太多了。
6. jq — JSON处理的瑞士军刀
调API返回JSON,curl出来一大坨挤在一起,根本看不清。jq就是干这个的:格式化、过滤、转换。
# 几乎所有包管理器都有 sudo apt install jq brew install jq
实际场景非常多:
- 从API返回里只取字段:
curl -s api.example.com/users | jq '.data[].name' - 统计数组长度:
jq '.items | length' data.json - 把一个超大JSON里嵌套三层的数据提取出来,一行命令搞定
我们团队后来写CI脚本,凡是涉及JSON输出的,统一用jq处理。不用临时写Python脚本解析,shell管道直接搞定。
7. tldr — man的简化版,直接给例子
man page通常是这样的:先来50行选项说明,然后30行环境变量,最后5行authorname。你真正想要的——这个命令到底怎么用——埋在一堆文字中间。
tldr只给常用例子。
npm install -g tldr # 或 sudo apt install tldr
试一下:tldr tar。输出不是man page那种几百行,而是直接告诉你:解压用tar xvf file.tar,创建gz压缩用tar czvf file.tar.gz dir/。每个命令就五六行例子,够用了。
这个工具救了我无数次,特别是那些不常用的命令(比如ffmpeg转码参数),每次都是tldr一把梭。
8. lazygit — 终端里的Git GUI
会用git命令不代表你享受那个过程。lazygit给你一个终端里的交互界面,commit、push、rebase、stash全部可视化操作。
# 推荐用go装,版本最新 go install github.com/jesseduffield/lazygit@latest # 或者各平台包管理器 brew install lazygit sudo apt install lazygit
在工作目录里直接打lazygit回车,出来一个界面:左边是文件变更列表,右边是diff,按空格暂存,按c写commit信息,按P push。rebase和cherry-pick这种平时要查命令的操作,在lazygit里直接选commit按r就搞定。
我一开始觉得用CLI就够了,装完lazygit第二天就把git的alias全删了。是真的方便。
9. httpie — curl的替代品,API调试友好
curl功能强大,但语法太啰嗦。httpie的输出自带高亮和格式化。
# Ubuntu/Debian sudo apt install httpie # macOS brew install httpie
发一个POST请求对比一下:
- curl:
curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' api.example.com - httpie:
http POST api.example.com name=test
返回的JSON自动格式化高亮,header也用颜色区分了。调试REST API的时候效率高很多。
10. delta — git diff可视化
git自带的diff是那种红绿加减号的格式,看改动其实挺累的。delta给diff加了语法高亮、行号、side-by-side视图。
# 各平台都有 brew install git-delta sudo apt install git-delta # 安装后在~/.gitconfig加: # [core] # pager = delta # [interactive] # diffFilter = delta --color-only
配好之后git diff输出就像GitHub的diff界面一样:左边旧代码、右边新代码,改动的单词高亮,行号对齐。看code review的时候尤其好用——一眼就知道同事到底改了什么。
---
说了这么多,你不用全装。我的建议:先装zoxide、fzf、bat这三个。然后就正常用终端——三天之内你会发现自己再也回不去了。剩下的按需来:经常搜代码就装rg和fd,经常调API就装jq和httpie,git用得多的上lazygit和delta。
以上都是2026年还在活跃维护的项目,不用担心装了过几个月就没人管。有哪个装完觉得不好用的,欢迎回来骂我。
还木有评论哦,快来抢沙发吧~