Day 3:系统资源监控

Day 3:系统资源监控

今日目标:会看磁盘空间、目录大小、内存使用、系统负载、内核版本——机器状态一目了然 🎯

命令速览

命令 用途 核心参数
df 查看磁盘分区可用空间 -h (人类可读)
du 查看文件/目录占用空间 -sh (汇总) / -sk (KB)
free 查看内存使用情况 -h (人类可读)
uptime 查看系统运行时间与负载 (无参数)
uname 查看内核版本与系统架构 -a (全部信息)
who 查看当前登录用户 (无参数)

逐个击破

① df — 磁盘空间

  • 语法df -h
  • 上手练 🖥️
    1. df -h——查看所有挂载分区的使用情况
    2. df -h /——只看根分区
    3. df -h /tmp——如果 /tmp 是独立分区会单独显示
    4. df -ih——查看 inode 使用情况(小文件过多 inode 也会耗尽)
  • ⚠️ 常见坑df 显示磁盘满了但 du 显示还有空间——可能是已删除但进程还在写的文件占用了空间(lsof | grep deleted

② du — 目录占用空间

  • 语法du -sh <DIR> / du -sh * / du -sk * | sort -n
  • 上手练 🖥️
    1. du -sh /var/log——查看日志目录占用总空间
    2. du -sh /var/log/*——查看每个子项的大小
    3. du -sk /var/log/* | sort -rn | head -10——找到最大的 10 个日志文件(KB 为单位)
    4. du -sh --max-depth=1 ~/——只看 home 目录下一层的占用
    5. du -sh * .[^.]*——包含隐藏文件(.bashrc 等)
  • ⚠️ 常见坑du 统计的是实际占用的磁盘块(block),与 ls -l 看到的文件大小可能不同(稀疏文件)

③ free — 内存使用

  • 语法free -h
  • 上手练 🖥️
    1. free -h——查看总内存、已用、空闲、缓存
    2. free -h -s 2——每 2 秒刷新一次(Ctrl+C 退出)
    3. 理解输出:available 才是真正可用的(含可释放的缓存),不要只看 free
  • ⚠️ 常见坑:Linux 会利用空闲内存做磁盘缓存(buff/cache),看到 free 很小别慌——看 available 列才是真实可用内存

④ uptime — 系统负载

  • 语法uptime
  • 上手练 🖥️
    1. uptime——查看运行时间、用户数、负载
    2. 理解负载:三个数字分别是 1 分钟 / 5 分钟 / 15 分钟的平均负载
    3. 负载 ≈ CPU 核心数时系统满负荷,超过核心数则排队等待
    4. 查看 CPU 核心数:nproccat /proc/cpuinfo | grep processor | wc -l
  • ⚠️ 常见坑:负载高不代表 CPU 忙——等待 I/O(磁盘读写)的进程也会计入负载

⑤ uname — 系统信息

  • 语法uname -a
  • 上手练 🖥️
    1. uname——只显示内核名称
    2. uname -r——内核版本号
    3. uname -a——全部信息(内核名、主机名、版本、架构等)
    4. uname -m——硬件架构(x86_64 表示 64 位)
  • ⚠️ 常见坑uname -r 显示的内核版本和发行版版本(lsb_release -a)是两回事

⑥ who — 当前登录用户

  • 语法who
  • 上手练 🖥️
    1. who——查看哪些用户登录了
    2. who -b——查看系统最后启动时间
    3. w——比 who 更详细,还显示每个用户在运行什么命令
    4. last——查看历史登录记录
  • ⚠️ 常见坑who 只显示通过终端的登录,不显示通过 Web 或 API 访问的用户

今日必刷(全部终端实操)💪

  1. df -h 查看你机器上还有多少磁盘空间,找出占用最高的分区
  2. du -sh ~/ 查看你的 home 目录总大小
  3. 找出你 home 目录下最大的 5 个文件或目录(提示:du -sk ~/* | sort -rn | head -5
  4. 查看系统内存和负载(free -h + uptime),对比负载和 CPU 核心数
  5. 排错题df -h 显示 / 分区使用了 95%,但你 rm -rf 删了一个 2G 的日志文件后,df 显示仍然是 95%——为什么?怎么释放空间?(提示:lsof
  6. 排错题free -h 显示 available 只有 200M,你认为内存不够了,但同事说”Linux 内存管理就这样,可用的在 cache 里”——你怎么验证同事说的是对是错?

📚 命令详解

命令 详细参考
df 文件与目录管理-df
du 文件与目录管理-du
free 系统管理-free
uptime 进程管理-uptime
uname 系统管理-uname
who 权限与用户管理-who