Linux常用命令学习笔记:df

1. 命令概述

  • 命令名称df(英文全拼:disk free)
  • 核心功能显示磁盘空间使用情况
  • 主要用途:查看文件系统的磁盘空间占用情况
  • 特点:显示磁盘总容量、已用空间、可用空间、使用百分比和挂载点

2. 语法格式

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

3. 常用选项

选项说明
-h以人类可读的格式显示(KB、MB、GB)
-T显示文件系统类型
-i显示inode使用情况
-a显示所有文件系统
-l只显示本地文件系统
-t只显示指定类型的文件系统
-x排除指定类型的文件系统
--total显示总计信息
--help显示帮助信息
--version显示版本信息

4. 基本操作

(1) 基本磁盘空间查看

# 显示所有文件系统的磁盘使用情况
df

# 以人类可读格式显示
df -h

# 显示文件系统类型
df -T

# 显示inode使用情况
df -i

# 显示所有文件系统(包括虚拟文件系统)
df -a

# 只显示本地文件系统
df -l

(2) 指定文件系统类型

# 只显示ext4文件系统
df -t ext4

# 只显示xfs文件系统
df -t xfs

# 排除tmpfs文件系统
df -x tmpfs

# 只显示ext4和xfs文件系统
df -t ext4 -t xfs

# 排除ext4和xfs文件系统
df -x ext4 -x xfs

(3) 指定文件或目录

# 显示指定目录所在文件系统的使用情况
df /home

# 显示指定文件所在文件系统的使用情况
df /etc/passwd

# 显示多个目录的使用情况
df /home /var /tmp

# 显示当前目录的使用情况
df .

# 显示根目录的使用情况
df /

(4) 显示总计信息

# 显示总计信息
df --total

# 以人类可读格式显示总计
df -h --total

# 显示文件系统类型和总计
df -T --total

# 显示inode使用情况和总计
df -i --total

# 显示所有文件系统和总计
df -a --total

5. 常用实例详解

(1) 基本磁盘空间查看示例

# 显示所有文件系统的磁盘使用情况
df
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda1       10485760 4194304   6291456  40% /
# /dev/sda2      209715200 52428800 157286400  25% /home

# 以人类可读格式显示
df -h
# 输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        10G  4.0G  6.0G  40% /
# /dev/sda2       200G   50G  150G  25% /home

# 显示文件系统类型
df -T
# 输出:
# Filesystem     Type  1K-blocks    Used Available Use% Mounted on
# /dev/sda1      ext4   10485760 4194304   6291456  40% /
# /dev/sda2      xfs   209715200 52428800 157286400  25% /home

# 显示inode使用情况
df -i
# 输出:
# Filesystem     Inodes IUsed  IFree IUse% Mounted on
# /dev/sda1      655360 32768 622592    5% /
# /dev/sda2     1310720 65536 1245184    5% /home

(2) 指定文件系统类型示例

# 只显示ext4文件系统
df -t ext4
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda1       10485760 4194304   6291456  40% /

# 只显示xfs文件系统
df -t xfs
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda2      209715200 52428800 157286400  25% /home

# 排除tmpfs文件系统
df -x tmpfs
# 输出:不显示tmpfs文件系统

# 只显示ext4和xfs文件系统
df -t ext4 -t xfs
# 输出:显示ext4和xfs文件系统

# 排除ext4和xfs文件系统
df -x ext4 -x xfs
# 输出:不显示ext4和xfs文件系统

(3) 指定文件或目录示例

# 显示指定目录所在文件系统的使用情况
df /home
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda2      209715200 52428800 157286400  25% /home

# 显示指定文件所在文件系统的使用情况
df /etc/passwd
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda1       10485760 4194304   6291456  40% /

# 显示多个目录的使用情况
df /home /var /tmp
# 输出:分别显示三个目录所在文件系统的使用情况

# 显示当前目录的使用情况
df .
# 输出:显示当前目录所在文件系统的使用情况

# 显示根目录的使用情况
df /
# 输出:显示根目录所在文件系统的使用情况

(4) 显示总计信息示例

# 显示总计信息
df --total
# 输出:
# Filesystem     1K-blocks    Used Available Use% Mounted on
# /dev/sda1       10485760 4194304   6291456  40% /
# /dev/sda2      209715200 52428800 157286400  25% /home
# total          220200960 56623104 163577856  26%

# 以人类可读格式显示总计
df -h --total
# 输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        10G  4.0G  6.0G  40% /
# /dev/sda2       200G   50G  150G  25% /home
# total           210G   54G  156G  26%

# 显示文件系统类型和总计
df -T --total
# 输出:
# Filesystem     Type  1K-blocks    Used Available Use% Mounted on
# /dev/sda1      ext4   10485760 4194304   6291456  40% /
# /dev/sda2      xfs   209715200 52428800 157286400  25% /home
# total          -     220200960 56623104 163577856  26%

# 显示inode使用情况和总计
df -i --total
# 输出:
# Filesystem     Inodes IUsed  IFree IUse% Mounted on
# /dev/sda1      655360 32768 622592    5% /
# /dev/sda2     1310720 65536 1245184    5% /home
# total         1966080 98304 1867776    5%

