df -h按人类可读格式显示各挂载点空间。
约 876 字大约 3 分钟
2026-05-14
df、du 和 free 分别用于查看文件系统空间、目录占用和内存使用情况。磁盘满了、日志太大、内存不够时,这三个命令是最常用的排查入口。
`df`、`du` 和 `free` 分别用于查看文件系统空间、目录占用和内存使用情况。磁盘满了、日志太大、内存不够时,这三个命令是最常用的排查入口。
df -h按人类可读格式显示各挂载点空间。
du -sh *快速找出哪个目录最大。
du -ah . | sort -h | tail按大小排序,显示最大的条目。
free -h显示内存和 swap 使用情况。
df -h # 人类可读格式
df -ih # inode 使用情况
df -h /var # 查看指定路径所在文件系统如果磁盘空间没满但无法创建文件,可能是 inode 用完了,可以用 df -ih 检查。
du -sh /var/log # 查看目录总大小
du -sh * # 查看当前目录下每个条目大小
du -h --max-depth=1 . # 只看一层目录du -ah /var/log | sort -h | tail -20
find /var/log -type f -size +100M -exec ls -lh {} \;第一条适合粗略排序,第二条适合按条件精确查找。
free -h
free -m重点看 available,它比单纯看 free 更接近“当前还能给程序使用的内存”。Linux 会把空闲内存用于缓存,所以 free 很低不一定表示内存不够。
找出哪个挂载点满了:
df -h进入对应目录,逐层查看占用:
du -h --max-depth=1 . | sort -h定位大文件后确认用途,再清理或归档。
df、du、free 经常一起出现,但它们看的是不同问题:
| 现象 | 先看 | 常见原因 |
|---|---|---|
| 写文件失败、No space left on device | df -h | 分区空间满了 |
| 不知道哪个目录占空间 | du -sh * | 日志、缓存、备份过大 |
| 程序变慢、频繁 swap | free -h | 内存不足或泄漏 |
| 删除文件后空间没释放 | lsof +L1 | 文件被进程占用 |
不要一上来就 rm -rf。更稳妥的顺序是:
df -h 找到满的分区。du -xh --max-depth=1 /path 找到大目录。# 查看已删除但仍被进程占用的大文件
sudo lsof +L1这类文件即使 rm 了,只要进程还打开着,空间也不会立刻释放。
版权归属:Shuo Liu