当前位置:首页>Linux>Linux系统管理员必备的20个高频命令:从入门到精通的生产环境实战指南(附PDF文件下载)

Linux系统管理员必备的20个高频命令:从入门到精通的生产环境实战指南(附PDF文件下载)

  • 2026-10-21 12:47:07
Linux系统管理员必备的20个高频命令:从入门到精通的生产环境实战指南(附PDF文件下载)

导语:在生产环境中,Linux系统管理员的日常就是与时间赛跑。面对成千上万的命令,真正高频使用的其实只有一小部分。本文精选20个生产环境中最实用的Linux命令,涵盖进程监控、磁盘管理、日志分析、网络调试等核心场景,助你快速定位问题、提升运维效率。

一、进程与资源监控篇

1. htop — 交互式进程查看器

如果你还在用 top,是时候升级了。htop 提供了更友好的交互界面,直观展示CPU、内存、交换空间使用率及进程树。

htop

常用操作:

  • ↑↓ 方向键滚动进程列表
  • F6 按列排序(CPU、内存、PID等)
  • F9 快速终止进程(无需手动查找PID)
  • F3 搜索进程
  • F5 查看进程树

提示:htop 默认可能未安装,可通过 yum install htop 或 apt install htop 快速部署。

2. top — 基础实时系统监控

虽然 htop 更强大,但 top 几乎预装在所有Linux系统上。在最小化安装或紧急救援场景中,它还是我们的第一选择。

top

交互快捷键:

  • M — 按内存使用率排序
  • P — 按CPU使用率排序
  • k — 输入PID终止进程
  • 1 — 显示每个CPU核心的详细状态
3. ps aux — 进程快照与过滤

ps aux 提供系统运行进程的完整快照,配合管道和 grep 可快速定位目标进程。

# 查看所有Apache相关进程ps aux | grep apache# 按内存占用排序,查看Top 10ps aux --sort=-%mem | head -n 10# 按CPU占用排序ps aux --sort=-%cpu | head -n 10

输出字段解读:

  • USER — 进程所有者
  • PID — 进程ID
  • %CPU/%MEM — CPU和内存占用百分比
  • STAT — 进程状态(S=睡眠,R=运行,Z=僵尸进程)
  • START — 启动时间

提示:ps aux 比 htop 更适合脚本化监控,可配合 cron 定时记录进程状态。

4. free — 内存与交换空间查看
free -h

关键指标:

  • available(可用内存):真正可供新进程使用的内存,这才是你需要关注的指标
  • free(空闲内存):Linux会将闲置内存用于磁盘缓存,因此 free 值通常很低,不代表系统内存不足
  • swap(交换空间):当 available 接近0且 swap 大量使用时,说明存在真实的内存压力

误区提醒:不要只看 free 列!Linux的内存管理机制会主动使用空闲内存做缓存,available 才是判断内存是否紧张的金标准。

5. uptime — 系统运行时间与负载均衡
uptime

输出示例:

负载解读(三个数值分别对应1分钟、5分钟、15分钟平均负载):

  • 三个值均低于CPU核心数 → 系统健康
  • 1分钟值高,15分钟值低 → 刚发生瞬时负载峰值,可能已恢复
  • 三个值均高 → 持续高负载,需立即排查

提示:负载高不等于CPU高!负载反映的是等待运行的进程数,IO等待也会导致负载升高。

二、磁盘与文件管理篇

6. df — 磁盘空间使用情况
df -Th

关注重点:

  • Use% 列:80%以上需开始关注,95%以上服务可能直接崩溃
  • 数据库无法写入、日志无法轮转、应用异常退出,往往都是因为磁盘满了

生产红线:建议设置磁盘使用率告警阈值:警告80%,严重90%,紧急95%。

7. du — 目录磁盘占用分析
# 查看 /var 下各子目录大小du -sh /var/*# 深入排查 /var/lib 下的空间占用du -sh /var/lib/* | sort -hr | head -n 10

参数说明:

  • -s — 仅显示汇总,不列出每个文件
  • -h — 人类可读格式(K/M/G自动转换)

实战场景:Docker镜像存储、数据库数据目录、日志文件是生产环境最常见的空间占用大户。

