在 Linux 系统中,磁盘空间的管理是一项非常重要的任务。了解如何检查磁盘空间的使用情况,可以帮助你避免因磁盘空间不足而导致的系统问题。Linux 提供了多种命令来帮助你查看磁盘空间的使用情况,其中最常用的两个命令是 `df` 和 `du`。
### `df` 命令
`df` 命令用于显示文件系统的磁盘空间使用情况。它可以告诉你每个挂载点的可用空间、已用空间以及磁盘的总容量。
"基本用法:"
```bash
df
```
"常用选项:"
- `-h`:以人类可读的格式(如 KB、MB、GB)显示磁盘空间,而不是字节。
- `-T`:显示文件系统的类型。
- `-k`:以 1024 字节为单位的块大小显示磁盘空间。
- `-i`:显示 inode 的使用情况,而不是磁盘空间。
"示例:"
```bash
df -h
```
这将显示类似如下的输出:
```
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 793M 1.2M 792M 1% /run
/dev/sda1 20G 10G 9.8G 50% /
tmp
相关内容:
- 预防磁盘满溢:当磁盘分区使用率接近 100% 时,系统会无法创建新文件、写入日志,甚至导致服务崩溃(如数据库无法写入数据)。通过 df 可实时监控分区使用率,提前清理空间;
- 定位大文件/目录:若磁盘空间骤降,需通过 du 快速找到占用空间过大的文件或目录(如冗余日志、未清理的备份文件),避免盲目删除;
- 评估存储规划:在部署新服务(如搭建文件服务器、数据库)前,需通过 df 了解各分区剩余空间,判断是否需要扩容或调整存储路径;
- 排查异常占用:部分场景下,已删除的文件可能因进程未释放句柄而继续占用磁盘空间(“僵尸文件”),需结合 df 与 du 的差异定位此类问题。
在使用 df/du 前,需先理解 Linux 磁盘管理的两个核心概念:- 磁盘分区:Linux 将物理磁盘划分为多个“分区”(如 /dev/sda1、/dev/mapper/centos-root),每个分区对应一个“挂载点”(如 /、/home、/var),用户通过挂载点访问分区;
- 空间单位:磁盘空间通常以字节(Byte)为基础单位,常用换算关系为:1KB = 1024B,1MB = 1024KB,1GB = 1024MB,1TB = 1024GB。df/du 支持多种单位显示,需根据需求选择。
df 命令
df(全称“Disk Free”)是 Linux 系统自带的基础工具,主要用于查看磁盘分区的整体使用情况,包括总空间、已用空间、剩余空间及使用率。它的核心优势是“全局视角”,可快速掌握所有挂载分区的空间状态。df 命令的基本格式极为简单,在终端中直接输入即可查看所有挂载分区的空间信息:df
也可指定具体分区或挂载点,仅查看目标对象的信息:df
例如,仅查看 /home 挂载点的空间情况:df /home
执行 df 后,默认输出如下(以 CentOS 7 系统为例):Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 52403200 1830400 50572800 4% /
devtmpfs 4030464 0 4030464 0% /dev
tmpfs 4042240 0 4042240 0% /dev/shm
tmpfs 4042240 8704 4033536 1% /run
tmpfs 4042240 0 4042240 0% /sys/fs/cgroup
/dev/sda1 508588 12340 496248 3% /boot
/dev/mapper/centos-home 26201088 12340 26188748 1% /home
tmpfs 808448 0 808448 0% /run/user/0
各列含义解读如下:列名 | 含义 |
Filesystem | 磁盘分区的设备文件名(如 /dev/mapper/centos-root 是系统根分区) |
1K-blocks | 分区总空间,单位为 1KB(默认单位) |
Used | 已使用空间,单位为 1KB |
Available | 可用空间(实际可使用的空间,不含系统预留空间),单位为 1KB |
Use% | 分区使用率(已用空间占总空间的百分比),核心指标(通常 >85% 需警惕) |
Mounted on | 分区的挂载点(如 / 是根目录,/home 是用户主目录分区) |
单位转换
- -h(human-readable):以“人类可读”的单位(KB、MB、GB、TB)显示空间大小,最常用选项。
df -h
输出如下(单位自动适配大小):Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 1.8G 48G 4% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.5M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 497M 12M 485M 3% /boot
/dev/mapper/centos-home 25G 12M 25G 1% /home
该选项让空间大小一目了然(如 50G、3.9G),是日常使用的首选。- -k/-m/-g:强制以 KB/MB/GB 为单位显示(-k 是默认值,可省略)。
df -m /boot
输出:
显示文件系统类型
- -T(Type):显示磁盘分区的文件系统类型(如 ext4、xfs、tmpfs),便于区分物理分区与临时文件系统。
df -hT /home
输出:Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-home xfs 25G 12M 25G 1% /home
常见文件系统类型:- ext4:Linux 传统文件系统,兼容性好;
- xfs:CentOS 7+、RHEL 7+ 默认文件系统,支持大分区、高性能;
- tmpfs:临时文件系统,基于内存,重启后数据丢失。
包含/排除特定文件系统
- -t 类型(type):仅显示指定文件系统类型的分区。
df -hT -t xfs
- -x 类型(exclude-type):排除指定文件系统类型的分区(常用于过滤 tmpfs 等临时分区)。
df -hT -x tmpfs

显示inode使用情况
除了“空间大小”,Linux 磁盘分区还存在“inode”资源——inode 是用于存储文件元信息(如文件名、权限、修改时间)的索引节点,每个文件对应一个 inode。当 inode 耗尽时,即使磁盘仍有空间,也无法创建新文件。- -i(inodes):显示分区的 inode 使用情况(总数量、已用数量、可用数量、使用率)。
df -hi /
输出:Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 3276800 1892 3274908 1% /
若 IUse% 接近 100%,需删除大量小文件(如日志碎片)释放 inode。
微信扫一扫打赏
支付宝扫一扫打赏