df 是 Disk Free 的缩写,是 Linux 和其他类 Unix 系统中一个最基本、最常用的命令,它的核心功能是 显示文件系统的磁盘空间使用情况。

df 告诉你:
- 每个磁盘分区(或挂载点)的总容量有多大。
- 已经使用了多少空间。
- 还剩下多少空间可用。
- 空间使用的百分比是多少。
基本用法
直接在终端输入 df,然后按回车,你会看到类似下面的输出:
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 104857600 20971520 78286080 21% / tmpfs 4194304 0 4194304 0% /dev/shm /dev/sdb1 209715200 52428800 157286400 26% /data
输出列详解:
| 列名 | 含义 | 解释 |
|---|---|---|
| Filesystem | 文件系统 | 显示的是磁盘分区的设备名(如 /dev/sda1)或挂载点(如果使用了 -P 选项)。 |
| 1K-blocks | 总大小(1K块) | 文件系统的总容量,单位是 1KB 的块,这个数字可能看起来很大,因为它是以 KB 为单位的。 |
| Used | 已用空间 | 已使用的磁盘空间,单位同样是 1KB 块。 |
| Available | 可用空间 | 普通用户可以使用的剩余空间,这个值通常比 Total - Used 要小,因为系统会为 root 用户预留一部分空间。 |
| Use% | 使用率 | 已用空间占总空间的百分比,这是监控磁盘是否快满的关键指标。 |
| Mounted on | 挂载点 | 该文件系统被挂载到了哪个目录下(如 , /data 等),所有对该目录的文件访问,实际上都是在对这个文件系统进行操作。 |
常用选项(参数)
df 命令的强大之处在于它的选项,可以让你获取更精确、更易读的信息。

-h (Human-readable) - 以人类可读的格式显示
这是最常用的选项,它会自动选择合适的单位(K, M, G, T)来显示大小,让数据一目了然。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 20G 75G 21% / tmpfs 4.0G 0 4.0G 0% /dev/shm /dev/sdb1 200G 50G 150G 26% /data
对比上面的 -k (默认) 输出,这个是不是清晰多了?
-T (Type) - 显示文件系统类型
除了空间信息,还会显示每个分区的文件系统类型,如 ext4, xfs, ntfs, nfs 等。
$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 100G 20G 75G 21% / tmpfs tmpfs 4.0G 0 4.0G 0% /dev/shm /dev/sdb1 xfs 200G 50G 150G 26% /data
-i (Inodes) - 显示 inode 使用情况
inode 是 Linux/Unix 中用于存储文件元数据(如文件名、权限、所有者、大小、数据块位置等)的数据结构。inode 耗尽 也是一个常见的磁盘“满”了的情况,即使磁盘还有剩余空间(比如存放了大量的小文件)。

$ df -ih Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 26.2M 1.2M 25.0M 5% / tmpfs 1048576 0 1048576 0% /dev/shm /dev/sdb1 52.4M 1.5M 50.9M 3% /data
- IUse% 显示 inode 的使用率,如果这个值达到 100%,即使磁盘空间还有,也无法再创建新文件。
-x <type> 或 --exclude-type=<type> - 排除特定类型的文件系统
有时候你不想看某些虚拟文件系统的信息,tmpfs 或 squashfs。
# 排除 tmpfs 文件系统 $ df -h -x tmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 20G 75G 21% / /dev/sdb1 200G 50G 150G 26% /data
--output=<field_list> - 自定义输出列
这个选项非常灵活,可以让你只关心自己想要的列。
# 只显示挂载点、总大小、使用率和文件系统类型 $ df --output=source,fstype,size,usep mounted on Source Fstype Size Use% Mounted on /dev/sda1 ext4 100G 21% / tmpfs tmpfs 4.0G 0% /dev/shm /dev/sdb1 xfs 200G 26% /data
常用字段有:source, fstype, itotal, iused, ipcent, size, used, avail, pcent, target (挂载点)。
实际应用场景
-
快速检查磁盘空间 最常用的组合:
df -h,运维和开发者经常用它来快速检查哪个分区快满了。# 查看根分区 / 的使用情况 $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 95G 2.1G 98% /
看到这个输出,管理员就会立刻警觉,因为根分区只剩下 2.1G 空间了,需要赶紧清理。
-
排查“磁盘已满”但找不到大文件的问题 当应用提示磁盘空间不足,但你用
du命令查找大文件时却找不到,这很可能是 inode 耗尽了,这时就需要使用df -i来检查 inode 的使用情况。 -
监控特定目录所在的分区 如果你的应用数据都放在
/var/log目录下,你可能想只看这个分区的情况,可以这样:# 找到 /var/log 挂载在哪个分区 $ df -h /var/log Filesystem Size Used Avail Use% Mounted on /dev/sda2 50G 45G 3.1G 93% /var
这样就能更精确地监控日志分区。
| 命令 | 功能 | 示例 |
|---|---|---|
df |
显示磁盘空间使用情况(默认1K块) | df |
df -h |
最常用,以人类可读格式显示 | df -h |
df -T |
显示文件系统类型 | df -hT |
df -i |
显示 inode 使用情况 | df -ih |
df -x tmpfs |
排除特定文件系统 | df -h -x tmpfs |
df --output=... |
自定义输出列 | df --output=source,fstype,size,pcent |
df 是 Linux 系统管理和日常运维中不可或缺的工具,掌握它的基本用法和常用选项,是排查磁盘问题和进行系统监控的基础。
