df -h
命令查看所有磁盘分区的剩余空间,du -sh [目录名]
可查看指定目录占用的磁盘空间大小,lsblk
命令能显示磁盘分区树状结构。核心命令详解
df
命令:文件系统级空间概览
功能:显示磁盘分区的总空间、已用空间及剩余空间。
常用选项:
-h
:人性化显示单位(自动转换为KB、MB、GB)-T
:显示文件系统类型(如ext4、xfs)--total
:汇总所有分区的统计信息
示例:
df -hT
输出示例:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 48G 22G 24G 48% /
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
适用场景:快速检查各挂载点的空间利用率,定位存储紧张的分区。
du
命令:目录级空间深度分析
功能:计算指定目录或文件的磁盘使用量。
关键选项:
-h
:人性化单位显示-s
:仅显示总计(不递归子目录)--max-depth=N
:限制递归深度-a
:显示所有文件(包括隐藏文件)
示例:
# 查看当前目录总占用 du -sh # 分析/var/log下各子目录大小(深度1级) du -h --max-depth=1 /var/log
输出示例:
15G /var/log/nginx
2.1G /var/log/audit
17G /var/log
适用场景:排查大文件/目录,清理冗余数据。
lsblk
命令:块设备拓扑结构
功能:列出所有块设备(磁盘、分区)的层次关系及空间信息。
常用选项:
-f
:显示文件系统类型和UUID-o
:自定义输出列(如NAME,SIZE,FSTYPE,MOUNTPOINT)
示例:
lsblk -f
输出示例:
NAME FSTYPE LABEL MOUNTPOINT
sda
├─sda1 ext4 root /
└─sda2 swap swap [SWAP]
适用场景:理清磁盘分区结构,确认未挂载空间。
高级工具与技巧
实时监控工具
-
ncdu
:交互式磁盘分析器(需安装)sudo apt install ncdu # Debian/Ubuntu sudo yum install ncdu # CentOS/RHEL ncdu /home # 扫描/home目录
支持键盘导航:删除文件(d)、排序(s)
优势:直观可视化,直接操作文件。 -
baobab
(GNOME用户):图形化磁盘分析器
通过菜单启动或终端执行baobab
。
特殊场景处理
- 查看挂载点空间限制:
df -h /mnt/data # 指定挂载点路径
- 排除网络存储(NFS):
df -hTl # -l 仅显示本地文件系统
注意事项与常见问题
-
单位混淆:
- 命令默认以 1K=1024字节 计算(非1000字节),
-h
选项可避免误解。
- 命令默认以 1K=1024字节 计算(非1000字节),
-
权限影响:
du
分析系统目录需sudo
权限(如/var
)。
-
空间未释放:
- 文件被进程占用时,
df
显示空间不足但du
统计较小 → 重启服务或清理进程。
- 文件被进程占用时,
-
Inodes耗尽:
- 小文件过多可能导致Inodes用尽(即使空间充足):
df -i # 检查Inode使用率
- 小文件过多可能导致Inodes用尽(即使空间充足):
命令 | 核心用途 | 关键优势 |
---|---|---|
df |
分区空间宏观统计 | 快速定位满盘分区 |
du |
目录/文件微观分析 | 精准定位大文件 |
lsblk |
块设备物理结构展示 | 识别未分配空间 |
定期使用这些命令(建议结合 cron
定时任务),可预防磁盘空间危机,对于生产环境,推荐集成监控系统(如Prometheus+Grafana),实现自动化预警。
引用说明: 参考 Linux man-pages(v5.10) 、GNU Coreutils 官方文档 以及 IBM DeveloperWorks 最佳实践,命令示例已在 Ubuntu 20.04 LTS 和 CentOS 7 环境中验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/13684.html