Linux 新手第一课:5 个命令,看懂系统在忙什么
刚接触 Linux 时,很多人面对黑乎乎的终端手足无措:系统卡了不知道谁在捣乱,磁盘满了不知道删什么,服务起不来只能干瞪眼。其实日常运维里,八成的“看一眼”需求,靠下面 5 个命令就能解决。它们不需要背参数,记住用法思路即可。
一、top:谁在吃 CPU 和内存
在终端输入 top 回车,你会看到一张实时刷新的“体检表”。重点看三处:第一行的 load average,也就是 1 分钟、5 分钟、15 分钟的平均负载,单核机器超过 1 就要警惕;%CPU 列,哪个进程最耗 CPU 一目了然;%MEM 列,内存大户现形。按 M 可以按内存排序,按 P 按 CPU 排序,按 q 退出。新手常犯的错误是看到内存“用了 90%”就慌——Linux 会把空闲内存拿去做缓存,真正要看的是 available 那一列。
二、free -h:内存到底够不够
top 里的内存信息不够直观,就用 free -h,-h 表示用人类可读的单位显示。记住看 available,它表示真正还能分配给新程序的内存。如果 available 长期低于总内存的一成,就该考虑加内存或者优化应用了。swap 那一行如果 used 持续增长,说明物理内存已经不够用,系统在拿硬盘当内存使,性能会明显下降。
三、df -h:磁盘空间告急预警
服务突然写不进日志、上传失败,八成是磁盘满了。df -h 按人类可读格式列出各挂载点的使用率,重点关注 Use% 这一列。根分区超过 85% 就要动手清理:先看哪个目录最大,再逐层下钻。/var/log 下的旧日志、/tmp 下的临时文件是常见的“空间杀手”。记住:删文件前先确认用途,线上环境误删数据的代价远大于磁盘告警。
四、journalctl:查日志的正确姿势
以前大家习惯去 /var/log 里翻文件,现在 systemd 一统江湖后,journalctl 是更高效的选择。journalctl -xe 看本次启动以来的报错;journalctl -u 加服务名看指定服务的日志;journalctl -f 实时滚动最新日志;journalctl --since 指定时间看某段时间内的记录。配合 -p err 只看错误级别,排障效率翻倍。
五、ss -tlnp:端口被谁占了
启动服务时报“端口已被占用”,别急着 kill,先用 ss -tlnp 查清楚。-t 看 TCP,-l 看监听状态,-n 用数字显示端口(不反查域名,快得多),-p 显示占用端口的进程名和 PID。找到 PID 后,再用 ps 确认是什么程序,再决定是停掉它还是换个端口。ss 是 netstat 的现代替代品,速度更快,输出更清晰。
小结
top 看负载、free 看内存、df 看磁盘、journalctl 查日志、ss 查端口——这五个命令覆盖了日常巡检的大部分场景。建议把它们写进自己的“运维小抄”,每次登录服务器花一分钟过一遍,久而久之,你对系统的“体感”会越来越准。下次系统告警时,你就不再是只能重启试试的新手了。
- 点赞
- 收藏
- 关注作者
评论(0)