菜鸟科技网

Linux中df命令如何查看磁盘使用情况?

在Linux系统中,df命令(disk free)是一个用于显示磁盘空间使用情况的基本工具,它能够帮助用户快速了解文件系统的总容量、已用空间、可用空间以及挂载点等信息,无论是系统管理员还是普通用户,掌握df命令的使用方法都是管理磁盘空间的重要技能,本文将详细介绍df命令的功能、常用选项、输出格式解析以及实际应用场景,并通过表格形式清晰展示不同选项的效果,最后附上相关问答(FAQs)以解答常见疑问。

Linux中df命令如何查看磁盘使用情况?-图1
(图片来源网络,侵删)

df命令的基本功能与默认输出

直接在终端输入df命令,系统会列出所有已挂载文件系统的磁盘空间使用情况,默认输出通常包含以下列:

  • Filesystem:文件系统的设备名称或挂载点标识。
  • Size:文件系统的总容量(通常以KB为单位)。
  • Used:已使用的空间。
  • Avail:可用空间(即普通用户可使用的空间,会考虑保留空间)。
  • Use%:已用空间的百分比。
  • Mounted on:文件系统的挂载点。

在Ubuntu系统中运行df,可能输出如下:

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      104857600  20971520  78684480  21% /
tmpfs            2097152         0   2097152   0% /dev/shm
/dev/sdb1      207424256 104857600 102716656  51% /data

这里,/dev/sda1是根分区,总容量约100GB,已用20GB,可用78GB;/dev/sdb1是数据分区,已用51%的空间。

df命令的常用选项及功能

df命令支持多种选项,用于定制输出格式或显示特定信息,以下是常用选项的详细说明:

Linux中df命令如何查看磁盘使用情况?-图2
(图片来源网络,侵删)
选项 全称 功能描述 示例
-h --human-readable 以人类可读格式显示(如KB、MB、GB) df -h
-T --print-type 显示文件系统类型(如ext4、xfs) df -T
-i --inodes 显示inode使用情况而非磁盘块 df -i
-t --type= 只显示指定类型的文件系统 df -t ext4
-x --exclude-type= 排除指定类型的文件系统 df -x tmpfs
--total 显示所有文件系统的汇总信息 df --total
-P --portability 使用POSIX格式输出,避免截断长路径 df -P

-h选项:人类可读格式

默认情况下,df以KB为单位显示容量,对于大容量磁盘不直观,使用-h选项后,输出会自动转换为合适的单位:

df -h

输出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        100G   20G   78G  21% /
/dev/sdb1        200G  100G   98G  51% /data

-T选项:显示文件系统类型

不同文件系统(如ext4、xfs、ntfs)的特性不同,通过-T选项可明确类型:

df -T

输出示例:

Linux中df命令如何查看磁盘使用情况?-图3
(图片来源网络,侵删)
Filesystem     Type     1K-blocks      Used Available Use% Mounted on
/dev/sda1      ext4      104857600  20971520  78684480  21% /
/dev/sdb1      xfs       207424256 104857600 102716656  51% /data

-i选项:检查inode使用情况

inode是Linux中存储文件元数据的关键结构,当磁盘空间未满却无法创建新文件时,可能是inode耗尽,使用-i选项可查看inode使用情况:

df -i

输出示例:

Filesystem     Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1     2621440  524288 2097152   20% /
/dev/sdb1     5242880 1048576 4194304   20% /data

-t-x选项:过滤文件系统类型

若只想查看特定类型的文件系统(如ext4),或排除临时文件系统(如tmpfs、proc):

df -t ext4          # 只显示ext4文件系统
df -x tmpfs        # 排除tmpfs文件系统

--total选项:汇总信息

通过--total选项可快速查看所有文件系统的总容量、已用空间和可用空间的汇总值:

df --total

输出示例:

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      104857600  20971520  78684480  21% /
/dev/sdb1      207424256 104857600 102716656  51% /data
total          312281856 125729120 181401136  41% -

df命令的实际应用场景

  1. 磁盘空间监控:定期运行df -h,检查各分区使用率,避免因空间不足导致服务中断,当Use%超过90%时,需清理或扩容。
  2. inode排查:若提示“No space left on device”但磁盘仍有剩余空间,可用df -i检查inode是否耗尽。
  3. 文件系统类型识别:通过df -T确认分区类型,便于选择合适的修复工具(如ext4的e2fsck)。
  4. 排除特殊文件系统:在计算实际可用空间时,使用df -x tmpfs -x devtmpfs排除虚拟文件系统,避免数据偏差。

注意事项

  1. 保留空间的影响Avail列显示的是普通用户可用的空间,Linux会为root用户保留一定比例(通常5%)的空间,因此Used + Avail < Size
  2. 未挂载文件系统:df默认不显示未挂载的文件系统,需通过df -h /dev/sdc1查看特定分区的信息。
  3. 输出格式差异:不同Linux发行版的df输出可能略有不同,可通过man df查看手册页确认细节。

相关问答(FAQs)

Q1: 为什么df显示的已用空间(Used)加上可用空间(Avail)不等于总空间(Size)?
A1: 这是因为Linux文件系统会为root用户保留一部分空间(默认5%),以防止普通用户耗尽所有空间导致系统崩溃,一个100GB的分区,普通用户只能使用95GB,剩余5%仅root可使用。Used + Avail < Size是正常现象,若需查看实际总空间,可使用df -B 1(以字节为单位)或查看文件系统超级块信息。

Q2: 如何使用df命令快速定位哪个目录占用了最多空间?
A2: df命令本身不显示目录级别的磁盘使用情况,但可结合du命令实现,先通过df -h找到高使用率的挂载点(如/data),再运行du -sh /data/* | sort -hr,按大小排序显示该目录下各子目录的占用情况,若需实时监控,可使用ncdu(ncurses disk usage)工具交互式分析。

分享:
扫描分享到社交APP
上一篇
下一篇