每日Linux速学,df与du命令助你高效检查磁盘空间使用情况

在 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

相关内容:

Linux 系统中,磁盘空间不足会直接导致严重问题,以下场景必须依赖 df/du 工具:

  • 预防磁盘满溢:当磁盘分区使用率接近 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 是用户主目录分区)

注意:默认输出中,devtmpfs、tmpfs 等是“临时文件系统”,存储于内存中,并非物理磁盘分区,无需关注其空间占用。

默认输出的单位(1KB)不够直观,且信息可能冗余。df 提供了多个实用选项,可根据需求优化输出:

单位转换

  • -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 是默认值,可省略)。
示例:以 MB 为单位查看 /boot 分区:

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):仅显示指定文件系统类型的分区。
示例:仅查看 xfs 类型的分区:

df -hT -t xfs
  • -x 类型(exclude-type):排除指定文件系统类型的分区(常用于过滤 tmpfs 等临时分区)。
示例:查看所有非 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。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章