找回密码
 立即注册
查看: 45|回复: 0

Linux 磁盘管理:du、df、lsblk

[复制链接]

79

主题

161

回帖

1449

积分

超级版主

积分
1449
发表于 2025-6-12 19:46:46 | 显示全部楼层 |阅读模式
在 Linux 中,dudflsblk 是管理磁盘空间和分区的重要命令。以下是详细的学习指南:

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 磁盘空间问题!

非凡云致力于提供高品质、高性价比的云服务产品
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|非凡云交流社区 ( 蜀ICP备2023029164号-2 )

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表