6. 实际应用场景

场景一:磁盘空间监控

# 监控磁盘空间使用情况
df -h

# 监控根目录使用情况
df -h /

# 监控home目录使用情况
df -h /home

# 监控var目录使用情况
df -h /var

# 监控tmp目录使用情况
df -h /tmp

# 监控所有文件系统使用情况
df -h -a

场景二:磁盘空间告警

# 检查磁盘使用率是否超过90%
df -h | awk '$5 > 90 {print $1 " " $5}'

# 检查根目录使用率是否超过80%
df -h / | awk 'NR>1 && $5 > 80 {print $1 " " $5}'

# 检查home目录使用率是否超过70%
df -h /home | awk 'NR>1 && $5 > 70 {print $1 " " $5}'

# 检查所有文件系统使用率是否超过阈值
df -h | awk 'NR>1 && $5+0 > 90 {print $1 " " $5}'

# 检查inode使用率是否超过90%
df -i | awk 'NR>1 && $5 > 90 {print $1 " " $5}'

场景三:磁盘空间统计

# 统计磁盘总容量
df -h --total | grep total | awk '{print $2}'

# 统计已用空间
df -h --total | grep total | awk '{print $3}'

# 统计可用空间
df -h --total | grep total | awk '{print $4}'

# 统计使用百分比
df -h --total | grep total | awk '{print $5}'

# 统计inode总数
df -i --total | grep total | awk '{print $2}'

# 统计已用inode数
df -i --total | grep total | awk '{print $3}'

# 统计可用inode数
df -i --total | grep total | awk '{print $4}'

# 统计inode使用百分比
df -i --total | grep total | awk '{print $5}'

场景四:磁盘空间清理

# 查看磁盘使用情况
df -h

# 查看大文件
find / -type f -size +100M 2>/dev/null | xargs du -h | sort -rh | head -10

# 查看大目录
du -h --max-depth=1 / | sort -rh | head -10

# 清理临时文件
rm -rf /tmp/*

# 清理日志文件
find /var/log -name "*.log" -type f -mtime +30 -delete

# 清理缓存文件
rm -rf ~/.cache/*

7. 与其他命令的区别

命令特点适用场景
df显示文件系统磁盘空间使用情况查看磁盘空间占用
du显示文件或目录磁盘空间使用情况查看文件或目录大小
ls列出目录内容查看文件列表
mount挂载文件系统查看挂载的文件系统
fdisk磁盘分区工具管理磁盘分区

8. 注意事项

  1. 权限问题:普通用户只能查看有权限的文件系统
  2. 文件系统类型:使用 -T选项显示文件系统类型
  3. inode使用:使用 -i选项显示inode使用情况
  4. 人类可读格式:使用 -h选项以KB、MB、GB显示
  5. 总计信息:使用 --total选项显示总计信息

9. 常见问题解决

(1) 权限不足

# 错误:权限不足
df /root  # 报错:Permission denied

# 正确:使用sudo
sudo df /root

# 正确:查看有权限的目录
df /home

# 正确:查看当前用户的主目录
df ~

# 正确:查看公共目录
df /tmp

(2) 文件系统不存在

# 错误:文件系统不存在
df /nonexistent  # 报错:No such file or directory

# 正确:检查文件系统是否存在
ls -d /path/to/dir

# 正确:使用存在的目录
df /home

# 正确:使用当前目录
df .

# 正确:使用根目录
df /

(3) 选项错误

# 错误:选项错误
df -x  # 报错:缺少参数

# 正确:指定文件系统类型
df -x tmpfs

# 错误:文件系统类型错误
df -t unknown  # 报错:无效的文件系统类型

# 正确:使用支持的文件系统类型
df -t ext4

# 错误:选项冲突
df -a -l  # 可能报错

# 正确:使用不冲突的选项
df -a
df -l

(4) 输出格式问题

# 错误:输出格式不友好
df  # 以1K-blocks显示

# 正确:使用人类可读格式
df -h

# 错误:缺少文件系统类型信息
df  # 不显示文件系统类型

# 正确:显示文件系统类型
df -T

# 错误:缺少inode信息
df  # 不显示inode使用情况

# 正确:显示inode使用情况
df -i

# 错误:缺少总计信息
df  # 不显示总计

# 正确:显示总计信息
df --total

核心要点总结

  • df是显示磁盘空间使用情况的命令,用于查看文件系统的磁盘空间占用
  • 常用选项-h(人类可读格式)、-T(显示文件系统类型)、-i(显示inode使用情况)、-a(显示所有文件系统)、--total(显示总计信息)
  • 实际应用:磁盘空间监控、磁盘空间告警、磁盘空间统计、磁盘空间清理
  • 注意事项:普通用户只能查看有权限的文件系统,使用 -h选项以人类可读格式显示

df命令是Linux系统磁盘空间管理的基础工具,熟练掌握可以大大提高系统管理效率。


作 者:南烛
链 接:https://www.itnotes.top/archives/455
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