掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

Linux查看硬盘空间命令(df、du、lsblk)的使用方法详解

在Linux系统运维和日常使用中,磁盘空间不足是最常见的问题之一——应用无法写日志、数据库无法落盘、容器镜像拉取失败,往往都指向同一个原因。Linux提供了三个核心命令来应对不同维度的空间查看需求:df关注文件系统级别的剩余空间,du深入目录级别统计实际占用,lsblk则从硬件层面展示磁盘和分区的物理结构。掌握这三个命令的用法和配合方式,是高效排查磁盘问题的基础。

一、df命令——查看文件系统级别的磁盘使用情况

  1. 核心原理:df(disk free)通过读取文件系统的超级块(Super Block)信息,显示每个已挂载文件系统的总容量、已用空间、可用空间和使用率。它关注的是"挂载点还有多少空间",适合快速判断整台机器或某个分区是否快满。

  2. 常用参数:-h以人类可读格式(G/M/K)显示;-T额外显示文件系统类型(如ext4、xfs);-i显示inode使用情况而非磁盘块;-a显示所有文件系统(含tmpfs等虚拟文件系统);-x 类型排除指定文件系统类型;--total在末尾追加总计行。

  3. 典型用法:

# 查看所有文件系统的空间使用情况(最常用)
df -h

# 查看文件系统类型,便于排查容器或网络挂载问题
df -Th

# 查看inode使用情况(排查"有空间但无法创建文件"的问题)
df -ih

# 查看指定目录所在分区的空间
df -h /var/log

# 排除虚拟文件系统,让输出更聚焦
df -h -x tmpfs -x devtmpfs
  1. 输出解读:输出包含Filesystem(设备名)、Size(总容量)、Used(已用)、Avail(可用)、Use%(使用率)、Mounted on(挂载点)六列。排查时重点关注Use%和Mounted on两列,当使用率超过85%时就应引起警觉。

二、du命令——查看目录和文件级别的磁盘占用

  1. 核心原理:du(disk usage)通过递归扫描目录树,统计指定目录或文件的实际磁盘占用量。与df不同,du统计的是文件系统中真实存在的文件所占空间,不包含已被删除但仍被进程占用的文件。

  2. 常用参数:-h以人类可读格式显示;-s仅显示总计大小,不列出子目录明细;-a显示所有文件和目录(而非仅目录);--max-depth=N控制显示的目录层级深度;-c在末尾追加总计行;--exclude=模式排除匹配的文件或目录。

  3. 典型用法:

# 查看指定目录的总大小
du -sh /home

# 查看某目录下各一级子目录的大小
du -h --max-depth=1 /var

# 找出当前目录下占用空间最大的前10项
du -ah . 2>/dev/null | sort -rh | head -n 10

# 查看根目录下各目录占用,快速定位空间大户
du -sh /* 2>/dev/null | sort -rh | head -10
  1. 注意事项:当目录下文件数量极多时,du -sh *可能触发"Argument list too long"错误,建议改用du -h --max-depth=1代替。此外,du统计结果可能因权限不足而遗漏部分目录,必要时需加sudo执行。

三、lsblk命令——查看磁盘和分区的物理结构

  1. 核心原理:lsblk(list block devices)从sysfs文件系统中读取信息,以树状结构展示所有块设备(物理磁盘、分区、LVM逻辑卷等)的层级关系、容量和挂载点。它不直接显示剩余空间,而是帮助理解"磁盘是怎么分区的、分区挂在哪里"。

  2. 常用参数:-f显示文件系统类型、UUID和标签;-d仅显示磁盘设备本身,不展开分区;-o 列名自定义输出列;-l以平铺列表格式输出(不显示树状结构);-J以JSON格式输出,适合脚本解析;-m显示设备权限信息。

  3. 典型用法:

# 查看所有块设备的树状结构
lsblk

# 查看文件系统类型和UUID等详细信息
lsblk -f

# 仅显示物理磁盘,不展开分区
lsblk -d

# 自定义输出列
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
  1. 输出解读:输出中NAME列展示设备层级(如sda下包含sda1、sda2),SIZE列显示容量,TYPE列区分disk(物理磁盘)、part(分区)、lvm(逻辑卷)等类型,MOUNTPOINT列显示挂载路径。需要注意的是,lsblk显示的是设备的物理容量,而非文件系统的可用空间。

四、三者的配合使用与常见问题

  1. 标准排查流程:先用df -h快速定位哪个挂载点空间不足,再用du -h --max-depth=1 /对应挂载点逐层深入定位空间大户,最后用lsblk确认磁盘分区结构以便规划扩容方案。这三步构成了磁盘空间排查的完整链路。

  2. df和du结果不一致的原因:最常见的原因是文件已被删除但仍被进程占用(df统计的是文件系统层面的已用空间,包含这些"幽灵文件")。可通过lsof | grep deleted查找这类文件,重启相关进程后即可释放空间。此外,文件系统预留空间(如ext4为root保留5%)和元数据占用也会导致两者存在差异。

  3. inode耗尽问题:当df -h显示空间充足但创建文件报"No space left on device"时,需执行df -ih检查inode使用率。小文件数量过多(如缓存目录、会话文件堆积)会耗尽inode,此时需清理大量小文件而非关注大文件。

Linux查看硬盘空间命令(df、du、lsblk)的使用方法详解

三个命令各司其职:df回答"分区还剩多少空间",du回答"哪些目录/文件占了空间",lsblk回答"磁盘是怎么分区的"。在日常运维中,推荐优先使用df -h做快速巡检,发现问题后用du深入定位,需要扩容时再用lsblk查看物理结构。三者配合使用,能够覆盖从宏观到微观的全部磁盘空间排查场景,是Linux系统管理中不可或缺的基础技能。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 手机三个月停机次数

    通过手机号码查询近3个月总停机次数标签信息,统计近3个月内停机的次数。

    通过手机号码查询近3个月总停机次数标签信息,统计近3个月内停机的次数。

  • 手机用户年龄评分

    通过手机号查询判断该号码实名用户年龄区间标签信息。

    通过手机号查询判断该号码实名用户年龄区间标签信息。

  • 手机近三个月话费评分

    通过三网运营商手机号码和指定月份,查询号码近3个月话费消费区间标签详情及评分。

    通过三网运营商手机号码和指定月份,查询号码近3个月话费消费区间标签详情及评分。

  • 营运车辆判定查询

    通过车架号或车牌号查询车辆是否为营运车辆

    通过车架号或车牌号查询车辆是否为营运车辆

  • VIN查车辆信息-精准版

    通过车架号查询车辆的如品牌名称、车系名称、车型、排量、排放标准、外形尺寸、轮胎规格、变速器类型、公告号、轴距等等详细信息

    通过车架号查询车辆的如品牌名称、车系名称、车型、排量、排放标准、外形尺寸、轮胎规格、变速器类型、公告号、轴距等等详细信息

0512-88869195
客服微信二维码

微信扫码,咨询客服

数 据 驱 动 未 来
Data Drives The Future