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)
酷番叔酷番叔
上一篇 7小时前
下一篇 6小时前

相关推荐

  • 命令行网络操作如何提升效率?

    掌握命令行网络工具是系统管理员、开发者及高级用户的核心技能,在服务器管理、资源受限设备操作及自动化任务中发挥关键作用。

    2025年6月22日
    1500
  • CAD镜像命令MI怎么用?

    CAD镜像命令(MI)用于创建对象的对称副本,操作步骤:输入MI,选择要镜像的对象,指定两点定义镜像对称轴,最后选择是否删除原对象。

    2025年7月19日
    1200
  • 如何在VS Code快速运行命令行?

    在VS Code中可通过集成终端直接运行命令行指令,无需切换程序,提升开发效率。

    2025年7月5日
    1200
  • Node.js怎样执行系统命令?

    Node.js 的 child_process 模块提供执行系统命令的能力,是实现服务器端自动化任务和系统操作的核心功能。

    2025年6月25日
    1600
  • 易语言导出命令如何实现

    在易语言中实现DLL函数导出,本质是通过绕过易语言本身的限制,直接操作Windows DLL的导出表,并严格遵循C语言的调用约定(stdcall),以下是分步技术解析:Windows DLL导出机制基础导出表(Export Table)Windows DLL通过PE文件结构中的导出表公开函数,包含:函数名称(N……

    2025年7月16日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信