引言
在本实验中,你将学习如何在 Linux 中使用 df 命令。df (disk free) 命令是一个重要的实用工具,用于显示系统中文件系统的总空间、已用空间和可用空间的详细信息。你将从基本命令开始,学习如何使输出更易读,检查特定路径的使用情况,并最终自定义输出,只显示你需要的信息。完成本实验后,你将能够熟练使用 df 来监控 Linux 系统的磁盘空间。
在本实验中,你将学习如何在 Linux 中使用 df 命令。df (disk free) 命令是一个重要的实用工具,用于显示系统中文件系统的总空间、已用空间和可用空间的详细信息。你将从基本命令开始,学习如何使输出更易读,检查特定路径的使用情况,并最终自定义输出,只显示你需要的信息。完成本实验后,你将能够熟练使用 df 来监控 Linux 系统的磁盘空间。
首先,你将学习 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% /
这证实了你的项目目录位于主文件系统上,并显示了该分区上的总可用空间。
除了磁盘空间,df 还可以提供关于文件系统的其他有用详细信息,例如其类型和 inode 使用情况。
要显示文件系统类型,请使用 -T (print-type,打印类型) 选项。这会在输出中添加一个 Type 列,显示 overlay、tmpfs 或 xfs 等格式。
运行以下命令以人类可读的格式查看文件系统类型:
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 (文件系统类型)、size、used、avail、pcent (使用百分比) 和 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 用户或系统管理员来说都是基础性的。