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

【Linux进阶】文件系统7——文件系统简单操作

1.磁盘与目录的容量

现在我们知道磁盘的整体数据是在超级区块中,但是每个文件的容量则在inode 当中记载。

那在命令行模式下面该如何显示这几个数据?下面就让我们来谈一谈这两个命令:

  • df:列出文件系统的整体磁盘使用量;
  • du:查看文件系统的磁盘使用量(常用在查看目录所占磁盘空间);

1.1.df

选项与参数:

  • -a:列出所有的文件系统,包括系统特有的/proc等文件系统;
  • -k:以KBytes的容量显示各文件系统;
  • -m:以MBytes的容量显示各文件系统;
  • -h:以人们较易阅读的GBytes、Mbytes、KBytes等格式自行显示
  • -H:以 M=1000K替换 M=1024K的进位方式;
  • -T:连同该硬盘分区的文件系统名称(例如xfs)也列出;
  • -i:不用磁盘容量,而以inode 的数量来显示;

范例一:将系统内所有的文件系全列出来。

在 linux 不面如果 df 没有加任何选项,那么默认会将系统内所有的(不含特殊的内存内的文件系统与swap)都以1KBytes 的容量来列出来,至于那个/dev/shm是与内存有关的挂载,

先来说明一下范例一所输出的结果信息为:

  • Filesystem:代表该文件系统是在哪个硬盘分区,所以列出设备名称;
  • 1k-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变容量;
  • Used:顾名思义,就是使用掉的磁盘空间;
  • Available:也就是剩下的磁盘空间大小;
  • Use%:就是磁盘的使用率,如果使用率高达90%以上,最好需要注意一下,免得容量不足造成系统问题,例如最容易被占满的/var/spool/mail这个保存邮件的目录;
  • Mounted on:就是磁盘的挂载目录。(挂载点)

范例二:将容量结果以易读的格式显示出来


不同于范例一这里会以G/M等容量格式显示出来,比较容易看

范例三:将系统内的所有特殊文件格式及名称都列出来

这里只截取了一小部分

  • /boot系统里面其实还有很多特殊的文件系统存在。
  • 那些比较特殊的文件系统几乎都是在内存当中,例如/proc这个挂载点
  • 因此,这些特殊的文件系统都不会占据磁盘空间。

范例四:将/etc下面的可用的磁盘容量以易读的容量格式显示。

这个范例比较有趣一点,在df后面加上目录或是文件时,df会自动的分析该目录或文件所在的硬盘分区,并将该硬盘分区的容量显示出来,所以,您就可以知道某个目录下面还有多少容量可以使用了。

范例五:将目前各个硬盘分区可用的inode数量列出。



这个范例则主要列出可用的inode剩余量与总容量。分析一下与范例一的关系,你可以清楚地发现到,通常inode的剩余数量都比区块还要多。

由于df主要读取的数据几乎都是针对一整个文件系统,因此读取的范围主要是在超级区块内的信息,所以这个命令显示结果的速度非常快。

在显示的结果中你需要特别留意的是根目录(/)的剩余容量。因为我们所有的数据都是由根目录衍生出来的,因此当根目录的剩余容量剩下0时,你的Linux可能就问题很大了。

        另外需要注意的是,如果使用-a这个参数时,系统出现/proc这个挂载点,但是里面的东西都是0,不要紧张。/proc的东西都是Linux系统所需要加载的系统数据,而且是挂载在内存当中,所以当然没有占任何的磁盘空间。

        至于那个/dev/shm/目录,其实是利用内存虚拟出来的磁盘空间,通常是总物理内存的一半。由于是通过内存模拟出来的磁盘,因此你在这个目录下面建立任何数据文件时,访问速度是非常快的。(在内存中工作。)不过,也由于它是内存模拟出来的,因此这个文件系统的大小在每台主机上都不样,而且建立的东西在下次启动时就会消失,因为是在内存中嘛。

1.2.du

[root@study~]# du [-ahskm]文件或目录名称

选项与参数:

  • -a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量;
  • -h;以人们较易读的容量格式(G/M)显示;
  • -s;仅列出总量,而不列出每个各别的目录占用容量;
  • -S:不包括子目录下的总计,与-s 有点差别;
  • -k:以KBytes列出容量显示;
  • -m;以MBytes列出容量显示;

