Linux磁盘爆满?df -h秒查空间!

df -h命令可查看Linux磁盘空间使用情况,并以人性化单位(如GB/MB)显示结果,便于快速掌握磁盘状态。

在 Linux 或 Unix 系统管理中,及时了解磁盘空间的使用情况至关重要。df(Disk Free)命令是完成这项任务的核心工具,而 df -h 则是其最常用、最用户友好的形式,它能以人类可读的格式(如 GB、MB)清晰展示文件系统的磁盘空间总量、已用量和剩余量。

命令作用与核心价值

  • 核心功能: 报告文件系统的磁盘空间使用情况。
  • -h 参数的意义: -h--human-readable 选项让命令的输出结果自动转换单位(Bytes, KB, MB, GB, TB),避免显示一长串难以直观理解的字节数字,极大提升可读性。
  • 核心价值: 快速诊断磁盘空间不足问题,监控存储资源消耗,为系统维护、日志清理、数据迁移等操作提供关键依据。

基本用法与输出解读

直接在终端输入命令:

df -h

典型输出示例:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           787M  1.7M  785M   1% /run
/dev/nvme0n1p2  234G   89G  134G  40% /
tmpfs           3.9G   98M  3.8G   3% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/nvme0n1p1  511M  6.1M  505M   2% /boot/efi
tmpfs           787M   88K  787M   1% /run/user/1000

逐列解读输出结果:

  1. Filesystem 显示磁盘分区或存储设备的名称(如 /dev/nvme0n1p2)或特殊文件系统(如 tmpfs, udev)。
  2. Size 该文件系统总容量-h 使其显示为 GB/MB 等)。
  3. Used 该文件系统已使用的空间
  4. Avail 普通用户可用的剩余空间(通常考虑了为 root 保留的空间)。
  5. Use% 已用空间占总容量的百分比,这是快速判断空间紧张程度的关键指标(如 90%+ 通常需要关注)。
  6. Mounted on 该文件系统在目录树中的挂载点(即你访问该磁盘空间的路径,如根目录 、/boot/efi 等)。

常用参数组合与场景

df -h 可以与其他参数结合,满足更具体的需求:

  1. 查看特定文件系统/目录:

    df -h /home  # 查看 /home 目录所在分区的空间
    df -h /dev/nvme0n1p1  # 查看指定设备(如 /dev/nvme0n1p1)的空间
  2. 显示文件系统类型 (-T):

    df -hT

    输出增加 Type 列: 显示文件系统类型(如 ext4, xfs, btrfs, tmpfs, vfat 等),有助于了解存储格式。

  3. 排除特定文件系统类型 (-x):

    df -h -x tmpfs  # 排除所有 tmpfs 类型(内存文件系统)的显示
    df -h -x squashfs -x tmpfs  # 排除多种类型

    常用于过滤掉不关心的临时或虚拟文件系统,聚焦物理磁盘。

  4. 仅显示本地文件系统 (-l):

    df -hl

    排除网络文件系统(NFS, SMB/CIFS 等),只显示本地连接的磁盘。

  5. 显示 inode 使用情况 (-i):

    df -hi  # 结合 -h 显示可读格式

    输出变化: Size, Used, Avail, Use% 列变为 inode 的数量信息(而非磁盘空间),当磁盘空间充足但系统提示“No space left on device”时,很可能是 inode 耗尽(常见于存储大量小文件的场景)。

高级技巧与注意事项

  1. 理解 Avail vs Free

    • df 显示的 Avail (Available) 是普通用户实际可用的空间
    • 文件系统通常会为 root 用户保留一部分空间(通常是 5%),这部分空间包含在 Used 中,但不计入 AvailFree 空间(未在 df -h 中直接显示)是 Size - Used 的总剩余,包含了 root 保留空间。Avail <= Free
  2. 处理“stale file handle”错误:
    如果挂载点失效或 NFS 出现问题,df 可能卡住或报此错,使用 -l 排除网络文件系统或检查挂载状态 (mount 命令) 通常能解决。

  3. --output 选项 (较新版本):
    允许自定义输出列,提供更灵活的报告:

    df -h --output=source,fstype,size,used,avail,pcent,target
    # source(设备), fstype(类型), size, used, avail, pcent(使用%), target(挂载点)
  4. du 命令区分:

    • df 报告整个文件系统/分区的磁盘使用情况。
    • du 报告特定目录或文件占用的磁盘空间,两者用途不同,常结合使用(如 df -h 发现某分区快满了,再用 du -sh * 进入该分区查找大文件/目录)。

