服务器测评网
我们一直在努力

Linux查看磁盘命令有哪些?常用df和du怎么用?

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

Linux查看磁盘命令有哪些?常用df和du怎么用?

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 盘等)及其分区信息,包括设备名称、大小、挂载状态、文件系统类型等,相比 fdisklsblk 的输出更直观,适合快速了解磁盘物理结构。

Linux查看磁盘命令有哪些?常用df和du怎么用?

常用选项及功能

  • -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),再使用 fdiskparted 进行分区和格式化。

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 filesystemLinux 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 命令后,可查看磁盘基本信息:

Linux查看磁盘命令有哪些?常用df和du怎么用?

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 用于定位具体大文件或目录,lsblkfdisk 侧重磁盘物理结构和分区管理,smartctl 则关注硬件健康状态,熟练掌握这些命令,并结合定期监控和清理,可有效保障磁盘空间合理利用,避免因空间不足或硬件故障引发系统问题。

赞(0)
未经允许不得转载:好主机测评网 » Linux查看磁盘命令有哪些?常用df和du怎么用?