Linux学习-37-查看文件系统硬盘信息(df、du命令)

news2024/9/22 21:30:43

10.2 df用法详解:查看文件系统硬盘使用情况

  • Linux 磁盘管理好坏直接关系到整个系统的性能问题。df (disk free)命令,检查文件系统的磁盘空间占用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

Linux 操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性存放在 inode 中,至于实际数据则放置到 data block 区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。

inode:记录文件的属性,一个文件占用一个 inode,同时记录此文件的数据所在的 block。

df 命令主要读取的数据几乎都针对的是整个文件系统,所以 df 命令主要是从各文件系统的 Super block 中读取数据。

  • 可以使用 stat 命令查看某个文件的 inode 信息:
[root@CncLucZK ~]# stat /test/user		#目录inode信息
  File: /test/user
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d	Inode: 1048584     Links: 4
Access: (0711/drwx--x--x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-23 10:13:12.026008909 +0800
Modify: 2022-10-16 13:52:11.446111165 +0800
Change: 2022-10-16 13:52:11.446111165 +0800
 Birth: -
[root@CncLucZK ~]# stat /test/tmp.txt	#文件inode信息
  File: /test/tmp.txt
  Size: 77        	Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 1048621     Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-19 09:57:12.706650044 +0800
Modify: 2022-10-19 09:57:09.392640825 +0800
Change: 2022-10-19 09:57:09.392640825 +0800
 Birth: -
  • df 命令的基本格式为:
[root@CncLucZK ~]# df [选项] [目录或文件名]
  • 选项及作用。

    选项作用
    -a显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
    -m以 MB 为单位显示容量;
    -k以 KB 为单位显示容量,默认以 KB 为单位;
    -h使用人们习惯的 KB、MB 或 GB 等单位自行显示容量;
    -H以 M=1000K 取代 M=1024K 的进位方式;
    -T显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
    -i不用硬盘容量显示,而是以含有 inode 的数量来显示。
  • 将系统内所有的文件系统列出来!

[root@CncLucZK ~]# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm

不使用任何选项的 df 命令,默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 文件系统信息,以 KB 为单位显示出来。

  • 由 df 命令显示出的各列信息的含义分别是:
    • Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
    • 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
    • Used:表示用掉的硬盘空间大小;
    • Available:表示剩余的硬盘空间大小;
    • Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
    • Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
  • 这里使用了 -h 选项,因此文件系统的各种容量数据,将容量结果以易读的容量格式显示出来(通常使用 GB 或 MB)。
[root@CncLucZK ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm

#这里在 df 命令后添加了目录名,在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来。由此,我们就可以知道,该目录下还可以使用多少磁盘容量。
[root@CncLucZK ~]# df -h /etc
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  8.5G   39G  18% /
#将 /etc 底下的可用的磁盘容量以易读的容量格式显示

在这里插入图片描述

devtmpfs 、tmpfs 、这些是硬盘的驱动程序 , /dev/sdal 是第一个分区,它的后面放了一个/boot是Linux的启动文件 .

/dev/mapper/centos-root 是逻辑卷

  • 将系统内的所有特殊文件格式及名称都列出来
[root@localhost ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

注意,使用 -a 选项,会将很多特殊的文件系统显示出来,这些文件系统包含的大多是系统数据,存在于内存中,不会占用硬盘空间,因此你会看到,它们所占据的硬盘总容量为 0。

10.3 du命令:统计目录或文件所占磁盘空间大小

  • du (disk used)命令:是统计目录或文件所占磁盘空间大小的命令用以检查磁盘空间使用量。我们在统计目录时,用ls -l命令只能查看父目录下的子目录和子文件占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小
[root@CncLucZK test]# ll -dh user
drwx--x--x 4 root root 4.0K Oct 16 13:52 user

注意,使用"ls -h"命令也是可以看到文件的大小的。但在使用"ls -h"命令査看目录大小时,目录的大小多数是 4KB,这是因为目录下的子目录名和子文件名是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小。

  • du 命令的格式如下:
[root@CncLucZK ~]# du [选项] [目录或文件名]
  • 选项:
    • -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
    • -h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
    • -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示;
  • 直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录(包括隐藏文件夹)不统计子文件所占用的硬盘空间:
#每个目录都会列出来
[root@CncLucZK test]# du
#磁盘占用量的大小。默认单位为KB   #统计每个子目录的大小
4	./users/u3
4	./users/tmp
4	./users/u1
4	./users/u2
36	./users
4	./tproject/dict1
4	./tproject/dict
12	./tproject
4	./user/tmp
4	./user/config
3180	./user
4	./config/users
8	./config
8508	.
#统计当前目录总大小
  • 将文件的容量也列出来
[root@CncLucZK test]# du -a
4	./demo.txt.bz2
4	./demo2.txt
4	./demotmo.txt
4	./differ.patch
4	./user.txt
4	./users/u3
4	./users/tmp
....
3180	./user
4	./config/users
8	./config
8508	.
#统计当前目录的总大小,同时会统计当前目录下所有子文件和子目录磁盘占用量的大小。默认单位为 KB
[root@CncLucZK test]# du -sh
8.4M	.
#只统计当前目录在磁盘占用量总的大小,同时使用习惯单位显示
  • 检查根目录底下每个目录所占用的容量
[root@CncLucZK ~]# du -sh /*				#通配符 * 来代表每个目录。

16K	/app
0	/bin
122M	/boot
8.0K	/data
16K	/dev
24M	/etc
168K	/home
0	/lib
0	/lib64
16K	/lost+found
4.0K	/media
4.0K	/mnt
4.2M	/opt
du: cannot access '/proc/790422/task/790422/fd/4': No such file or directory
du: cannot access '/proc/790422/task/790422/fdinfo/4': No such file or directory
du: cannot access '/proc/790422/fd/4': No such file or directory
du: cannot access '/proc/790422/fdinfo/4': No such file or directory
0	/proc
1.6M	/root
420K	/run
0	/sbin
4.0K	/srv
0	/sys
8.4M	/test
72K	/tmp
4.0K	/tproject
2.8G	/usr
4.0G	/var		#系统初期最大文件
1.4G	/www
  • du命令和df命令的区别:使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统整体的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间,会直接到文件系统内去搜寻所有的文件数据。也就是说,df 命令统计的分区更准确,是真正的空闲空间。

参考文献:
Linux df用法详解:查看文件系统硬盘使用情况
Linux 磁盘管理

下一篇:Linux学习-38-硬盘分区命令fdisk介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计bugbase管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Div3 cf1741

Cf1741 文章目录A. Compare T-Shirt SizesB. Funny Permutation(思维)C. Minimize the Thickness()A. Compare T-Shirt Sizes 题意: 第一行,输入测试样例个数n,接下来n行输入 ,输入a和b代表衣服…

【自然语言处理(NLP)】基于注意力机制的英文新闻标题生成

【自然语言处理(NLP)】基于注意力机制的英文新闻标题生成 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全…

SpringBoot+Vue项目宠物猫店管理系统的设计与实现

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JDK版…

[附源码]java毕业设计篮球俱乐部管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Flume部署实验

目录一、实验介绍1.1实验内容1.2实验知识点1.3实验环境1.4实验资源1.5实验步骤清单二、实训架构三、实验环境准备四、实验步骤4.1Flume部署4.1.1配置hosts文件及zookeeper的myid4.1.2安装Flume4.1.3验证Flume五、实验总结一、实验介绍 1.1实验内容 本实验包括分布式海量日志采…

Axure 学习:简单的下拉菜单为什么做不好?

​很多同学在学习axure的时候,总是会发现有的时候明明看起来很简单的内容,却怎么也做不好,总是会出现这样或那样的问题。 原因是细节。有的同学没有注意到细节,忽略了,造成做好的内容总是存在一些小问题。本文以一个交…

【FLASH存储器系列十】ONFI数据接口的时序参数与时序图

目录 1.1 时序参数 1.2 时序图详解 1.2.1命令锁存时序 1.2.2地址锁存时序 1.2.3数据输入时序 1.2.4数据输出时序 1.2.5数据输出时序(EDO) 1.2.6读状态时序 1.1 时序参数 ONFI协议中明确规定了时序参数的范围,如果不满足要求的最小和最…

赞奇科技英特尔共图视觉计算“云”上大作为

作为物理世界与虚拟世界 “数实交融” 的重要桥梁,视觉计算已经成为建筑设计、VR/AR、互动游戏、影视动漫、工业设计等行业领域赖以发展的关键计算形式,通过图像初始略图、三维重建等方式,将事物与场景特征以图片、视频等视觉方式表现出来&am…

Nginx高可用

在生产环境上很多时候是以Nginx做反向代理对外提供服务,但是Nginx难免遇见故障,如:服务器宕机。当Nginx宕机那么所有对外提供的接口都将导致无法访问。因此需要两台以上的Nginx服务器对外提供服务,这样的话就可以解决其中一台宕机…

再探Kotlin 跨平台——迁移Paging分页库至KMM

前言 KMM的发展除了靠官方社区的支持外,一些大企业的开源落地也尤为重要。从这些开源中我们需要借鉴他的设计思想和实现方式。从而在落地遇到问题时,寻得更多的解决办法。 上周,Square正式将Paging分页库迁移到了Kotlin Multiplatform平台&…

目标检测论文解读复现之十:基于YOLOv5的遥感图像目标检测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

接上篇文章,完成Hadoop集群部署实验

这里写目录标题一、实验介绍1.1 实验内容1.2 实验知识点1.3 实验环境1.4 实验资源1.5 实验步骤清单二、实验架构三、实验环境准备四、实验步骤4.1 查看环境4.2部署Hadoop集群4.2.1安装hadoop(master)4.2.2创建hdfs数据文件存储目录(master)4.2.3修改配置文件(master)4.2.4主从节…

项目管理:团队执行力差,管理不善是根源

为什么说团队执行力差,多半是管理者的问题?如何提高团队的执行力? 1、员工不知道该做什么 项目开始一段时间,员工都还没弄清楚该做什么,是什么职位啊?为什么会产生这样的问题呢? 这是因为管理…

clickhouse使用clickhouse-keeper代替zookeeper

目录 异常现象: 1. clickhouse的异常日志 2. 追踪对应节点的zookeeper日志 使用clickhouse-keeper代替 zookeeper的步骤: 1: 准备 clickhouse-keeper的配置文件 1.1- 设置通信地址,以便对外通信 1.2- 在config.xml中…

java计算机毕业设计ssm宠物店管理系统element vue前后端分离

项目介绍 宠物店管理平台是使用JAVA的SSM技术,MySQL作为数据库开发,用户通过查看宠物,在线购买商品情况,并可以查看宠物店铺嘻嘻,实现宠物信息化管理。首先对本论文进行分析后,提出平台的相关技术,然后整理系统的需求分析,根据需求进行功能和数据库设计,最后进行系统实现和测试…

Nginx静态资源配置

Nginx配置成系统服务 把Nginx应用服务设置成为系统服务,方便对Nginx服务的启动和停止等相关操作,具体实现步骤: 在/usr/lib/systemd/system目录下添加nginx.service,内容如下: [Unit] # Unit表明该服务的描述,类型描述 Descriptionnginx w…

MQ(二)RabbitMQ快速入门

一、RabbitMQ 概述和安装 RabbitMQ 是基于 Erlang 语言开发的开源消息通信中间件 1. RabbitMQ的结构和概念 RabbitMQ中的几个概念: (1)channel:操作MQ的工具 (2)exchange:路由消息到队列中 &…

数据结构知识点补充

(67条消息) c语言怎么return ok,C语言中的 return与exit_哈哈哈可以的博客-CSDN博客 假如把i或i放入到for循环的函数体中,若没有变量或函数来接收其返回值,那么它们的作用效果也是相同的(67条消息) C语言的for循环中i和i的关系_肥嘟嘟的左卫门的博客-CSD…

1226:装箱问题 (贪心)

【题目描述】 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为11,22,33,44,55,66。这些产品通常使用一个66h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂…