在linux系统的磁盘管理操作中,df和fdisk是两个高频使用的命令,但很多新手用户容易将两者的功能混淆,不清楚什么时候该用df,什么时候该用fdisk。实际上两者的核心定位完全不同,适用的场景也有明确区分。

一、核心功能定义差异
df的全称是disk free,核心作用是查看已挂载文件系统的磁盘空间使用状态,它读取的是文件系统的超级块信息,统计的是当前已经被系统挂载、可以正常读写的分区的空间占用情况。
fdisk的全称是fixed disk,核心作用是管理磁盘的分区表结构,它直接操作磁盘的底层扇区,用于创建、删除、调整磁盘分区,修改分区的类型、设置分区是否可启动等,操作的是磁盘的物理/逻辑分区结构,和文件系统是否挂载没有直接关系。
二、使用场景对比
两者的适用场景有明确边界,具体差异如下:
| 对比维度 | df命令 | fdisk命令 |
|---|---|---|
| 核心用途 | 查看磁盘空间使用情况,排查空间不足问题 | 管理磁盘分区,调整分区结构 |
| 操作对象 | 已挂载的文件系统 | 整块磁盘设备(如/dev/sda、/dev/vdb等) |
| 是否需要挂载 | 仅统计已挂载的分区 | 操作不需要分区挂载,甚至建议先卸载分区再操作 |
| 风险等级 | 只读操作,无风险 | 写操作,误操作可能导致数据丢失 |
三、输出内容差异
1. df命令的典型输出
df默认输出以KB为单位的空间信息,加上-h参数可以以人类可读的格式(G、M、K)展示,典型输出如下:
# 查看所有已挂载分区的空间使用情况 df -h # 输出示例 Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 795M 1.1M 794M 1% /run /dev/sda2 50G 20G 28G 42% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 511M 108K 511M 1% /boot/efi tmpfs 795M 0 795M 0% /run/user/1000
输出内容中,Filesystem是分区设备名,Size是分区总容量,Used是已用空间,Avail是剩余可用空间,Use%是空间使用率,Mounted on是分区的挂载点。
2. fdisk命令的典型输出
fdisk需要指定磁盘设备作为参数,进入交互模式后可以查看分区表、操作分区,典型使用示例如下:
# 查看磁盘/dev/sda的分区表信息 fdisk -l /dev/sda # 输出示例 Disk /dev/sda: 60 GiB, 64424509440 bytes, 125829120 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: gpt Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 125829086 124778463 60G Linux filesystem
输出内容中,首先展示磁盘的总容量、扇区数量等基础信息,下方是分区列表,包含每个分区的起始扇区、结束扇区、容量、分区类型等信息。
四、操作权限与注意事项
df命令查看普通用户的挂载分区时,不需要root权限,但如果要查看所有挂载点(包括root权限挂载的分区),建议加上sudo。而fdisk涉及磁盘分区修改,必须使用root权限执行,否则无法进行修改操作,甚至查看部分磁盘信息也会受限。
需要特别注意:fdisk是分区操作工具,执行删除、新建分区等操作前,一定要确认磁盘设备名和分区号,避免误删重要数据。如果不确定操作的影响,建议先使用fdisk -l仅查看分区表,不要进入交互模式执行写操作。
五、典型使用场景示例
场景1:发现系统提示磁盘空间不足,需要查看哪个分区空间不够,此时应该使用df命令:
# 查看空间使用率超过80%的分区
df -h | awk '$5 ~ /[8-9][0-9]%/ || $5 ~ /100%/ {print $0}'
场景2:新添加了一块磁盘/dev/vdb,需要将其划分为一个分区并后续格式化挂载,此时应该使用fdisk:
# 进入fdisk交互模式操作/dev/vdb sudo fdisk /dev/vdb # 交互模式内常用命令: # n:新建分区 # p:查看当前分区表 # d:删除分区 # w:保存修改并退出 # q:不保存修改退出
总结来说,df是空间查看工具,fdisk是分区管理工具,记住df看空间、fdisk管分区,就能快速区分两者的用途,避免用错命令。