df (disk free) 命令是 Linux 系统中用于显示文件系统磁盘空间使用情况的常用工具。它可以报告文件系统的总容量、已用空间、可用空间以及挂载点等信息。

基本语法

df [选项] [文件或目录]

常用选项

  1. -h 或 --human-readable

    • 以易读格式显示大小(KB, MB, GB)
    • 示例:df -h
  2. -T 或 --print-type

    • 显示文件系统类型
    • 示例:df -Th
  3. -i 或 --inodes

    • 显示 inode 使用情况而非块使用情况
    • 示例:df -i
  4. -x 或 --exclude-type

    • 排除指定类型的文件系统
    • 示例:df -x tmpfs
  5. –total

    • 显示所有文件系统的总计
    • 示例:df --total

输出解读

典型 df -h 输出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   5G   14G  27% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
/dev/sdb1       100G   30G   70G  30% /data

各列含义:

  • Filesystem: 文件系统的设备名称
  • Size: 文件系统的总容量
  • Used: 已使用的空间
  • Avail: 可用的空间
  • Use%: 使用百分比
  • Mounted on: 挂载点

实用示例

  1. 查看特定目录所在分区的空间

    df /home
    
  2. 查看所有 ext4 文件系统的空间

    df -t ext4
    
  3. 排除临时文件系统

    df -x tmpfs -x devtmpfs
    
  4. 查看 inode 使用情况

    df -i
    
  5. 以 JSON 格式输出

    df --output=source,fstype,size,used,avail,pcent,target -P | jq -nR '[inputs | split(" ") | {source:.[0], fstype:.[1], size:.[2], used:.[3], avail:.[4], pcent:.[5], target:.[6]}]'
    

注意事项

  1. df 命令显示的是文件系统级别的信息,不是目录级别的详细信息(如需目录详情应使用 du 命令)

  2. 某些特殊文件系统(如 proc、sysfs 等)可能会显示 0 大小,这是正常现象

  3. 当磁盘空间接近满时(如超过 90%),应考虑清理或扩容

  4. 某些 NFS 挂载点可能需要 root 权限才能查看完整信息

高级用法

  1. 监控磁盘空间变化

    watch -n 5 df -h
    
  2. 与 find 命令结合查找大文件

    df -h / && find / -xdev -size +100M -exec ls -lh {} \;
    
  3. 自动化磁盘空间告警

    df -h | awk '$5+0 > 80 {print "警告: "$1" 使用率 "$5}'
    

通过掌握 df 命令的这些用法,系统管理员可以有效地监控和管理 Linux 系统的磁盘空间使用情况。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