在Linux系统中,查看磁盘大小是日常运维和开发中常见的操作,掌握相关命令可以帮助用户高效管理存储资源,以下是几种常用的查看磁盘大小的命令及其详细用法,包括命令功能、参数说明和示例输出,最后附上相关FAQs。

df 命令:查看文件系统磁盘空间使用情况
df
命令用于显示文件系统的磁盘空间使用统计,默认以KB为单位显示,通过参数可以调整输出格式或指定特定文件系统。
常用参数:
-h
:以人类可读格式显示(如K、M、G)。-T
:显示文件系统类型。-i
:显示inode信息而非块使用情况。
示例:
df -h
输出示例:

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
du 命令:查看目录或文件占用的磁盘空间
du
命令用于估计文件或目录的磁盘使用量,适合分析特定目录的存储占用情况。
常用参数:
-h
:人类可读格式。-s
:仅显示总计大小,不显示子目录详情。--max-depth=N
:限制递归深度为N层。
示例:
du -sh /var/log
输出示例:

2G /var/log
lsblk 命令:列出块设备信息
lsblk
以树状结构显示块设备(如硬盘、分区、U盘等)及其挂载点,适合查看磁盘分区和挂载情况。
常用参数:
-f
:显示文件系统类型和挂载点。-d
:不显示子设备(仅显示磁盘本身)。
示例:
lsblk -f
输出示例:
NAME FSTYPE MOUNTPOINT
sda
├─sda1 ext4 /
├─sda2 swap [SWAP]
sdb vfat /mnt/usb
fdisk 命令:查看磁盘分区表
fdisk
是一个交互式分区工具,通过-l
参数可以列出所有磁盘及其分区信息。
示例:
sudo fdisk -l
输出示例:
Disk /dev/sda: 50GiB, 53687091200 bytes, 104857600 sectors
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: dos
Disk identifier: 0x12345678
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 104857599 104855552 50G 83 Linux
/dev/sda2 104859582 104857599 2018 1M 82 Linux swap / Solaris
smartctl 命令:查看磁盘健康状态
通过smartctl
工具可以读取磁盘SMART信息,检查硬盘健康状况(需安装smartmontools
)。
示例:
sudo smartctl -a /dev/sda
命令各有侧重:df
适合整体磁盘空间监控,du
用于目录分析,lsblk
和fdisk
侧重设备与分区信息,smartctl
则关注硬件健康状态,根据实际需求选择合适的命令组合,可高效完成磁盘管理任务。
相关FAQs
Q1: 如何快速查看某个目录下最大的10个文件?
A: 使用du
和sort
命令组合:
du -h --max-depth=1 /path/to/dir | sort -hr | head -n 10
解释:du -h --max-depth=1
统计当前目录下一级子目录大小,sort -hr
按大小降序排序,head -n 10
显示前10条结果。
Q2: 为什么df
显示的磁盘使用率与du
统计的不一致?
A: 主要原因包括:
df
统计文件系统整体空间,包括保留空间(如root用户默认预留5%);du
仅统计实际文件占用。df
包含未删除文件的缓存(如deleted
进程仍在使用的文件),而du
不统计。- 文件系统损坏或挂载问题可能导致数据差异,建议结合
lsof
或fuser
进一步排查。