如果你用的是Windows电脑,那么查看电脑的硬盘空间非常简单。但是如果你用的是没有图形界面的服务器系统,比如CentOS,要怎么查看磁盘空间呢?是不是需要安装什么工具?答案是不需要。Linux系统自带了一些很方便的命令,可以帮助我们查询硬盘空间的使用情况。

虽然我用的是 Ubuntu系统,它也有图形界面的选项,但为了说明如何使用命令行,我们依旧会介绍通过两个命令来查询Linux系统的硬盘空间使用情况。
df 命令
df 命令是最常用来查看 Linux 系统硬盘空间的工具。它的用法非常简单,所以也是我查询磁盘空间使用的首选命令。这个命令还有一些参数,但是基本上只需要熟练使用其中的一个就可以了。这个参数就是 -H,这个 -H 参数可以让命令输出的结果更容易被人类读懂。df -H 的输出会显示每个硬盘的总大小、已用空间、剩余空间、使用百分比和挂载点等信息。
df命令的常用参数:
- -a:显示所有的文件系统,包括0 Blocks的文件系统。
- -h:使用人类可读的格式,如KB,MB,GB等。
- -i:显示inode信息,而不是block信息。
- -k:使用1024字节为单位的block。
- -l:只显示本地文件系统。
- -t:只显示指定类型的文件系统。
- -x:不显示指定类型的文件系统。
如果你有多个硬盘,但是只想看其中某一个硬盘的空间情况,df 也可以做到。比如说,我们想看看主硬盘 /dev/sda1 的空间情况。我们可以输入下面的这个命令:
df -H /dev/sda1
输出结果就只会显示这一个硬盘的空间使用情况。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 30G 30G 0 100% /
这表示/dev/sda1文件系统的总大小是30G,已用空间是30G,可用空间是0,使用率是100%,挂载点是根目录/。这说明该文件系统已经满了,需要清理一些文件或者扩容。
还可以限制 df 输出显示的字段。可用的字段有:
- source — 文件系统来源
- size — 总块数
- used — 硬盘上已用空间
- avail — 硬盘上可用空间
- pcent — 已用空间占总大小的百分比
- target — 硬盘的挂载点
比如说,我们想显示所有硬盘的总大小、已用空间和可用空间字段。我们可以输入这个命令:
df -H --output=size,used,avail
输出结果就如下所示。
Size Used Avail
30G 30G 0
16G 16G 0
1.9G 0 1.9G
上面返回的结果表示,当前有三个文件系统,分别是/dev/sda1,/dev/sdb1和tmpfs。它们的总大小分别是30G,16G和1.9G。可以看到/dev/sda1和/dev/sdb1都已经满了,没有可用空间了,而tmpfs还有1.9G的可用空间。
要注意的是,在上面的输出中,我们不知道输出结果对应哪个硬盘,所以我们最好加上 source 字段,像这样:
df -H --output=source,size,used,avail
现在输出结果就更清楚了。
Filesystem Size Used Avail
/dev/sda1 30G 30G 0
/dev/sdb1 16G 16G 0
tmpfs 1.9G 0 1.9G
du 命令
我们接下来要介绍的命令是 du,它的英文原意为 disk usage。 du 命令和 df 命令有些不一样,它显示的是目录而不是硬盘的空间情况。因此,在查询之前我们要知道目标目录的名字。比如说,我有一个目录,里面放了一些虚拟机的文件。这个目录的路径是 /media/jack/HALEY/VIRTUALBOX。如果我想知道这个目录占用了多少空间,我可以输入这个命令:
du -h /media/jack/HALEY/VIRTUALBOX
输出结果会显示这个目录里每个文件的大小(图 5)。
4.0K /media/jack/HALEY/VIRTUALBOX/Windows 10
8.0K /media/jack/HALEY/VIRTUALBOX/Ubuntu 20.04
559G /media/jack/HALEY/VIRTUALBOX
这表示目录中有两个虚拟机文件,分别是Windows 10和Ubuntu 20.04。它们占用的空间分别是4.0K和8.0K,占用很小可能因为它们是链接或元数据文件。而目标目录的总大小是559G,这说明你的虚拟机文件非常大,可能占用了大部分的磁盘空间。
那么,如果我们想知道一个目录占用的总的空间情况应该怎么做呢?对于同一个目录,我们可以输入这个命令:
du -sh /media/jack/HALEY/VIRTUALBOX/
这样,我们就知道了这个目录里的文件总共占用了多少空间。
559G /media/jack/HALEY/VIRTUALBOX
另外,我们还可以用这个命令来查看一个父目录下所有子目录占用了多少空间,像这样:
du -h /media/jack/HALEY
输出结果如下所示,可以发现哪些子目录占用了更多的硬盘空间。
4.0K /media/jack/HALEY/Downloads
8.0K /media/jack/HALEY/Documents
559G /media/jack/HALEY/VIRTUALBOX
559G /media/jack/HALEY
du 命令还可以让我们看到哪些目录占用了最多的硬盘空间。要做到这一点,你需要把 du 的输出结果传给另外两个命令:sort 和 head。要找出占用最多空间的前 10 个目录,可以执行这样的命令:
du -a /media/jack | sort -n -r | head -n 10
输出结果会按照从大到小的顺序列出占用空间最多的10个目录。
559000000000 /media/jack/HALEY/VIRTUALBOX
559000000000 /media/jack/HALEY
16000000000 /media/jack/HALEY/VIRTUALBOX/Ubuntu 20.04.vdi
8000000000 /media/jack/HALEY/VIRTUALBOX/Windows 10.vdi
1000000000 /media/jack/Downloads
500000000 /media/jack/Documents
100000000 /media/jack/Pictures
50000000 /media/jack/Music
10000000 /media/jack/Videos
1000000 /media/jack/Desktop
总结
要查看 Linux 系统上硬盘空间的使用情况,可以使用df 和 du 这两个命令。通过df命令,我们可以快速查看一个硬盘上已用和剩余的空间情况。通过 du命令,可以找出是哪些目录占用了更多的空间。这两个命令都是非常实用的工具,每个 Linux 管理员都应该熟练掌握。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/linux-system-to-see-the-hard-disk-space-usage/