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. 注意事项
- 权限问题:普通用户只能查看有权限的文件系统
- 文件系统类型:使用
-T选项显示文件系统类型 - inode使用:使用
-i选项显示inode使用情况 - 人类可读格式:使用
-h选项以KB、MB、GB显示 - 总计信息:使用
--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系统磁盘空间管理的基础工具,熟练掌握可以大大提高系统管理效率。