在 Ubuntu 服务器的日常运维、开发、故障排查中,真正高频使用的命令行工具其实只有几十个。掌握它们,能让你在 90% 的场景下不需要去查文档或搜索引擎。本文把最实用、最常敲的命令行工具按功能场景分类整理,每类只列出 3–8 个核心工具,重点说明什么时候用它、最常见的写法以及一个小实践场景。适合中高级用户快速复习,也适合有一定基础的新手建立命令肌肉记忆。
1. 系统状态与资源一目了然
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| uptime | 查看负载、运行时间、用户数 | uptime | 登录后第一件事,看 1/5/15 分钟负载是否异常 |
| free | 内存使用概览 | free -h | 判断是否真的内存不足(看 available 列) |
| df | 磁盘空间 | df -h / df -i | 排查“磁盘已满”或“无法创建文件”(inode 耗尽) |
| top / htop | 实时进程监控 | htop(需安装) | 快速找到 CPU/内存/IO 吃光资源的进程 |
| ss | 查看网络连接与监听端口 | ss -tulnp / ss -tunap | 取代 netstat,查哪个进程占用了 3306/80 端口 |
小实践:写一个 5 秒巡检别名 alias check=’echo “负载:” $(uptime | awk “{print $(NF-2)}”) ” | 内存:” $(free -h | awk “NR==2{print $NF}”) ” | 磁盘:” $(df -h / | tail -1 | awk “{print $5}”)’
2. 文件查找与内容查看
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| find | 按条件找文件/目录 | find /var/log -type f -size +100M | 找出大于 100MB 的日志文件 |
| locate | 快速文件名搜索 | sudo updatedb && locate nginx.conf | 比 find 快 100 倍(需先更新数据库) |
| grep | 文本搜索 | grep -r “error” /var/log | 在所有日志里找错误关键字 |
| tail | 查看文件尾部 | tail -n 100 -f access.log | 实时跟踪访问日志 |
| less / more | 分页查看大文件 | less /var/log/syslog | 支持 / 搜索、上下翻页 |
小实践:查找最近修改的大文件 find / -type f -mtime -7 -size +500M 2>/dev/null | sort -k 5 -n
3. 进程与服务管理(systemd 时代)
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| systemctl | 服务控制 | systemctl status/restart nginx | 查看、重启服务 |
| journalctl | 查看 systemd 日志 | journalctl -u nginx -n 200 -f | 实时跟踪 nginx 错误 |
| ps | 列出进程 | ps aux | grep php |
| pkill / killall | 按名字杀进程 | pkill -f “php-fpm” | 快速杀掉所有匹配的进程 |
| nice / renice | 调整进程优先级 | renice -n 10 -p PID | 降低某个占用 CPU 的进程优先级 |
小实践:一键重启卡住的服务 systemctl restart $(systemctl list-units –state=failed –type=service | grep failed | awk ‘{print $1}’ | sed ‘s/.service$//’)
4. 网络诊断工具
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| ip | 现代网络配置查看 | ip a / ip route | 取代 ifconfig,看 IP、路由 |
| ping / mtr | 连通性与路径追踪 | mtr -r -c 100 baidu.com | 定位到哪一段丢包严重 |
| curl | 测试 HTTP/接口 | curl -I https://example.com | 只看响应头,判断站点是否 200 |
| ss | 高级 socket 统计 | ss -s / ss -m | 查看 TCP/UDP 连接统计 |
| dig / nslookup | DNS 查询 | dig +short www.google.com | 快速验证 DNS 解析是否正确 |
小实践:快速测试站点是否通 curl -s -o /dev/null -w “%{http_code}” https://yourdomain.com
5. 包管理与系统维
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| apt | 软件包管理 | apt update && apt upgrade | 日常更新 |
| apt search / apt show | 查找/查看包信息 | apt show nginx | 决定是否安装这个包 |
| dpkg | 查看已安装包 | dpkg -l | grep mysql |
| needrestart | 检查更新后需重启的服务 | sudo needrestart | 升级内核/库后必跑 |
| unattended-upgrades | 自动安全更新 | dpkg-reconfigure unattended-upgrades | 开启后自动打安全补丁 |
小实践:一键安全升级 + 清理 alias uu=’sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo needrestart’
6. 磁盘与空间管理
| 工具 | 核心用途 | 最常用写法 | 实践场景 |
|---|---|---|---|
| du | 查看目录占用 | du -sh /* | sort -hr |
| ncdu | 交互式 du | ncdu / | 像文件管理器一样浏览占用 |
| df | 空间概览 | df -hT | 查看文件系统类型和使用率 |
| fstrim | SSD 定期 TRIM | fstrim -av | 保持 SSD 性能(cron 每周跑) |
小实践:找出占用最大的前 10 个目录 du -sh /* 2>/dev/null | sort -hr | head -10
7. 其他高频救命工具
| 工具 | 一句话用途 | 典型场景 |
|---|---|---|
| watch | 周期性执行命令 | watch -n 2 free -h |
| screen / tmux | 会话持久化 | tmux new -s work |
| crontab | 定时任务 | crontab -e |
| rsync | 增量同步 | rsync -avz –delete src/ dest/ |
| jq | 处理 JSON | curl api |
最后:建立你的“黄金工具链”
大多数故障的 30 秒初步定位顺序通常是: uptime → free -h → df -h/-i → top/htop → journalctl -xe → ss -tulnp
把这些工具熟练到“看到现象就能想到对应命令”,你的运维效率会提升一个数量级。
建议做法:
- 把常用的 5–10 个命令做成 shell 别名(~/.bashrc)
- 每周花 10 分钟复习 1–2 个不熟的工具
- 遇到问题时,先默念一遍上面黄金顺序,而不是立刻去 Google
这些工具几乎覆盖了 Ubuntu 服务器 80% 的日常操作场景,剩下的 20% 才是真正需要查文档的边缘情况。