对于Linux系统管理员而言,管理磁盘信息是日常工作的重要组成部分。无论是规划存储容量、分析性能瓶颈,还是诊断磁盘异常,快速准确地获取磁盘信息都是关键的第一步。面对众多命令,新手可能感到困惑。实际上,只需掌握几个核心工具即可应对大多数场景。本文将一口气介绍7个最常用的Linux磁盘信息命令,每个都配有实际用法和输出示例,帮助您快速上手。

df 命令:查看文件系统磁盘空间
df 是最直观的磁盘空间查看工具,能够直接展示文件系统的已用空间、可用空间、总容量以及使用百分比等信息,包括挂载点。在日常系统巡检中,推荐使用 df -h 命令,其中 -h 参数会将容量以GB、MB等人类易读的格式呈现,免去手动换算的麻烦。
使用方法:
df -h
示例输出:
文件系统 容量 已用 可用 已用% 挂载点 /dev/sda1 20G 8.4G 11G 44% / /dev/sdb1 100G 60G 40G 60% /mnt/data
从输出中可以看到两个文件系统:/dev/sda1 挂载在根目录,使用了44%;/dev/sdb1 挂载在 /mnt/data,使用了60%。如果发现某个分区使用率超过90%,就提示需要清理或扩容。
du 命令:统计目录与文件占用空间
df 负责总体概览,du 则专注于局部细节。当您需要了解某个目录或文件具体占用多少空间时,du 是最佳选择。它会递归计算指定目录及其所有子目录的磁盘使用量,默认以字节为单位,加上 -h 参数就能清晰显示KB、MB、GB。
使用方法:
du -h /path/to/directory
示例输出:
4.0K /path/to/directory/subdirectory 12.0M /path/to/directory/subdirectory2 1.5G /path/to/directory/subdirectory3
在这个例子中,du -h 显示了目标目录下每个子目录的大小。如果发现某个子目录异常庞大,例如 subdirectory3 占用了1.5G,就可以深入排查是否堆积了大量日志文件或临时数据。
lsblk 命令:树形展示块设备
lsblk 是“list block devices”的缩写。它采用树形结构清晰展示系统中的磁盘、分区及其从属关系,视觉效果极为友好。许多用户第一次使用便被其简洁的层次所吸引——相比 fdisk -l 的冗长输出,lsblk 的呈现方式堪称一股清流。
使用方法:
lsblk
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk └─sda1 8:1 0 20G 0 part / sdb 8:16 0 100G 0 disk └─sdb1 8:17 0 100G 0 part /mnt/data
此输出中,sda 和 sdb 是两个物理磁盘,其下的 sda1 和 sdb1 是分区,并显示挂载点。主/次设备号、是否可移动(RM列)、大小、只读属性(RO列)等信息也一并呈现。
fdisk 命令:查看详细分区表
fdisk 是经典的分区工具,即使不执行分区操作,仅用 fdisk -l 也能获取详尽的磁盘和分区表信息。它会列出每个磁盘的几何参数、扇区大小、分区起始/结束扇区等底层数据,非常适合深入排查场景。
使用方法:
fdisk -l
示例输出:
磁盘 /dev/sda:20 GiB,20971520000 字节,40960000 扇区 ... /dev/sda1 2048 40959999 40957952 20G 83 Linux 磁盘 /dev/sdb:100 GiB,107374182400 字节,209715200 扇区 ... /dev/sdb1 2048 209715199 209713152 100G 83 Linux
这里可以看到每个分区的起始扇区、结束扇区、大小以及分区类型(83表示Linux文件系统)。如果需要确认磁盘使用的是GPT还是MBR分区表,fdisk -l 也能提供明确答案。
ls 命令:查看设备文件信息
您可能会好奇:ls 不是用来列出文件的吗?没错,但Linux设计哲学是“一切皆文件”,设备也不例外。通过 ls -l /dev/sd* 可以直接查看硬盘设备文件的信息,包括主次设备号、权限等。
使用方法:
ls -l /dev/sd*
示例输出:
brw-rw---- 1 root disk 8, 0 Jan 1 00:00 /dev/sda brw-rw---- 1 root disk 8, 1 Jan 1 00:00 /dev/sda1 brw-rw---- 1 root disk 8, 16 Jan 1 00:00 /dev/sdb brw-rw---- 1 root disk 8, 17 Jan 1 00:00 /dev/sdb1
输出中,b 表示块设备,8, 0 这类数字即主设备号和次设备号。虽然不是每日必用的命令,但当需要确认设备文件是否存在或权限是否正确时,这一招非常实用。
cat 命令:从 /proc/partitions 读取分区信息
cat 通常用于查看文件内容,但 /proc/partitions 这个虚拟文件存储着当前系统所有的分区信息。直接执行 cat /proc/partitions 即可看到所有磁盘和分区的设备号与大小。
使用方法:
cat /proc/partitions
示例输出:
major minor #blocks name 8 0 20971520 sda 8 1 20971392 sda1 8 16 104857600 sdb 8 17 104857568 sdb1
这种方法无需任何额外工具,即使在系统崩溃后的rescue模式下也能使用,因为 /proc 是内核直接暴露的接口。
mount 命令:查看已挂载文件系统
最后一个命令是 mount。很多人首先想到它是用来挂载文件系统的,但 mount 不加参数时会列出所有当前已挂载的文件系统。配合 grep 过滤出以 /dev 开头的设备,便能清晰看到每个分区挂载到了哪里,以及挂载选项(如 rw, relatime)。
使用方法:
mount | grep '^/dev'
示例输出:
/dev/sda1 on / type ext4 (rw,relatime) /dev/sdb1 on /mnt/data type ext4 (rw,relatime)
如果您想知道某个分区是以读写还是只读方式挂载的,或者看到类似 noexec 这样的选项,使用此命令最为直接。当然,也可以直接用 mount 不加过滤,但输出会包含大量 proc、sysfs 等虚拟文件系统,显得杂乱,因此加个 grep 更清爽。
以上7条命令涵盖了从整体概览到细节排查的各类场景。在日常运维工作中,df 与 du 几乎每天都会用到;lsblk 和 fdisk 在磁盘配置或扩展容量时不可或缺;而 ls、cat 和 mount 则作为补充工具,用于应对特定需求。熟练掌握这些命令,Linux磁盘信息管理将不再困难。
