当前位置: 首页 > article >正文

深入理解 Linux df 命令:用法详解与使用示例

  深入理解 Linux du 命令:用法详解与使用示例
  在 Linux 系统中,管理和监控磁盘空间是日常运维工作的重要组成部分。除了常用的 du 命令外,df 命令也是一个核心工具,用于查看系统中磁盘分区的使用情况。虽然 dudf 命令都涉及磁盘空间的监控,但它们的用途略有不同。

本文将详细介绍 df 命令的用法、常见选项,并比较 dfdu 的功能和应用场景的区别。


1. 什么是 `df` 命令?

dfdisk free(磁盘空闲空间) 的缩写,用于显示文件系统的磁盘使用情况。它会显示系统中所有挂载的文件系统的总容量、已用空间、可用空间以及挂载点等信息。

基本语法

df [选项]... [文件]...
  • [选项]:可选的参数,用于控制 df 的输出格式和行为。
  • [文件]:可选的路径,表示要查看对应文件所在分区的磁盘使用情况。如果不指定,df 默认显示所有挂载的文件系统。

2. `df` 命令的常用选项

df 提供了许多选项,用于定制输出格式和过滤所需信息。以下是一些常用选项的介绍及其实际应用示例。

2.1 `-h`:以容易阅读的格式显示

-h 选项将磁盘使用情况以容易阅读的格式显示,例如 KB、MB、GB,而不是默认的字节数。

df -h

输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   30G   20G  60% /
tmpfs           256M  0.0K  256M   0% /dev/shm
/dev/sdb1       100G   60G   40G  60% /home

df -h 命令显示了每个挂载点的文件系统容量、已用空间、剩余空间和使用百分比,单位为 GB 和 MB。

2.2 `-T`:显示文件系统类型

-T 选项可以显示每个文件系统的类型(如 ext4、xfs、tmpfs 等)。

df -T

输出:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       50G   30G   20G  60% /
tmpfs          tmpfs     256M     0  256M   0% /dev/shm
/dev/sdb1      xfs       100G   60G   40G  60% /home

文件系统类型可以帮助了解每个分区使用的文件系统格式,便于系统管理和优化。

2.3 `-i`:显示 inode 信息

-i 选项用于显示文件系统的 inode 使用情况,而不是磁盘块的使用情况。Inode 是文件系统中的数据结构,记录了文件的元数据信息。

df -i

输出:

Filesystem     Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1      3276800  50000 3226800    2% /
tmpfs           65536      1   65535    1% /dev/shm
/dev/sdb1      5242880  10000 5232880    1% /home

使用 -i 选项可以帮助监控系统的 inode 使用情况。如果 inode 被用完,则即使磁盘空间充足,也无法创建新文件。

2.4 `-t` 和 `-x`:按文件系统类型过滤

  • -t:只显示指定类型的文件系统。
  • -x:排除指定类型的文件系统。
示例:只显示 xfs 文件系统
df -h -t xfs
示例:排除 tmpfs 文件系统
df -h -x tmpfs

2.5 `--total`:显示总计

--total 选项在输出的最后添加一行,显示所有文件系统的总容量、已用空间和剩余空间。

df -h --total

输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   30G   20G  60% /
tmpfs           256M     0  256M   0% /dev/shm
/dev/sdb1       100G   60G   40G  60% /home
total           150G   90G   60G  60%

--total 选项可以帮助快速查看所有文件系统的总磁盘使用情况。

2.6 `-k, -m, -B`:自定义单位

  • -k:以千字节(1024 字节)为单位显示。
  • -m:以兆字节(1,048,576 字节)为单位显示。
  • -B SIZE:以自定义块大小单位显示。
示例:以兆字节为单位显示
df -m

3. `df` 命令的常见使用场景

3.1 检查磁盘空间使用情况

当磁盘空间不足时,可以使用 df -h 快速检查每个分区的磁盘空间使用情况。

df -h

通过查看 Use% 列,可以快速发现哪些分区的磁盘空间已经接近满载。

3.2 查看文件系统类型

在进行系统维护或优化时,了解文件系统类型很重要。可以使用 df -T 来查看每个挂载点的文件系统类型。

df -T

3.3 监控 inode 使用情况

在某些情况下,即使磁盘空间充足,文件系统的 inode 可能已经耗尽,从而无法创建新文件。使用 df -i 可以帮助监控 inode 的使用情况。

df -i

4. `df` 与 `du` 命令的区别

dfdu 都用于监控磁盘空间的使用情况,但它们的作用和工作原理有很大的不同。

特性df命令du命令
用途检查文件系统的已用和可用磁盘空间检查特定目录或文件的磁盘使用量
操作范围针对整个文件系统针对目录和文件
显示内容文件系统的已用空间、剩余空间、挂载点等目录或文件的大小,递归显示子目录
数据来源文件系统的元数据(superblock)实际扫描目录和文件
常用选项-h, -T, -i, --total-h, -s, -a, --max-depth=N
显示单位显示整个文件系统的总容量显示目录或文件占用的空间
inode 信息可以显示 inode 使用情况 (df -i)主要关注文件大小,不显示 inode 信息
适用场景查看文件系统的整体健康状况,例如磁盘空间不足时详细分析某个目录或文件的磁盘使用情况

4.1 `df`:文件系统级别的空间使用情况

df 命令用于检查整个文件系统的磁盘使用情况。它查看的是文件系统的元数据,例如超级块(superblock),并报告整体的磁盘使用情况。df 适用于:

  • 检查分区的总容量、已用空间和剩余空间。
  • 查看文件系统的类型(例如 ext4、xfs、tmpfs 等)。
  • 监控文件系统的 inode 使用情况。

4.2 `du`:目录和文件级别的空间使用情况

du 命令用于显示特定目录或文件的磁盘使用情况。它会递归扫描目录中的文件和子目录,并计算它们的实际占用空间。du 适用于:

  • 详细分析某个目录或文件的磁盘使用情况。
  • 找到哪些目录或文件占用了最多的磁盘空间。
  • 递归统计目录的大小。

4.3 常见问题:为什么 `df` 和 `du` 的结果不一致?

经常会发现 dfdu 的结果不一致,这通常是由于以下原因导致的:

  1. 删除了打开的文件:如果一个文件已经被删除,但进程仍然打开它,df 会将其计入已用空间,而 du 可能不会看到它。
  2. 文件系统的保留空间:文件系统通常会为超级用户(root)保留一些空间,df 会显示这些保留空间,而 du 只会显示实际使用的空间。
  3. 挂载点的差异df 显示的是整个文件系统的使用情况,而 du 只显示从指定目录开始的使用情况。

5. 总结

df 是一个强大而灵活的工具,用于查看系统中所有挂载文件系统的磁盘使用情况。它可以帮助快速了解整个系统的磁盘使用情况,包括剩余空间、已用空间、文件系统类型和 inode 使用情况。

df 侧重于文件系统级别的报告,du 更适合具体文件和目录的详细分析。


希望这篇文章能帮助到你,如果有其他问题或建议,欢迎留言讨论!


http://www.kler.cn/a/380549.html

相关文章:

  • Java设计模式 —— 【结构型模式】外观模式详解
  • Android Https和WebView
  • Qt:QMetaObject::connectSlotsByName实现信号槽自动关联
  • 【数据结构练习题】链表与LinkedList
  • 图书借阅管理系统|SpringBoot|HTML|web网站|Java【源码+数据库文件+包部署成功+答疑解惑问到会为止】
  • 基于AT89C52单片机的6位电子密码锁设计
  • 【Linux】从零开始使用多路转接IO --- epoll
  • 易盾增强版滑块识别/易盾识别/滑块识别/增强版滑块识别/易盾滑块本地识别
  • 前端通过nginx部署一个本地服务的方法
  • 关于 PDF 抽取的吐槽
  • 【LeetCode】每日一题 2024_11_5 求出硬币游戏的赢家(模拟/数学)
  • Node学习记录-events
  • 论文阅读-用于点云分析的自组织网络
  • TDengine数据备份与恢复
  • 【云备份项目】json以及jsoncpp库的使用
  • SpringBoot新闻稿件管理系统:架构与实现
  • 【零售和消费品&存货】快递包裹条形码与二维码识别系统源码&数据集全套:改进yolo11-RFCBAMConv
  • redis7学习笔记
  • nodejs入门教程12:nodejs url模块
  • WindowsDocker安装到D盘,C盘太占用空间了。
  • 确定性信道无损耗信道无用信道对称信道
  • mysql 8.0.39 Caused by: java.sql.SQLException: Illegal mix of collations 异常解决
  • 信而泰防火墙安全测试解决方案:为网络安全保驾护航
  • leetcode-19-删除链表的倒数第N个结点
  • 【青牛科技】GC4928替代BD63006/罗姆在吸尘器行走轮、卷发器、水泵和小风扇中的应用
  • Linux之初体验