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