程序员效率翻倍的10个命令行工具

2026-07-12 码匠 博客

问题描述:命令行是程序员的"瑞士军刀",但很多人只用了它最基础的功能。其实,有大量优秀的命令行工具可以让日常开发效率翻倍——从文件搜索、进程管理到网络调试,这些工具值得每个开发者掌握。

一、文件搜索:fd 与 ripgrep

传统的 find 命令语法繁琐,而 fd 是一个更现代化、更快的文件查找工具:

fd ".\.txt$" /home  # 查找所有txt文件,比find快5-10倍
fd -e md -H "redis"  # 在md文件中搜索redis(包含隐藏文件)

ripgrep(简称 rg)是 grep 的现代替代品,速度更快,搜索结果更友好:

rg "function" --type py -C 3  # 在Python文件中搜索function,显示前后3行
rg -i "error" --stats  # 忽略大小写,显示统计信息

二、进程管理:htop 与 lsof

htop 是 top 的增强版,支持鼠标操作、彩色显示、树形进程视图:

htop
# 按 F4 过滤进程
# 按 F9 发送信号杀掉进程
# 按 t 切换树形视图

lsof 查看进程打开的文件和网络连接,是排查端口占用问题的利器:

lsof -i :8080       # 查看8080端口被谁占用
lsof -p 1234        # 查看PID 1234打开的所有文件
lsof -u www-data    # 查看某用户打开的文件

三、网络调试:curl 与 jq 组合

curl 是最常用的 HTTP 调试工具,配合 jq 可以优雅地查看和过滤 JSON 响应:

curl -s https://api.example.com/users | jq '.[] | {name, email}'

jq 是命令行的 JSON 处理瑞士军刀,支持筛选、映射、聚合:

cat data.json | jq '.users[] | select(.age > 25) | .name'
cat data.json | jq 'keys'         # 查看JSON顶层key
cat data.json | jq '.items | length'  # 统计数组长度

四、文件处理:bat 与 tree

bat 是 cat 的升级版,支持语法高亮、行号显示、Git 集成:

bat src/main.py
bat --style=header,grid --decorations=never src/

tree 以树形结构展示目录,是了解项目结构的不二之选:

tree -L 3 -I 'node_modules|.git'  # 深度3层,排除指定目录
tree -h  # 显示文件大小

五、实时监控:watch 与 multitail

watch 定期执行命令并显示输出,适合监控日志变化:

watch -n 2 df -h           # 每2秒显示磁盘使用
watch -n 1 tail /var/log/nginx/access.log  # 实时看日志

multitail 可以同时监控多个日志文件,每个独占一个颜色区域:

multitail -c /var/log/nginx/access.log -c /var/log/nginx/error.log

六、磁盘与内存:ncdu 与 free

ncdu 是 du 命令的交互式可视化版本,快速找出占用空间最大的目录:

ncdu /home
# 上下键导航,d删除文件,q退出

free -h 简洁展示内存使用情况:

free -h

七、数据库客户端:mycli

mycli 是 MySQL 命令行客户端的增强版,支持自动补全、语法高亮、多行语句:

mycli -h localhost -u root -p mypassword mydb
# 智能补全:输入SELECT时自动提示表名和列名
# 语法高亮:SQL关键字自动着色

八、API测试:httpie

httpie 是 curl 的友好替代品,语法更接近自然语言,输出更美观:

http GET api.github.com/users/octocat
http POST api.example.com/login username=test password=123
http -d https://example.com/file  # 下载文件

九、版本控制:lazygit

lazygit 是 Git 的终端 TUI 客户端,适合不习惯纯命令行的场景:

lazygit
# 直观查看diff、提交、分支
# 点击即可暂存、提交、推送

十、终端复用:tmux

tmux 让你在一个终端中管理多个会话、窗口和面板,断开连接也不会丢失工作:

tmux new -s dev          # 创建名为dev的会话
Ctrl+b d                  # 断开会话(后台保持)
tmux attach -t dev       # 重新连接会话
# 分屏:Ctrl+b "(水平) / Ctrl+b %(垂直)

安装方式汇总

# Linux/macOS (Homebrew)
brew install fd ripgrep bat htop lsof jq tree ncdu mycli httpie lazygit tmux

# Windows (Scoop)
scoop install fd ripgrep bat jq tree ncdu

总结

这10个工具覆盖了日常开发中最常见的场景:文件搜索、进程管理、网络调试、日志监控、数据库操作等。相比图形化工具,命令行工具的优势在于:可自动化、可脚本化、资源占用低、在服务器环境同样可用。建议从自己最常用的场景开始,逐步替换旧工具,一周内就能感受到效率的显著提升。


关于我们

如果你在开发环境配置、服务器运维、性能优化等方面遇到问题,尊云科技可以帮你解决。

服务范围:

  • 网站建设与服务器部署
  • PHP/Vue/UniApp开发
  • API接口开发与AI集成
  • BUG修复与代码优化

联系方式:

  • 微信:yvsm316
  • QQ:316430983