df -h命令可查看Linux磁盘空间使用情况,并以人性化单位(如GB/MB)显示结果,便于快速掌握磁盘状态。
在 Linux 或 Unix 系统管理中,及时了解磁盘空间的使用情况至关重要。df
(Disk Free)命令是完成这项任务的核心工具,而 df -h
则是其最常用、最用户友好的形式,它能以人类可读的格式(如 GB、MB)清晰展示文件系统的磁盘空间总量、已用量和剩余量。
命令作用与核心价值
- 核心功能: 报告文件系统的磁盘空间使用情况。
-h
参数的意义:-h
或--human-readable
选项让命令的输出结果自动转换单位(Bytes, KB, MB, GB, TB),避免显示一长串难以直观理解的字节数字,极大提升可读性。- 核心价值: 快速诊断磁盘空间不足问题,监控存储资源消耗,为系统维护、日志清理、数据迁移等操作提供关键依据。
基本用法与输出解读
直接在终端输入命令:
df -h
典型输出示例:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 787M 1.7M 785M 1% /run
/dev/nvme0n1p2 234G 89G 134G 40% /
tmpfs 3.9G 98M 3.8G 3% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/nvme0n1p1 511M 6.1M 505M 2% /boot/efi
tmpfs 787M 88K 787M 1% /run/user/1000
逐列解读输出结果:
Filesystem
: 显示磁盘分区或存储设备的名称(如/dev/nvme0n1p2
)或特殊文件系统(如tmpfs
,udev
)。Size
: 该文件系统总容量(-h
使其显示为 GB/MB 等)。Used
: 该文件系统已使用的空间。Avail
: 普通用户可用的剩余空间(通常考虑了为 root 保留的空间)。Use%
: 已用空间占总容量的百分比,这是快速判断空间紧张程度的关键指标(如 90%+ 通常需要关注)。Mounted on
: 该文件系统在目录树中的挂载点(即你访问该磁盘空间的路径,如根目录 、/boot/efi
等)。
常用参数组合与场景
df -h
可以与其他参数结合,满足更具体的需求:
-
查看特定文件系统/目录:
df -h /home # 查看 /home 目录所在分区的空间 df -h /dev/nvme0n1p1 # 查看指定设备(如 /dev/nvme0n1p1)的空间
-
显示文件系统类型 (
-T
):df -hT
输出增加
Type
列: 显示文件系统类型(如ext4
,xfs
,btrfs
,tmpfs
,vfat
等),有助于了解存储格式。 -
排除特定文件系统类型 (
-x
):df -h -x tmpfs # 排除所有 tmpfs 类型(内存文件系统)的显示 df -h -x squashfs -x tmpfs # 排除多种类型
常用于过滤掉不关心的临时或虚拟文件系统,聚焦物理磁盘。
-
仅显示本地文件系统 (
-l
):df -hl
排除网络文件系统(NFS, SMB/CIFS 等),只显示本地连接的磁盘。
-
显示 inode 使用情况 (
-i
):df -hi # 结合 -h 显示可读格式
输出变化:
Size
,Used
,Avail
,Use%
列变为 inode 的数量信息(而非磁盘空间),当磁盘空间充足但系统提示“No space left on device”时,很可能是 inode 耗尽(常见于存储大量小文件的场景)。
高级技巧与注意事项
-
理解
Avail
vsFree
:df
显示的Avail
(Available) 是普通用户实际可用的空间。- 文件系统通常会为 root 用户保留一部分空间(通常是 5%),这部分空间包含在
Used
中,但不计入Avail
。Free
空间(未在df -h
中直接显示)是Size - Used
的总剩余,包含了 root 保留空间。Avail
<=Free
。
-
处理“stale file handle”错误:
如果挂载点失效或 NFS 出现问题,df
可能卡住或报此错,使用-l
排除网络文件系统或检查挂载状态 (mount
命令) 通常能解决。 -
--output
选项 (较新版本):
允许自定义输出列,提供更灵活的报告:df -h --output=source,fstype,size,used,avail,pcent,target # source(设备), fstype(类型), size, used, avail, pcent(使用%), target(挂载点)
-
与
du
命令区分:df
: 报告整个文件系统/分区的磁盘使用情况。du
: 报告特定目录或文件占用的磁盘空间,两者用途不同,常结合使用(如df -h
发现某分区快满了,再用du -sh *
进入该分区查找大文件/目录)。
最佳实践建议
- 定期检查: 将
df -h
纳入日常系统监控脚本或手动检查流程。 - 关注关键分区: 重点监控根目录 ()、
/var
(日志)、/home
(用户数据)、数据库目录等易增长的分区。 - 结合
Use%
和Avail
: 百分比高 (>80%) 或Avail
绝对值低(如 <10GB)都是需要清理或扩容的信号。 - 警惕 inode 耗尽:
df -hi
显示Use%
接近 100%,即使空间充足,也需要删除文件或扩充分区以增加 inode 数量。 - 理解输出来源: 明确
df
报告的是挂载点级别的信息,一个物理磁盘的不同分区会显示为不同的行。
df -h
是 Linux/Unix 系统管理员和开发者必备的、用于快速评估磁盘空间健康状况的基石命令,其简洁的输出(得益于 -h
选项)和丰富的信息(总量、已用、可用、使用率、挂载点)使其成为排查磁盘空间问题的首选工具,掌握其基本用法、输出解读以及常用参数组合(如 -hT
, -hi
, -l
),将极大提升你管理服务器或开发环境的效率,养成定期运行 df -h
的习惯,是预防磁盘空间危机的有效手段。
引用说明:
- 基于 GNU coreutils 中
df
命令的官方文档 (info coreutils 'df invocation'
或man df
)。 - 文件系统行为(如 root 保留空间、inode 概念)参考了 The Linux Kernel Documentation 及相关文件系统(如 ext4, XFS)的规范。
- 最佳实践部分综合了广泛的系统管理社区经验(如 Server Fault, Unix & Linux Stack Exchange)和行业标准运维指南。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9097.html