在CentOS系统中,有效地管理和监控硬盘空间是系统维护的核心任务之一,无论是为了规划存储资源、排查性能问题,还是仅仅为了了解当前系统的使用状况,掌握查看硬盘大小的方法都至关重要,本文将详细介绍几种在CentOS中查看硬盘大小和空间使用情况的常用命令,从宏观的文件系统概览到具体的分区详情,帮助您全面了解系统存储状态。
使用 df
命令查看文件系统空间
df
(Disk Free)命令是最常用、最直接的查看文件系统磁盘空间使用情况的工具,它能显示每个已挂载文件系统的总容量、已用空间、可用空间以及使用百分比。
默认情况下,df
命令会以1KB为单位显示信息,对于现代人来说可读性较差,我们通常会结合 -h
(human-readable)参数使用,它会以K(KB)、M(MB)、G(GB)等更易读的单位来展示数据。
df -h
执行上述命令后,您会看到类似以下的输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 50G 15G 33G 32% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 799M 0 799M 0% /run/user/0
输出字段解释:
- Filesystem: 文件系统的设备名称,如
/dev/sda3
。 - Size: 该文件系统的总大小。
- Used: 已使用的空间大小。
- Avail: 可用的空间大小。
- Use%: 磁盘使用率百分比。
- Mounted on: 挂载点,即该文件系统在目录树中的位置。
如果您还想查看文件系统的类型(如xfs, ext4),可以使用 -T
参数:
df -hT
使用 lsblk
命令查看块设备结构
lsblk
(List Block Devices)命令以树状结构清晰地展示系统中的块设备(硬盘、分区、光驱等),非常适合用来了解物理磁盘和逻辑分区之间的层次关系。
直接输入 lsblk
即可:
lsblk
输出示例如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
└─centos-root
253:0 0 49G 0 lvm /
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part /data
输出字段解释:
- NAME: 设备名称。
- MAJ:MIN: 主设备号和次设备号。
- RM: 是否为可移动设备(1表示是,0表示否)。
- SIZE: 设备大小。
- RO: 是否为只读(1表示是,0表示否)。
- TYPE: 设备类型(disk表示磁盘,part表示分区,lvm表示逻辑卷)。
- MOUNTPOINT: 挂载点。
lsblk
的优点在于其直观的树状结构,能让人一眼看出哪个分区属于哪块硬盘,使用 -f
参数还可以额外显示文件系统类型、UUID和挂载点,信息更为全面。
使用 fdisk
或 parted
查看磁盘分区详情
当需要查看更底层的分区表信息时,fdisk
和 parted
是强大的工具。
fdisk
是一个经典的磁盘分区工具,使用 -l
参数可以列出所有磁盘的分区表,由于需要读取原始设备信息,通常需要 sudo
权限。
sudo fdisk -l
输出会包含磁盘的几何信息、分区起始和结束扇区、分区ID等非常详细的技术数据。
parted
是一个更现代的分区工具,支持GPT分区表,能更好地处理大容量硬盘,同样使用 -l
参数列出信息。
sudo parted -l
parted
的输出相对 fdisk
更简洁一些,同样能提供磁盘模型、大小、分区表类型以及每个分区的详细信息。
命令小编总结与对比
为了方便您快速选择合适的工具,下表小编总结了上述命令的主要用途和特点。
命令 | 主要用途 | 特点 |
---|---|---|
df -h | 查看已挂载文件系统的空间使用情况 | 最常用,关注文件系统层面的空间,直观易读 |
lsblk | 查看块设备(磁盘、分区)的层次结构 | 树状图,清晰展示物理与逻辑关系,适合了解整体布局 |
sudo fdisk -l | 查看磁盘的详细分区表信息 | 经典工具,信息非常底层和技术化,适合高级用户 |
sudo parted -l | 查看磁盘分区详情(支持GPT) | 现代工具,输出清晰,适合大容量磁盘和新式分区表 |
相关问答FAQs
问题1:为什么有时 df
命令显示的已用空间和 du
命令统计某个目录下所有文件大小总和不一致?
解答: 这是一个常见现象,主要原因有以下几点:
- 已删除但被进程占用的文件:如果一个文件被删除了,但仍有正在运行的进程打开了这个文件句柄,
df
会认为该文件仍在占用空间,而du
则不会统计这个已经不存在的文件,重启相关服务或系统后,空间会被释放。 - 文件系统保留空间:Linux文件系统(如ext4)会为
root
用户保留一部分空间(默认5%),以防系统满盘时无法登录进行维护。df
的总空间包含了这部分保留空间,而du
统计的是普通用户可用的空间。 - 文件系统元数据:
df
统计的空间包含了inode等文件系统元数据占用的空间,而du
主要统计文件数据块的大小。
问题2:如何快速找出系统中占用空间最大的目录?
解答: 可以结合 du
和 sort
命令来实现,使用 du
命令获取当前目录下所有子目录的大小,然后通过管道传递给 sort
命令进行排序。
要查看根目录 下哪个一级子目录占用空间最大,可以执行:
du -sh /* | sort -rh
命令解释:
du -sh /*
:-s
表示汇总每个目录的总大小而不显示子目录,-h
表示以人类可读格式显示, 表示统计根目录下的所有一级子目录。sort -rh
:-r
表示反向排序(从大到小),-h
表示按人类可读的数字大小进行排序(如G > M > K)。
这样,输出列表的第一行就是占用空间最大的目录,您可以进入该目录,再次执行类似的命令,层层深入,最终定位到占用空间的大文件或目录。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复