最佳实践建议

  1. 定期检查:df -h 纳入日常系统监控脚本或手动检查流程。
  2. 关注关键分区: 重点监控根目录 ()、/var(日志)、/home(用户数据)、数据库目录等易增长的分区。
  3. 结合 Use%Avail 百分比高 (>80%) 或 Avail 绝对值低(如 <10GB)都是需要清理或扩容的信号。
  4. 警惕 inode 耗尽: df -hi 显示 Use% 接近 100%,即使空间充足,也需要删除文件或扩充分区以增加 inode 数量。
  5. 理解输出来源: 明确 df 报告的是挂载点级别的信息,一个物理磁盘的不同分区会显示为不同的行。

df -h 是 Linux/Unix 系统管理员和开发者必备的、用于快速评估磁盘空间健康状况的基石命令,其简洁的输出(得益于 -h 选项)和丰富的信息(总量、已用、可用、使用率、挂载点)使其成为排查磁盘空间问题的首选工具,掌握其基本用法、输出解读以及常用参数组合(如 -hT, -hi, -l),将极大提升你管理服务器或开发环境的效率,养成定期运行 df -h 的习惯,是预防磁盘空间危机的有效手段。


引用说明:

  • 基于 GNU coreutilsdf 命令的官方文档 (info coreutils 'df invocation'man df)。
  • 文件系统行为(如 root 保留空间、inode 概念)参考了 The Linux Kernel Documentation 及相关文件系统(如 ext4, XFS)的规范。
  • 最佳实践部分综合了广泛的系统管理社区经验(如 Server Fault, Unix & Linux Stack Exchange)和行业标准运维指南。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9097.html

(0)
酷番叔酷番叔
上一篇 2025年7月28日 22:56
下一篇 2025年7月28日 23:30

相关推荐

  • 为什么Linux首选EXT4文件系统?

    重要警示:格式化将永久清除硬盘所有数据!操作前请务必:1️⃣ 备份重要文件至其他存储设备2️⃣ 确认操作对象为正确磁盘(误选系统盘将导致操作系统崩溃)3️⃣ 断开非必要外接存储设备,避免误操作Windows系统(命令提示符/ PowerShell)步骤1:启动管理员终端按 Win + S 搜索 cmd 或 Po……

    2025年6月15日
    5000
  • 命令提示符如何切盘?切换到其他磁盘目录的详细操作步骤是什么?

    在Windows系统中,命令提示符(CMD)是常用的命令行工具,通过文本指令可以高效管理文件、执行程序和系统配置,“切盘”即切换当前操作的磁盘盘符(如从C盘切换到D盘),是最基础且高频的操作之一,本文将详细介绍命令提示符中切换磁盘的方法、注意事项及常见问题解决,帮助用户快速掌握这一技能,命令提示符切换磁盘的基本……

    2025年8月26日
    3900
  • 如何删除华为设备命令行?

    进入系统视图,输入undo加原命令格式删除配置;操作后务必执行save命令保存更改。

    2025年7月27日
    3900
  • 安全数据说明书该如何规范表达?

    安全数据说明书(Safety Data Sheet,简称SDS)是化学品安全管理的核心文件,其表达需遵循规范、准确、清晰的原则,确保使用者快速获取关键危害信息与防护措施,根据全球化学品统一分类和标签制度(GHS)标准,SDS通常包含16项内容,各部分的表达需注重逻辑性、专业性与可操作性,避免歧义或模糊表述,以下……

    2025年10月21日
    900
  • 开机怎么grub命令

    GRUB(Grand Unified Bootloader)是Linux系统中广泛使用的引导加载程序,负责在开机时加载操作系统内核、初始化系统并启动,当系统出现引导问题(如无法进入系统、忘记密码、需要指定启动参数等)时,通过GRUB命令行进行操作是常见的解决方式,以下将详细介绍开机时如何进入GRUB命令行及常用……

    2025年8月26日
    3200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信