在Linux系统管理中,有效监控和管理存储空间是确保服务器稳定运行的核心任务之一,对于仍可能在使用中的CentOS 6.5系统,掌握查看存储信息的命令至关重要,这些命令不仅能帮助我们了解磁盘的整体使用情况,还能深入分析目录占用、磁盘性能等细节,本文将系统性地介绍在CentOS 6.5中查看存储的多种方法,从基础概览到高级分析,并提供实用的技巧和小编总结。

基础磁盘空间查看:df 命令
df(disk free)命令是最常用、最直接的磁盘空间查看工具,它可以显示文件系统的总容量、已用空间、可用空间和挂载点信息。
常用组合:df -hT
-h:以人类可读的格式显示(如KB, MB, GB)。-T:显示文件系统的类型(如ext4, xfs)。
执行 df -hT 后,你会看到类似以下的输出:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 50G 15G 33G 32% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 ext4 485M 55M 405M 12% /boot
通过这个表格,可以清晰地看到每个分区(如/dev/sda2)的总大小、已用空间、剩余空间、使用百分比以及它挂载在哪个目录(如),这是进行容量规划的第一步。
块设备与分区结构:lsblk 与 fdisk
有时候我们不仅关心空间使用,还需要了解物理磁盘和分区的结构关系。
lsblk 命令
lsblk(list block devices)以树状结构展示块设备(磁盘、分区、LVM等)之间的关系,非常直观,如果系统未安装,可以通过 yum install util-linux-ng 进行安装。
执行 lsblk 可能会输出:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 49.5G 0 part /
sr0 11:0 1 4.2G 0 rom
这个输出清晰地表明 sda 是一块50G的磁盘,它被分成了两个分区 sda1 和 sda2,并分别挂载到了 /boot 和 。
fdisk 命令
fdisk 是一个强大的磁盘分区工具,使用 -l 参数可以列出系统的磁盘分区表。
执行 fdisk -l 会提供更详细的分区信息,包括每个分区的起始和结束扇区、ID等,这对于需要手动管理分区的场景非常有用。
目录空间占用分析:du 命令
当发现某个分区空间不足时,du(disk usage)命令就是我们的“探照灯”,它能递归地显示指定目录或文件的磁盘占用情况。
常用组合:du -sh <目录名>
-s:只显示总计大小。-h:以人类可读格式显示。
要查看根目录下各个一级目录的大小,可以执行:
du -sh /*

这会快速列出 /bin, /etc, /var, /home 等目录各自占用的空间,帮助我们迅速定位占用空间最大的“元凶”,如果想进一步查看 /var 目录下的情况,可以使用 du -sh /var/*。
常用命令对比与小编总结
为了方便快速选择合适的工具,下表小编总结了上述命令的核心用途:
| 命令 | 主要用途 | 常用选项 | 特点 |
|---|---|---|---|
df |
查看文件系统整体空间使用情况 | -h, -T |
快速、宏观,关注挂载点 |
lsblk |
查看块设备(磁盘/分区)的层级结构 | 无需选项即可 | 直观、树状,关注物理与逻辑关系 |
fdisk -l |
查看磁盘的详细分区表信息 | -l |
详细、底层,用于分区管理 |
du |
查看特定目录或文件的空间占用 | -s, -h, --max-depth |
精确、微观,用于空间清理分析 |
相关问答FAQs
为什么 df 和 du 命令显示的已用空间经常不一致?
解答: 这是一个常见现象,主要原因有以下几点:
- 文件被删除但进程仍在使用: 如果一个文件被
rm命令删除,但仍有正在运行的进程持有该文件的句柄,那么磁盘空间不会被立即释放。df统计的是文件系统元数据中的已用块,所以会显示这部分空间被占用;而du扫描的是目录树,找不到该文件,所以不会计算其大小,解决方法是重启相关服务或重启系统。 - 文件系统保留空间: Linux文件系统(如ext4)默认会为
root用户保留一部分空间(通常是5%),以防系统满盘时无法登录进行维护。df的总容量和可用空间计算了这部分,而du不会。 - 挂载点: 如果在一个目录上挂载了其他设备,
du统计的是该挂载点目录下的内容,而不是该设备本身的空间。
如何查看哪个进程正在使用某个磁盘或文件?
解答: 可以使用 lsof(list open files)命令来查看。lsof 会列出当前系统打开的所有文件以及正在使用它们的进程。
- 查看某个挂载点: 如果想查看哪个进程正在使用
/home分区,可以执行lsof /home。 - 查看某个文件: 如果想查看哪个进程正在使用
/var/log/messages文件,可以执行lsof /var/log/messages。 - 递归查看目录: 使用
+D选项可以递归地查看某个目录下所有被打开的文件,lsof +D /var/log,这个命令在需要卸载一个文件系统却提示“busy”时特别有用。