在 Linux 系统管理中,磁盘空间管理是确保系统稳定运行的关键环节,管理员需要定期查看磁盘使用情况,及时发现空间不足或异常分配的问题,Linux 提供了多种命令用于查看磁盘信息,这些命令各具特点,适用于不同的场景,本文将详细介绍常用的磁盘查看命令,包括 df、du、lsblk、fdisk、smartctl 等,并说明它们的使用方法和输出含义,帮助管理员全面掌握磁盘状态。

df 命令:查看文件系统磁盘空间使用情况
df(disk free)命令是最常用的磁盘空间查看工具,主要用于显示文件系统的总容量、已用空间、可用空间及使用百分比等信息,其基本语法为 df [选项] [文件或目录],若不指定文件或目录,则默认显示所有挂载文件系统的信息。
常用选项及功能
-h或--human-readable:以人类可读的格式显示容量(如 K、M、G、T),便于直观理解。-T或--print-type:显示文件系统类型(如 ext4、xfs、swap 等)。-i或--inodes:显示 inode 的使用情况,适用于排查 inode 耗尽的问题。--total:汇总所有文件系统的总使用量,方便快速查看整体磁盘占用。
输出解析
执行 df -hT 命令后,输出 typically 包含以下列:
Filesystem:文件系统设备名称,通常为分区路径(如/dev/sda1)或挂载点(如/boot)。Type:文件系统类型,如ext4是 Linux 常用类型,xfs适用于大文件系统,swap为交换分区。Size:文件系统总容量。Used:已使用的空间。Avail:可用空间(注意:此值通常为普通用户可用的空间,会减去保留空间)。Use%:使用百分比,超过 90% 时需警惕空间不足风险。Mounted on:挂载点,即文件系统挂载到的目录。
实际应用
若发现某个分区使用率过高(如 /var 分区),可结合 du 命令进一步定位大文件或目录,通过 df -i 可检查 inode 是否耗尽——即使磁盘空间充足,inode 耗尽也会导致无法创建新文件。
du 命令:查看文件或目录的磁盘使用量
du(disk usage)命令用于统计文件或目录占用的磁盘空间,适合排查具体哪个文件或目录占用空间过大,其基本语法为 du [选项] [文件或目录],默认显示当前目录下各子目录的磁盘使用量(单位为 KB)。
常用选项及功能
-h或--human-readable:以 K、M、G 为单位显示,提升可读性。-s或--summarize:仅显示总计值,不显示子目录的详细统计,适合快速查看目录总大小。--max-depth=N:限制统计深度,如--max-depth=1仅统计当前目录下一级子目录的大小。-a或--all:显示所有文件的大小,而不仅仅是目录。--exclude=模式:排除匹配模式的文件或目录,如--exclude=*.log可忽略日志文件。
输出解析
执行 du -sh * 命令后,会列出当前目录下每个子目录或文件的大小及其名称。
1G data
50M logs
4K test.txt
data 目录占用 1G 空间,logs 目录占用 50M,test.txt 文件占用 4K。
实际应用
当磁盘空间不足时,可通过 du -sh /var/* 查找 /var 目录下占用空间最大的子目录(如 /var/log 或 /lib/docker),再结合 du -sh --max-depth=1 /var/log 进一步定位具体文件。
lsblk 命令:列出块设备信息
lsblk(list block devices)命令以树状结构显示系统中的块设备(硬盘、SSD、U 盘等)及其分区信息,包括设备名称、大小、挂载状态、文件系统类型等,相比 fdisk,lsblk 的输出更直观,适合快速了解磁盘物理结构。

常用选项及功能
-f或--fs:显示文件系统信息,如 UUID、挂载点、类型等。-d或--nodeps:不显示子孙设备,仅显示顶级块设备(如磁盘本身,不显示分区)。-p或--paths:显示设备的完整路径(如/dev/sda而非sda)。-o NAME,SIZE,TYPE,MOUNTPOINT:自定义输出列,便于筛选关键信息。
输出解析
执行 lsblk -f 命令后,输出示例:
NAME FSTYPE SIZE MOUNTPOINT
sda
├─sda1 ext4 500G /
├─sda2 swap 16G [SWAP]
└─sdb1 xfs 2T /data
nvme0n1
└─nvme0n1p1 ext4 512G /boot
NAME:设备名称,sda表示 SATA 硬盘,nvme0n1表示 NVMe 硬盘。FSTYPE:文件系统类型,未分区的设备或未格式化的分区显示为空。SIZE:设备或分区大小。MOUNTPOINT:挂载点,未挂载的设备显示为空,交换分区显示为[SWAP]。
实际应用
通过 lsblk 可快速识别磁盘数量、分区情况及挂载状态,若新增一块硬盘未挂载,可通过 lsblk 查看设备名(如 /dev/sdb),再使用 fdisk 或 parted 进行分区和格式化。
fdisk 命令:磁盘分区管理工具
fdisk 是经典的磁盘分区工具,用于查看、创建、删除或调整分区表,虽然图形化工具(如 GParted)更易用,但 fdisk 在命令行环境下更高效,尤其适用于服务器无图形界面的场景。
常用选项及功能
-l或--list:列出所有磁盘及其分区信息,不进入交互模式。设备名:指定磁盘设备,如fdisk /dev/sdb进入该磁盘的交互模式。
交互模式常用命令
进入 fdisk 交互模式后,可通过以下命令操作:
p:打印当前分区表。n:创建新分区。d:删除分区。t:修改分区类型(如将分区类型改为 Linux LVM 或 RAID)。w:保存分区表并退出,q不保存直接退出。
输出解析
执行 fdisk -l 命令后,输出示例:
Disk /dev/sdb: 2.2 TiB, 2400574095360 bytes, 4688621280 sectors
Disk model: WDC WD22EFAX-68UW0N0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 12345678-9012-3456-7890-ABCDEF123456
Device Start End Sectors Size Type
/dev/sdb1 2048 4688610687 4688608640 2.2T Linux filesystem
Device:分区设备名(如/dev/sdb1)。Start/End:分区的起始扇区和结束扇区。Sectors:分区总扇区数。Size:分区大小(由扇区数和扇区大小计算得出)。Type:分区类型(如Linux filesystem、Linux swap等)。
实际应用
若需为新硬盘创建分区,可执行 fdisk /dev/sdb,通过 n 创建主分区,w 保存后,再使用 mkfs 命令格式化分区(如 mkfs.ext4 /dev/sdb1),最后挂载到指定目录。
smartctl 命令:磁盘健康状态监测
smartctl 是 SMART(Self-Monitoring, Analysis and Reporting Technology)工具的命令行接口,用于监测磁盘的健康状态,读取磁盘的自检报告和错误日志,提前预警硬件故障。
常用选项及功能
-i或--info:显示磁盘型号、固件版本、SMART 支持状态等基本信息。-a或--all:显示所有 SMART 信息,包括属性值、错误日志等。-H或--health:快速检测磁盘健康状态,返回 PASSED 或 FAILED。-l error或--log=error:显示设备的错误日志。
输出解析
执行 smartctl -i /dev/sda 命令后,可查看磁盘基本信息:

Model Number: WDC WD80EZAZ-00Z2GA0
Serial Number: WD-WCC4N0KZK1V0
Firmware Version: 80.00A80
Device is: In SMART mode
Supports SMART: Yes
执行 smartctl -H /dev/sda 可快速判断健康状态:
SMART Health Status: OK
若执行 smartctl -a /dev/sda,会详细列出各项 SMART 属性(如 Reallocated_Sector_Cnt、Current_Pending_Sect 等),若这些属性出现非零值,可能预示磁盘存在坏道或故障风险。
实际应用
定期使用 smartctl -H 检查磁盘健康状态,可避免因磁盘故障导致数据丢失,对于服务器磁盘,建议结合 cron 定时执行 smartctl -a 并记录日志,实现自动化监控。
其他实用工具
除上述命令外,Linux 还提供了一些辅助工具,满足特定场景需求:
ncdu(NCurses Disk Usage):交互式磁盘分析工具,支持导航和删除文件,比du更直观。baobab(Disk Usage Analyzer):GNOME 桌面环境的图形化磁盘分析工具,适合习惯图形界面的用户。df命令的变种pydf:以彩色输出显示磁盘使用情况,更易区分不同分区的使用率。
Linux 系统提供了丰富的磁盘查看命令,管理员需根据实际需求选择合适的工具:df 适用于快速查看文件系统整体使用情况,du 用于定位具体大文件或目录,lsblk 和 fdisk 侧重磁盘物理结构和分区管理,smartctl 则关注硬件健康状态,熟练掌握这些命令,并结合定期监控和清理,可有效保障磁盘空间合理利用,避免因空间不足或硬件故障引发系统问题。