范例一,列出当前目录下的所有文件容量 

直接输入du没有加任何选项时,则du会分析【目前所在目录】的文件与目录所占用的磁盘空间。

但是,实际显示时,仅会显示目录容量(不含文件),因此(.)目录有很多文件没有被列出来,所以全部的目录相加不会等于(.)的容量,此外,输出的数值数据为 1K大小的容量单位。

范例二:同范例一,但是将文件的容量也列出来。

范例三:检查根目录下面每个目录所占用的容量



这是个经常被使用的功能,利用通配符*来代表每个目录,如果想要检查某个目录下,哪个子目录占用最大的容量,可以用这个方法找出来。

值得注意的是,如果刚刚安装好Linux时,那么整个系统容量最大的应该是/usr。

而/proc虽然有列出容量,但是它的容量是在内存中, 不占磁盘空间。至于/proc 里面会列出一堆【No such file or directory】的错误,别担心,因为是内存中的程序,程序执行结束就会消失,因此会有些目录找不到是正确的.

        与df不一样的是,du 这个命令其实会直接到文件系统内去查找所有的文件数据,所以上述第三个范例命令的运行会执行一小段时间。

        此外,在默认的情况下,容量的输出是以KB 为单位,如果你想要知道目录占了多少MB,那么就使用-m 这个参数即可。如果你只想要知道该目录占了多少容量的话,使用-S就可以。

        至于-S 这个选项部分,由于du 默认会将所有文件的大小均列出,因此假设你在/etc下面使用du时,所有的文件大小,包括/etc 下面的子目录容量也会被计算一次。然后最终的容量(/etc)也会相加一次,因此很多朋友都会误会du分析的结果不太对劲,

所以,如果想要列出某目录下的全部数据,或许也可以加上-S的选项,减少子目录的相加。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • FUSE(用户空间文件系统)命令参数
  • 学懂C#编程:C# 索引器(Indexer)的概念及用法
  • 通用个人客户关系管理系统设计
  • OpenSNN推文:盛夏智慧之光:七月高校新闻聚焦
  • Git命令常规操作
  • C++ //练习 14.45 编写类型转换运算符将一个Sales_data对象分别转换成string和double,你认为这些运算符的返回值应该是什么?
  • 电脑多开卡顿的所有原因汇总
  • IEC62056标准体系简介-2.IEC62056标准体系及对象标识系统(OBIS)
  • 嵌入式底层开发 入门学习路线
  • Python深度理解系列之【排序算法——冒泡排序】
  • 使用OpenCV的absdiff函数报错
  • 深圳唯创知音革新健康监测!语音播报,蓝牙传输,电量检测—全能型智能血压计三大方案,让关爱更“声”动人心
  • 智能眼镜火热发展 AI+AR或将成为主流趋势?
  • Django ModelForm用法详解 —— Python
  • Redis 7.x 系列【21】主从复制
  • ES10 特性的完整指南
  • JS基础之数据类型、对象、原型、原型链、继承
  • 记一次用 NodeJs 实现模拟登录的思路
  • 技术发展面试
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 以太坊客户端Geth命令参数详解
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 我们雇佣了一只大猴子...
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​如何在iOS手机上查看应用日志
  • #Linux(Source Insight安装及工程建立)
  • #Ubuntu(修改root信息)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (多级缓存)缓存同步
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (离散数学)逻辑连接词
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)http-server应用
  • (转)Sublime Text3配置Lua运行环境
  • .md即markdown文件的基本常用编写语法
  • .mysql secret在哪_MySQL如何使用索引
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net framework profiles /.net framework 配置
  • .NET 常见的偏门问题
  • .Net7 环境安装配置
  • .NetCore 如何动态路由
  • .net分布式压力测试工具(Beetle.DT)
  • /3GB和/USERVA开关
  • @31省区市高考时间表来了,祝考试成功
  • @Async 异步注解使用
  • @Autowired 与@Resource的区别
  • @FeignClient注解,fallback和fallbackFactory
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @基于大模型的旅游路线推荐方案
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体