Linux下df命令查看磁盘使用详解
哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《Linux下查看磁盘使用情况的df命令详解》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
df命令用于查看文件系统磁盘使用情况,加-h选项可读性强,-T显示文件系统类型,-i检查inode使用;df与du区别在于前者看文件系统整体空间,后者统计文件实际占用,二者差异常因已删除但被占用的文件导致;注意df显示的可用空间含root预留5%,且结果为瞬时快照,需结合du、lsof、find等命令综合分析和管理磁盘空间。

在Linux系统里,想知道你的硬盘空间还剩多少、哪些地方被占用了,最常用的、也是我个人觉得最直观的工具,非df命令莫属。它能迅速概览所有已挂载文件系统的空间使用情况,包括总大小、已用、可用以及使用百分比,让你对磁盘状况一目了然。
说起df命令,它的全称是 'disk free',顾名思义,就是告诉你磁盘的空闲情况。
最基础的用法,直接在终端敲入df,你就能看到一个表格。不过,默认输出的单位是KB,对我们人类来说,看那些大数字有点费劲。
所以,我通常会加上-h选项,也就是df -h。这个-h代表 'human-readable',它会自动把容量转换成GB、MB这种我们更容易理解的单位。这一下子就清晰多了,比如 /dev/sda1 挂载在 / 上,总共多少G,用了多少G,还剩多少G,用了百分之多少,一目了然。
有时候,你可能想知道某个特定目录或者文件系统的使用情况,比如只想看 /home 目录。你可以直接 df -h /home。
另外一个我偶尔会用的选项是-T,它会显示文件系统的类型(Type),比如 ext4、xfs 等等。这对于排查一些文件系统相关的问题时很有用。
还有个 -i 选项,是查看 inode 使用情况的。虽然不是直接的磁盘空间,但文件系统除了存储数据,还需要存储文件的元数据,也就是 inode。如果 inode 用完了,即使磁盘空间还有,你也创建不了新文件。这在一些特殊场景下,比如小文件特别多的应用,就显得尤为重要了。
我记得有一次,服务器空间明明还有很多,但就是新建不了文件,查了半天,才发现是 inode 耗尽了,df -i 帮了大忙。
df和du命令有什么区别?
很多初学者,甚至一些有经验的用户,都会把df和du这两个命令搞混,或者说不清楚它们到底有什么区别。其实它们虽然都和磁盘空间有关,但关注点完全不同。
df(disk free)关注的是文件系统的使用情况。它读取的是文件系统的元数据,告诉你整个文件系统层面的总容量、已用、可用空间。你可以把它想象成是看一个水库的总水量、已经用了多少、还能装多少。它报告的是实际挂载点上的空间占用。
而du(disk usage)关注的则是文件或目录的实际占用空间。它会递归地遍历指定目录下的所有文件和子目录,然后把它们的大小加起来。这就像是你去测量水库里每一艘船、每一块石头占了多少体积。du统计的是文件或目录实际占用的块大小,这可能会因为文件系统块大小、稀疏文件等原因,与df报告的总和略有差异。
举个例子,一个被删除但仍被进程占用的文件,df会认为这部分空间仍被占用(因为文件句柄还在),而du则不会计算它,因为它已经从文件系统中“消失”了。所以,当你发现df显示的空间占用和du对所有目录求和的结果不一致时,很可能就是有文件被删了但句柄没释放,或者有稀疏文件等特殊情况。理解这个差异,在排查磁盘空间问题时,能省不少力气。
df命令的常见陷阱和注意事项?
虽然df命令用起来简单,但我在实际使用中也遇到过一些“坑”,或者说需要注意的地方。
一个常见的误解是,df报告的“可用空间”并不总是你能完全利用的空间。Linux文件系统(比如ext4)默认会预留一部分(通常是5%)空间给root用户,目的是为了防止磁盘被完全写满后系统无法正常运行,或者root用户无法登录进行维护。所以,如果你看到可用空间还有1GB,但普通用户却写不进去一个1GB的文件,别惊讶,那5%的预留空间可能就是原因。你可以用tune2fs -l /dev/sda1 | grep 'Reserved block count'来查看预留块,甚至用tune2fs -r 0 /dev/sda1来取消预留(不推荐在生产环境随意操作)。
再就是,df只显示已挂载的文件系统。如果你有未挂载的分区或者裸设备,df是看不到它们的。这时候你需要fdisk -l或者lsblk来查看物理设备布局。
还有一点,df的结果是瞬时快照。如果你的系统正在进行大量的写入或删除操作,df的结果可能在短时间内就变得不准确。特别是当有大文件被删除,但文件句柄仍被某个进程占用时,df会继续显示这部分空间已被占用,直到进程释放文件句柄或者重启。遇到这种情况,lsof | grep deleted 可能会帮你找到“元凶”。这可是我排查过好几次生产环境问题才总结出来的经验。
如何结合其他命令更有效地管理磁盘空间?
光会看df输出还不够,真正的磁盘空间管理,往往需要组合拳。
首先,当你通过df -h发现某个分区空间告急时,下一步通常是找出是哪个目录或文件占用了大量空间。这时候,du -sh *在可疑目录下就派上用场了。du -sh *会列出当前目录下所有文件和子目录的总大小,-s是summary,-h是human-readable。我经常会用du -sh * | sort -rh | head -n 10来快速找出前十大占用空间的文件或目录,这比漫无目的地一个个查看高效多了。
如果发现是日志文件(比如/var/log)过大,你可以考虑配置日志轮转(logrotate),让系统自动压缩、归档或删除旧日志。这是一个非常重要的系统维护习惯,能有效避免日志文件无限膨胀。
另外,对于那些你不再需要的旧文件、临时文件或者下载包,及时清理也是关键。find /path/to/search -type f -mtime +30 -delete 这样的命令可以帮你清理30天前修改过的文件。但操作rm或delete时务必小心,确认无误再执行,一个不小心可能就删掉重要数据了。我个人建议先用find ... -exec echo {} \;预览一下要删除的文件列表,确认后再替换成rm或-delete。
最后,如果磁盘空间实在不够,而又不能轻易删除文件,那么考虑扩容或者迁移数据就是不得不走的一步了。这通常涉及到更复杂的LVM操作或者云存储的弹性伸缩。但这一切的前提,都是你得先通过df和du清晰地了解当前磁盘的真实状况。
本篇关于《Linux下df命令查看磁盘使用详解》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!
PHP并发递增的竞态问题解析
- 上一篇
- PHP并发递增的竞态问题解析
- 下一篇
- Linux下Golang环境配置教程
-
- 文章 · linux | 2星期前 |
- Linux下禁用su切换用户设置方法
- 187浏览 收藏
-
- 文章 · linux | 2星期前 |
- Linux下解压ZIP文件的几种方法
- 288浏览 收藏
-
- 文章 · linux | 2星期前 |
- Linux修改文件所有者教程
- 250浏览 收藏
-
- 文章 · linux | 2星期前 |
- Linux搭建网站服务器详细教程
- 280浏览 收藏
-
- 文章 · linux | 2星期前 |
- Linux容器安全配置全攻略
- 122浏览 收藏
-
- 文章 · linux | 2星期前 |
- Linux下安装Wine运行Windows软件方法
- 497浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- 剧云
- 剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
- 20次使用
-
- 万象有声
- 万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
- 28次使用
-
- Red Skill
- 小红书创作服务平台为小红书创作者和机构提供视频上传、数据分析、粉丝管理、创作指导等多项运营服务,助力用户解锁更多创作者专属功能,体验高效创作!
- 33次使用
-
- MiMo Code
- MiMo Code 是小米大模型团队开源的新一代 AI 编程助手,面向开发者提供代码理解、生成与辅助开发能力,适合作为 AI 编程工具收藏和体验。
- 126次使用
-
- TRAE Work
- TRAE AI IDE | 国内首款 AI 原生集成开发环境,深度集成 Doubao-1.5-pro 与 DeepSeek 模型,支持中文自然语言一键生成完整代码框架,实时预览前端效果并智能修复 BUG。首创 Builder 模式实现需求到代码的自动化开发,兼容 Windows/macOS 系统,官网下载即用。
- 152次使用
-
- 命令行工具:应对Linux服务器安全挑战的利器
- 2023-10-04 501浏览
-
- 如何使用Docker进行容器的水平伸缩和负载均衡
- 2023-11-07 501浏览
-
- linux .profile的作用是什么
- 2024-04-07 501浏览
-
- 如何解决s权限位引发postfix及crontab异常
- 2024-11-21 501浏览
-
- 如何通过脚本自动化Linux上的K8S安装
- 2025-02-17 501浏览