8. find — 文件搜索与批量操作
# 按名称查找日志文件find /var/log -name "*.log"# 查找 /tmp 下7天前的文件并删除(先预览,再执行)find /tmp -type f -mtime +7find /tmp -type f -mtime +7 -delete# 查找大于100MB的文件find / -type f -size +100M# 查找并修改权限find /data -type f -name "*.sh" -exec chmod 755 {} \;

安全提醒:使用 -delete 前务必先不带该参数运行一次,确认目标文件无误!

9. chmod / chown — 权限与归属管理
# 设置脚本可执行权限chmod 755 script.sh# 递归修改目录及子文件权限chmod -R 644 /var/www/html/# 修改文件所有者和所属组chown user:group file.txt# 递归修改目录归属chown -R www-data:www-data /var/www/

权限数字速查:

  • 7 = rwx(读+写+执行)
  • 6 = rw-(读+写)
  • 5 = r-x(读+执行)
  • 4 = r--(只读)

实战提示:Web目录通常设置为 755(目录)和 644(文件),避免过度授权带来的安全隐患。

三、日志与系统服务篇

10. journalctl — Systemd日志分析

现代Linux发行版(RHEL 7+、Ubuntu 18.04+、CentOS 7+)均使用 systemd,journalctl 是查看系统日志的首选工具。

# 查看最近的错误日志(带解释说明,跳转到末尾)journalctl -xe# 查看指定服务的日志journalctl -u nginx# 查看最近1小时的日志journalctl --since "1 hour ago"# 查看特定时间段的日志journalctl --since "2026-07-01 00:00:00" --until "2026-07-05 00:00:00"# 持续跟踪服务日志(类似 tail -f)journalctl -u nginx -f

实战优势:无需记住日志文件路径,无需手动 grep,直接通过服务名过滤,效率提升数倍。

11. systemctl — Systemd服务管理
# 查看服务状态systemctl status nginx# 启动/停止/重启服务systemctl start nginxsystemctl stop nginxsystemctl restart nginx# 设置开机自启/禁用自启systemctl enable nginxsystemctl disable nginx# 查看所有运行中的服务systemctl list-units --type=service --state=running# 重新加载配置(不中断服务)systemctl reload nginx

关键区别:restart 会中断服务再启动,reload 仅重新加载配置,对生产环境更友好。


12. tail -f — 实时日志监控
# 实时监控日志文件tail -f /var/log/messages# 结合grep过滤关键字tail -f /var/log/syslog | grep sshd# 同时监控多个日志文件tail -f /var/log/nginx/access.log /var/log/nginx/error.log

进阶技巧:使用 tail -f 配合 grep --line-buffered 可实现带颜色高亮的实时过滤。

四、网络调试篇

13. ss — 套接字统计

ss 比传统的 netstat 更快、更现代,是查看网络连接的首选工具。

# 查看所有监听的TCP和UDP端口ss -tuln# 查看所有建立的连接ss -tun state established# 查看指定端口的连接ss -tuln | grep :80# 显示进程信息ss -tulnp

参数速记:

  • -t = TCP
  • -u = UDP
  • -l = 仅监听(Listening)
  • -n = 显示数字端口(不解析服务名)
  • -p = 显示进程信息

生产建议:运行 ss -tuln 检查服务器实际监听的端口,你可能会惊讶地发现一些意料之外的服务。

14. ip — 网络接口与路由管理

ip 命令是 ifconfig 和 route 的现代替代品,功能更强大,且在所有现代发行版中默认可用。

# 查看所有网络接口和IP地址ip a# 查看路由表ip r# 查看特定接口ip a show eth0# 临时添加IP地址ip addr add 192.168.1.100/24 dev eth0# 查看网络统计ip -s linkip -s link show ens33

排障流程:

  1. ip a — 确认网卡状态为 UP 且IP配置正确
  2. ip r — 确认默认网关路由存在
  3. ping 网关 → 确认本地网络连通
  4. ping 外网 → 确认路由和DNS正常
15. ping — 网络连通性测试
# 基础连通性测试ping baidu.com# 发送指定数量的包ping -c 4 baidu.com# 指定间隔时间(秒)ping -i 2 baidu.com# 指定包大小ping -s 1024 baidu.com

注意:部分云服务器或防火墙会禁用ICMP,ping不通不代表服务不可用,需结合 nc 或 curl 进一步判断。

