Linux 硬盘空间查询完全指南:掌握 df、du 和 lsblk 命令
Linux 硬盘空间查询完全指南:掌握 df、du 和 lsblk 命令
在 Linux 系统中,有多个命令可以用来查询硬盘空间,每个命令的侧重点不同。掌握最常用的几个命令就能满足绝大部分需求。
✅ 方案一:使用 `df` 命令(查看磁盘分区使用情况)
df(Disk Free)命令是最常用、最直接的命令,用于查看文件系统的总容量、已用空间、可用空间和挂载点。
1. 基础用法
直接在终端输入 df:
df输出结果可能类似这样:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 30413744 13254680 15671068 46% /
devtmpfs 3941208 0 3941208 0% /dev
tmpfs 3983360 0 3983360 0% /dev/shm
tmpfs 796672 1032 795640 1% /run
tmpfs 5120 0 5120 0% /run/lock
/dev/sda1 5232588 523259 0 100% /boot/efi- Filesystem: 文件系统的名称,通常是磁盘分区的路径。
- 1K-blocks: 总容量,以 1KB 为单位。这个单位不太直观。
- Used: 已使用的空间。
- Available: 可用的空间。
- Use%: 已使用空间的百分比。
- Mounted on: 挂载点,即这个分区对应到系统里的哪个目录。
2. 推荐用法:`df -h`
为了更直观地查看大小,强烈推荐使用 -h (--human-readable) 参数,它会以 K (KB), M (MB), G (GB) 等易读的单位显示。
df -h输出结果会变得非常清晰:
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 13G 15G 46% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 779M 1.1M 778M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda1 5.0M 5.0M 0 100% /boot/efi现在,你可以一眼看出根分区 / 总共 29G,用了 13G,还剩 15G。
✅ 方案二:使用 `du` 命令(查看目录或文件大小)
df 查看的是整个分区的概况,而 du(Disk Usage)命令则用于查看某个特定目录或文件占了多少空间。
1. 查看当前目录的总大小
du -sh-s(--summarize): 只显示总计大小,不列出每个子目录的大小。-h(--human-readable): 同样,以易读的单位显示。
2. 查看指定目录的大小
想查看 /var/log 目录占了多少空间?
du -sh /var/log输出可能像:
1.2G /var/log3. 查看目录下各子目录的大小并排序
这是一个非常实用的组合,可以帮你快速找到哪个子目录是"空间大户"。
du -h --max-depth=1 / | sort -hr我们来分解这个命令:
du -h --max-depth=1 /:-h: 易读单位。--max-depth=1: 只显示根目录/下第一层子目录的大小,不继续深入。
|: 管道,把前一个命令的输出作为后一个命令的输入。sort -hr:sort: 排序命令。-h: (--human-numeric-sort) 按人类易读的数字大小排序(如 2G > 10M)。-r: (--reverse) 逆序排序,即从大到小排列。
输出结果会是这样,最大的目录排在最前面:
12G /usr
8.5G /home
3.1G /var
1.2G /opt
...
46M /etc
16K /lost+found✅ 方案三:使用 `lsblk` 命令(查看磁盘块设备信息)
lsblk(List Block Devices)命令可以让你直观地看到系统中有哪些硬盘、这些硬盘被分成了哪些分区、分区的大小以及它们的挂载点。
lsblk输出结果很形象,用树状结构表示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 118.7G 0 part /
sdb 8:16 0 465.8G 0 disk
└─sdb1 8:17 0 465.8G 0 part /data从上例可以看出:
- 系统有两块硬盘:
sda(约120G) 和sdb(约466G)。 sda被分成了两个区sda1和sda2,分别挂载在/boot/efi和/。sdb只有一个分区sdb1,挂载在/data。
总结与常用场景
| 命令 | 用途 | 常用组合 | 推荐指数 |
|---|---|---|---|
df |
查看整个分区的剩余空间 | df -h |
⭐⭐⭐⭐⭐ |
du |
查看特定目录的占用空间 | du -sh <目录名> |
⭐⭐⭐⭐⭐ |
du |
找出哪个子目录占用空间最多 | du -h --max-depth=1 <目录> | sort -hr |
⭐⭐⭐⭐ |
lsblk |
查看磁盘和分区结构 | lsblk |
⭐⭐⭐ |
快速入门
- 想看硬盘还剩多少空间?用
df -h。 - 想看某个文件夹多大?用
du -sh <文件夹路径>。 - 想找哪个文件夹把硬盘占满了?用
du -h --max-depth=1 / | sort -hr。