一、基本概念

1. 磁盘与分区

物理磁盘:如 /dev/sda/dev/nvme0n1,对应整块硬盘。

分区:将物理磁盘划分为逻辑区域,如 /dev/sda1/dev/sda2

分区表:记录分区信息,主要有两种格式:

  • MBR(Master Boot Record):传统格式,支持最多4个主分区(或3主分区+1扩展分区+多个逻辑分区),最大支持2TB磁盘。

  • GPT(GUID Partition Table):新一代格式,支持更多分区(通常128个)和更大磁盘(2TB以上),需要 UEFI 支持。

2. 文件系统

分区需要格式化为特定的文件系统后才能存储数据。常见 Linux 文件系统:

  • ext2/ext3/ext4:Linux 标准文件系统,ext4 是目前广泛使用的版本。

  • XFS:高性能文件系统,适合大文件和大容量,许多现代发行版默认使用(如 RHEL/CentOS 7+)。

  • Btrfs:下一代文件系统,支持快照、压缩、校验和等高级功能。

  • swap:交换分区,用作虚拟内存。

常用命令速查表

类别 命令 说明
查看 lsblk 列出块设备
查看 fdisk -l 查看分区表
查看 blkid 查看 UUID 和文件系统类型
分区 fdisk / gdisk / parted 分区工具
格式化 mkfs.ext4 / mkfs.xfs / mkswap 创建文件系统/交换
挂载 mount / umount 挂载/卸载
自动挂载 /etc/fstab 配置文件
LVM pvcreatevgcreatelvcreate 创建物理卷、卷组、逻辑卷
RAID mdadm 管理软件 RAID
配额 edquotaquotarepquota 磁盘配额管理
检查 fsck 文件系统检查
空间 dfdu 磁盘空间使用情况
交换 swaponswapoff 启用/禁用交换

df—磁盘空间使用情况

df(disk free)用于显示文件系统的总容量、已用空间、可用空间、使用率以及挂载点等信息。

常用选项

  • -h(human-readable):以人类易读的格式显示(如 KB、MB、GB)。

  • -T:显示文件系统类型。

  • -i:显示 inode 使用情况而非块使用情况。

  • -a:显示所有文件系统,包括虚拟文件系统(如 proc、sysfs)。

  • -t <类型>:只显示指定类型的文件系统。

df -h                 # 查看所有挂载文件系统的磁盘使用情况(人性化显示)
df -Th                # 显示文件系统类型和磁盘使用情况
df -i                 # 查看 inode 使用情况
df -h /home           # 仅显示 /home 所在文件系统的信息

du—估算文件/目录的磁盘使用空间

常用选项

  • -h:以人类易读格式显示(KB、MB、GB)。

  • -s(summarize):只显示总计大小,不列出子目录。

  • -a:显示所有文件的大小,而不仅仅是目录。

  • --max-depth=N:指定显示目录树的深度,例如 --max-depth=1 只显示当前目录下的一级子目录大小。

  • -c:最后给出总计。

  • -d N:相当于 --max-depth=N(部分版本支持)。

du -sh /home/user          # 显示 /home/user 目录的总大小
du -h --max-depth=1 /var   # 显示 /var 下一级子目录的大小
du -ah /etc | sort -rh | head -10   # 列出 /etc 下最大的10个文件
du -ch *.log               # 统计当前目录下所有 .log 文件的总大小并给出总计

df :从文件系统层面查看磁盘空间使用情况,适合快速了解系统整体磁盘占用。

du : 从文件/目录层面统计磁盘使用,适合定位哪些目录或文件占用了大量空间。

fdisk  :是底层分区工具,用于管理磁盘的分区表,创建或调整分区结构。

fdisk – 磁盘分区管理工具

fdisk 是一个用于创建、删除、修改磁盘分区的命令行工具,支持 MBR 和 GPT 分区表(对于 GPT 推荐使用 gdisk 或 parted,但 fdisk 新版本也支持 GPT)。操作时需要 root 权限。

交互模式常用内部命令

  • m:显示帮助菜单。

  • p:打印当前分区表。

  • n:新建分区。

  • d:删除分区。

  • t:修改分区类型(如 83 为 Linux,82 为 swap)。

  • w:保存修改并退出。

  • q:不保存退出。

sudo fdisk -l                     # 列出所有磁盘的分区表
sudo fdisk /dev/sdb                # 对 /dev/sdb 进行分区操作

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