16. traceroute / tracepath — 网络路径追踪

当 ping 不通时,使用 traceroute 查看数据包在网络中的传输路径,定位故障节点。

traceroute baidu.com# 使用ICMP而非UDP(部分防火墙对UDP限制更严)traceroute -I baidu.com# 限制跳数traceroute -m 20 baidu.com

替代方案:tracepath 无需root权限即可运行,在某些受限环境中更实用。

17. nc (Netcat) — 网络瑞士军刀

nc 是测试端口连通性的利器,也是网络调试的万能工具。

# 测试远程端口是否开放nc -zv 192.168.1.10 22# 测试多个端口nc -zv 192.168.1.10 20-25# 作为简易服务器监听端口nc -l 8080# 传输文件nc -l 1234 > received_file.txt        # 接收端nc 192.168.1.10 1234 < file.txt      # 发送端

典型场景:Web服务无法访问时,先用 nc -zv 测试端口是否开放,快速区分是网络问题还是服务问题。

18. lsof — 查看打开的文件和端口
# 查看占用80端口的进程lsof -i :80# 查看指定进程打开的文件lsof -p 1234# 查看指定目录被哪些进程使用lsof /var/log# 查看指定用户打开的文件lsof -u root# 查看网络连接lsof -i TCP

典型输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEnginx   1234 root    6u  IPv4  23456      0t0  TCP *:http (LISTEN)

救命场景:服务启动失败提示"端口已被占用"时,lsof -i :端口号 秒级定位占用进程。

五、自动化与数据同步篇

19. rsync — 高效文件同步与备份

rsync 是Linux下最强大的文件同步工具,支持增量传输、压缩、远程同步。

# 本地同步(保留权限、时间戳、递归、压缩)rsync -avz /source/ /destination/# 远程同步(通过SSH)rsync -avz /data/ user@remote:/backup/# 排除特定文件rsync -avz --exclude='*.tmp' /data/ /backup/# 删除目标端多余文件(完全镜像)rsync -avz --delete /data/ /backup/# 显示传输进度rsync -avz --progress /data/ user@remote:/backup/

参数速记:

  • -a = 归档模式(保留所有属性)
  • -v = 详细输出
  • -z = 传输时压缩
  • --delete = 删除目标端多余文件

效率优势:相比 scp,rsync 只传输变更部分,对大文件或大量文件的同步效率提升显著。

20. crontab — 定时任务调度
# 编辑当前用户的定时任务crontab -e# 查看当前定时任务crontab -l# 删除所有定时任务crontab -r

时间格式(5个字段):

* * * * *  command│ │ │ │ ││ │ │ │ └── 星期 (0-7, 0和7都代表周日)│ │ │ └──── 月份 (1-12)│ │ └────── 日期 (1-31)│ └──────── 小时 (0-23)└────────── 分钟 (0-59)

常用示例:

# 每天凌晨2点执行备份0 2 * * * /usr/bin/backup.sh# 每5分钟检查服务状态*/5 * * * * /usr/bin/check_service.sh# 每周日凌晨3点清理日志0 3 * * 0 /usr/bin/cleanup_logs.sh# 每月1号执行报表生成0 0 1 * * /usr/bin/generate_report.sh

最佳实践:

  • 定时任务脚本务必添加日志输出,便于排查问题
  • 使用绝对路径,避免环境变量差异导致命令找不到
  • 复杂任务建议先手动执行验证,再写入crontab

六、总结与行动建议

类别命令核心用途
进程监控
htop, top, ps aux, free, uptime
资源查看与进程管理
磁盘管理
df, du, find
空间分析与文件定位
权限管理
chmod, chown
安全控制
日志分析
journalctl, tail -f
故障排查
服务管理
systemctl
服务生命周期管理
网络调试
ss, ip, ping, traceroute, nc, lsof
连通性与端口诊断
自动化
rsync, crontab
备份同步与任务调度

结语:Linux运维的精髓不在于记住所有命令,而在于理解每个命令背后的系统原理,并在关键时刻知道该用什么工具。这20个命令覆盖了生产环境90%的日常运维场景,熟练掌握它们,我们将从容应对绝大多数系统管理挑战。


本文PDF格式下载:

  关注公众号(haopython),请回复: ADMIN20

最新文章

随机文章