Linux df 命令及实用示例

LinuxBeginner
立即练习

引言

在本实验中,你将学习如何在 Linux 中使用 df 命令。df (disk free) 命令是一个重要的实用工具,用于显示系统中文件系统的总空间、已用空间和可用空间的详细信息。你将从基本命令开始,学习如何使输出更易读,检查特定路径的使用情况,并最终自定义输出,只显示你需要的信息。完成本实验后,你将能够熟练使用 df 来监控 Linux 系统的磁盘空间。

Linux 命令速查表

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 中级 级别的实验,完成率为 71%。获得了学习者 100% 的好评率。

基本磁盘使用情况报告

首先,你将学习 df 命令的基本用法以及如何格式化其输出以提高可读性。本实验中的所有命令都将在终端中执行。

打开你的终端并运行不带任何选项的 df 命令:

df

你将看到所有已挂载文件系统的报告。输出将类似于:

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         20971520   128764  20842756   1% /
tmpfs              65536        0     65536   0% /dev
tmpfs            8052892        0   8052892   0% /sys/fs/cgroup
shm                65536        0     65536   0% /dev/shm
/dev/nvme1n1   104806400 20643324  84163076  20% /etc/hosts
tmpfs            8052892        0   8052892   0% /proc/acpi
tmpfs            8052892        0   8052892   0% /proc/scsi
tmpfs            8052892        0   8052892   0% /sys/firmware

默认情况下,磁盘空间以 1KB 的块显示,这可能难以理解。为了使输出更用户友好,请使用 -h (human-readable,人类可读) 选项。此选项以 1024 的幂次打印大小(例如,M 表示兆字节,G 表示千兆字节)。

运行带 -h 选项的 df 命令:

df -h

输出现在更容易理解了:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  126M   20G   1% /
tmpfs            64M     0   64M   0% /dev
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/nvme1n1    100G   20G   81G  20% /etc/hosts
tmpfs           7.7G     0  7.7G   0% /proc/acpi
tmpfs           7.7G     0  7.7G   0% /proc/scsi
tmpfs           7.7G     0  7.7G   0% /sys/firmware

以下是各列的说明:

  • Filesystem: 存储设备名称。
  • Size: 文件系统的总大小。
  • Used: 当前已使用的空间量。
  • Avail: 可供使用的空间量。
  • Use%: 已使用磁盘空间的百分比。
  • Mounted on: 文件系统挂载的目录。

检查特定路径

df 命令还可以报告包含特定文件或目录的文件系统。当你想要了解某个特定目录所在分区还剩多少空间时,这会非常有用。需要记住的是,df 报告的是整个文件系统,而不是目录本身的大小。

首先,检查根目录(用 / 表示)的磁盘使用情况:

df -h /

输出将显示你系统根目录挂载点的信息:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  126M   20G   1% /

接下来,检查你当前工作目录的磁盘使用情况。你的终端的默认路径是 ~/project,它位于你的主目录下。你可以使用点 . 来表示当前目录。

df -h .

输出将显示你 ~/project 目录所在文件系统的磁盘使用情况。在此环境中,它与根文件系统相同:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  126M   20G   1% /

这证实了你的项目目录位于主文件系统上,并显示了该分区上的总可用空间。

显示文件系统类型和 inode 信息

除了磁盘空间,df 还可以提供关于文件系统的其他有用详细信息,例如其类型和 inode 使用情况。

要显示文件系统类型,请使用 -T (print-type,打印类型) 选项。这会在输出中添加一个 Type 列,显示 overlaytmpfsxfs 等格式。

运行以下命令以人类可读的格式查看文件系统类型:

df -hT

输出现在将包含 Type 列:

Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay   20G  126M   20G   1% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    7.7G     0  7.7G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/nvme1n1   xfs      100G   20G   81G  20% /etc/hosts
tmpfs          tmpfs    7.7G     0  7.7G   0% /proc/acpi
tmpfs          tmpfs    7.7G     0  7.7G   0% /proc/scsi
tmpfs          tmpfs    7.7G     0  7.7G   0% /sys/firmware

你还可以检查 inode 使用情况。inode 是文件系统上的一个数据结构,它存储了关于文件或目录的所有信息,但不包括其名称和实际数据。即使磁盘空间仍有剩余,文件系统也可能耗尽 inode。要检查 inode 使用情况,请使用 -i 选项。

df -i

此命令显示 inode 的总数以及已使用和可用的数量:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
overlay        52428800 657612 51771188    2% /
tmpfs           2013223     16  2013207    1% /dev
tmpfs           2013223     17  2013206    1% /sys/fs/cgroup
shm             2013223      1  2013222    1% /dev/shm
/dev/nvme1n1   52428800 657612 51771188    2% /etc/hosts
tmpfs           2013223      1  2013222    1% /proc/acpi
tmpfs           2013223      1  2013222    1% /proc/scsi
tmpfs           2013223      1  2013222    1% /sys/firmware

自定义输出

为了脚本编写或特定的报告需求,你可能只想显示某些列。df 命令提供了 --output 选项来自定义报告中显示的字段。

你可以指定想要查看的字段列表。常用字段包括 source (文件系统)、fstype (文件系统类型)、sizeusedavailpcent (使用百分比) 和 target (挂载点)。

让我们创建一个自定义报告,以人类可读的格式显示文件系统源、大小、已用空间、可用空间和挂载点。

df -h --output=source,size,used,avail,target

此命令会生成一个简洁的自定义表格,只包含你请求的列:

Filesystem      Size  Used Avail Mounted on
overlay          20G  126M   20G /
tmpfs            64M     0   64M /dev
tmpfs           7.7G     0  7.7G /sys/fs/cgroup
shm              64M     0   64M /dev/shm
/dev/nvme1n1    100G   20G   81G /etc/hosts
tmpfs           7.7G     0  7.7G /proc/acpi
tmpfs           7.7G     0  7.7G /proc/scsi
tmpfs           7.7G     0  7.7G /sys/firmware

此功能对于生成简洁的报告或将数据输入其他脚本非常强大,因为它允许你精确控制输出格式。

总结

在本实验中,你学会了如何使用 df 命令来监控 Linux 中的文件系统磁盘空间。你从基本命令开始,然后使用 -h 选项获取人类可读的输出。你还练习了检查特定路径的磁盘空间,并了解了 df 命令报告的是整个文件系统这一重要区别。最后,你探索了 -T 查看文件系统类型、-i 检查 inode 使用情况以及 --output 创建自定义报告等高级选项。这些技能对任何 Linux 用户或系统管理员来说都是基础性的。

Linux 命令备忘单