阿森博客 VPS推荐
专注于真实的VPS测评

Linux进阶-磁盘管理:du、df、lsblk

在 Linux 中,dudf 和 lsblk 是管理磁盘空间和分区的重要命令。以下是详细的学习指南:

1. du:查看磁盘使用情况(Disk Usage)

用途:统计文件和目录占用的磁盘空间
常用选项:
  • -h:人类可读格式(KB/MB/GB)
  • -s:仅显示总大小(不显示子目录)
  • -a:显示所有文件(包括普通文件)
  • -c:显示总计
  • --max-depth=N:限制目录深度
  • --exclude:排除特定模式

常用示例

  1. # 查看当前目录各子目录大小
  2. du -h
  3. # 查看目录总大小(汇总)
  4. du -sh /home
  5. # 查看目录下所有文件/子目录的大小(深度=1)
  6. du -h --max-depth=1 /var
  7. # 统计特定类型文件的总大小(如 .log 文件)
  8. du -ch *.log | grep total
  9. # 排除特定目录(如 node_modules)
  10. du -h --exclude="node_modules"

2. df:查看文件系统磁盘空间(Disk Free)

用途:显示已挂载文件系统的可用空间
常用选项:
  • -h:人类可读格式
  • -T:显示文件系统类型
  • -i:显示 inode 使用情况
  • -x:排除特定文件系统类型

常用示例

  1. # 显示所有文件系统的磁盘使用(含类型)
  2. df -Th
  3. # 仅显示 ext4 文件系统
  4. df -Th -t ext4
  5. # 排除 tmpfs 文件系统
  6. df -h -x tmpfs
  7. # 查看 inode 使用情况(防小文件占满)
  8. df -ih
  9. # 查看特定目录所在分区的空间(如 /home)
  10. df -h /home

3. lsblk:查看块设备信息

用途:以树状结构显示磁盘和分区信息
常用选项:
  • -f:显示文件系统类型和 UUID
  • -o:自定义输出列(如 NAME,SIZE,FSTYPE,MOUNTPOINT)
  • -p:显示完整设备路径
  • -m:显示权限信息

 

  1. # 基本使用:树状显示所有块设备
  2. lsblk
  3. # 显示文件系统信息(关键!)
  4. lsblk -f
  5. # 自定义输出列(名称、大小、类型、挂载点)
  6. lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
  7. # 显示完整设备路径(如 /dev/sda1)
  8. lsblk -p
  9. # 结合 grep 过滤特定设备
  10. lsblk | grep sda

三者的核心区别

命令
主要用途
关键差异


du统计文件/目录的实际占用空间递归计算文件内容大小
df查看文件系统的可用空间基于分区统计,显示挂载点的整体使用
lsblk查看物理/逻辑磁盘结构显示设备层级(磁盘→分区→逻辑卷)

使用场景对比

当你想知道:

  • 某个目录占多大空间 → du -sh /path/to/dir
  • 磁盘还剩多少空间 → df -h
  • 分区是否已挂载 → lsblk -f
  • 磁盘分区结构 → lsblk

为什么磁盘满了

  1. df -h              # 先定位满的分区
  2. du -sh /*          # 检查根目录下各目录大小
  3. du -h --max-depth=1 /var | sort -h  # 深度1排序

高级技巧
找出大文件

  1. # 查找当前目录下大于 100MB 的文件
  2. find . -type f -size +100M -exec du -h {} \;

监控目录变化

  1. # 每 2 秒刷新 /tmp 的大小
  2. watch -n 2 "du -sh /tmp"

排除挂载点(避免重复统计):

  1. du -h --exclude=/mnt/*

常见问题解决

  • df 和 du 结果不一致?
    • 可能原因:文件被删除但仍被进程占用(需重启进程或清空句柄)
    • 检查命令:lsof +L1 查看已删除但未释放的文件
  • 磁盘满但找不到大文件?
    • 检查 inode 使用:df -ih
    • 可能原因:大量小文件占满 inode
  • LVM 逻辑卷信息:

 

  1. lsblk -f  # 显示逻辑卷路径(如 /dev/mapper/vg-root)
  2. df -Th /dev/mapper/vg-root  # 查看其空间

掌握这三个命令,你将能高效分析和解决 Linux 磁盘空间问题!

未经允许不得转载:阿森博客 » Linux进阶-磁盘管理:du、df、lsblk