鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)
上一篇文章主要从理论上分析了Linux的Ext2文件系统。这一篇主要解说怎样查看Linux的文件系统的容量以及解说Linux文件系统中的连接文件。
能够通过df和du命令来查看磁盘与文件夹的容量。df命令用来列出文件系统的总体磁盘容量,df命令的使用方法是 df [-ahikHTm] 文件夹或文件名称。假设df命令不加不论什么參数,则默认将系统内全部的文件系统的容量以及使用情况都列出来。关于df命令还须要说明的是
df命令是查看文件系统的总体使用情况,因此是从Super block(见前一篇文章)中读取信息,因此df命令的运行速度很快。
下面是df命令的使用举例:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
从图中可以看到,尽管用df命令查看/etc文件夹的使用情况,可是df命令会自己主动分析该文件夹所在的分区,然后将该分区的使用情况列举出来。这里不要犯迷糊,仅仅要不进行磁盘限额,那么/etc文件夹可以使用的容量就是该文件夹所在文件系统的容量。
那假设我就是要看当前/etc文件夹已占用的文件系统容量,那就得通过 du命令。du命令主要用来查看文件夹所占的容量。
不同于df命令,du命令是直接到文件系统内去查看全部的文件系统数据,因此运行时间可能会久一点。关于du命令还是多讲一点。可能鸟哥书上讲的不是非常清楚,du命令默认会显示该文件夹下各个子文件夹的容量,而显示的总文件夹容量是已经将该文件夹下各个子文件夹的容量加和的。
举个样例,如图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
/home文件夹下总共同拥有三个子文件夹: /home/hw , /home/test_one ,/home/fuchencong ,它们的容量(已经算上子文件夹)各自是4k。52k,240k,并且能够查看到 /home 文件夹自己本身(不算子文件夹的容量)是4k。所以终于显示的/home文件夹的容量是 4k + 52k + 240k + 4k= 300k。
另外在使用du命令时。假设加上-S參数,则显示的文件夹容量就不会加上子文件夹的容量,此时仅仅是显示该文件夹本身占用的容量(当然还包含该文件夹下的直接文件),例如以下图所看到的: /home文件夹显示的占用容量为4k,这就是/home文件夹本身所占用的容量,而不包含其子文件夹所占用的容量。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
接下来解说Linux中的连接文件,假设已经理解了Linux的Ext2文件系统,那么理解连接文件就很easy了。
在Linux操作系统中,连接文件分为两种,硬连接(实际连接)和 符号连接。能够使用ln命令创建连接文件,ln命令的用法为 ln [-sf] 源文件 目标文件,假设不加不论什么參数制作连接文件,就是默认创建硬连接,假设加上-s參数。就是代表创建符号连接文件。那硬连接和符号连接有什么差别呢?
上一篇文章已经讲过,Linux读取一个文件时。首先要从文件夹block里找出该文件名称相应的inode号码。那假设同一时候有多个文件名称同一时候相应一个inode号码,那么不管通过哪个文件名称实际上都訪问到同一个文件,事实上这就是硬连接。
简单的说。硬链接仅仅是在某个文件夹下新建一条文件名称关联到某个inode号码的关联记录而已。
当有多个文件名称关联到同一个inode号码。就能够通过当中的随意一个文件名称来訪问该文件的数据,并且不管通过哪个文件名称来改动数据,终于都会改动到实际的文件数据。
类似的。当删除一个文件时,事实上仅仅是将相应的inode里的引用计数-1。并不会真的删除文件数据,仅仅有当该文件inode里的引用计数减为0,该文件数据才会真的被删除。
可是硬连接也是有限制的,由于每一个文件系统都有自己的inode编号。所以文件夹项里文件名称相应的inode号码仅仅能是同一文件系统里的inode号码。因此硬连接仅仅能针对同一文件系统创建。不能跨文件系统建立。并且硬连接也不能连接到文件夹。一方面对文件夹创建硬连接会添加系统环境的复杂度,还有一方面对文件夹创建硬连接easy造成循环。因此不支持硬连接到文件夹。
Linux中另一类连接。称为符号连接。
不同于硬连接。符号连接是创建了一个独立的文件,仅仅只是对这个文件的数据读取会被转向为对它指向文件的数据读取。因此当源文件被删除时。符号连接就会“开不了”。并且对于一个符号连接,它的文件长度就是它所引用文件的文件名称长度,由于在连接文件里,它的内容就是目标文件的“文件名称”。
下面是硬连接和符号连接的一个实例:
图中能够清晰的观察到hard_link 和 test.file关联到同一个inode号码,因此这两个文件代表的是同一个文件,并且引用计数为2。而symbol_link文件的inode不同于test.file,由于symbol_link是一个独立的文件,仅仅只是它是一个指向test.file的连接文件。并且能够观察到symbol_link的文件长度为9字节。事实上就是test.file这个文件的文件名称长度。
最后解说一下关于文件夹的连接数量。每当新建一个空文件夹时,该新文件夹的连接数量为2。
为什么呢?首先文件夹本身占领一个连接,然后该文件夹里另一个特殊文件夹“.”,它也是代表该文件夹。因此该文件夹的连接数量为2。 假设在该新的文件夹里创建一个子文件夹,该文件夹的连接数又将+1。由于新建的子文件夹里有一个特殊文件夹“..”。代表上级文件夹,它也指向该文件夹,因此该文件夹的连接数+1。
本章Linux命令总结:
df, du, ln。
鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)的更多相关文章
- 鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)
本文总结了Linux操作系统来管理我们的硬盘和文件系统需要使用命令.当我们在系统中增加一个硬盘驱动器.什么是我们需要去通过这个硬盘就可以真正使用步骤?下面步骤: (1)对磁盘进行分区,新建能够使用的分 ...
- 人体和电脑的关系——鸟哥的LINUX私房菜基础学习篇读书笔记
CUP=脑袋: 每个人会做的事情都不一样(指令集的差异),但主要都是通过脑袋来判断与控制身体各部分的行动 内存=脑袋中存放正在思考的数据区块: 在实际活动过程中,我们的脑袋需要有外界刺激的数据(例如光 ...
- 鸟哥Linux私房菜基础学习篇学习笔记3
鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...
- 鸟哥Linux私房菜基础学习篇学习笔记2
鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...
- 鸟哥Linux私房菜基础学习篇学习笔记1
鸟哥Linux私房菜基础学习篇学习笔记1 第三章 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用. 所谓的分区只是针对64Bytes的分 ...
- 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...
- 每周一书-《鸟哥的Linux私房菜基础学习篇(第四版)》台湾原版,你想要吗?
首先说明,本周活动有效时间为2016年10月19日到2016年10月31日. 目在介绍这本书之前,首先要感谢QQ号为:1084830483(路在远方),来自哈尔滨工程大学的同学赠送给玄魂工作室的 ...
- 【Linux】鸟哥的Linux私房菜基础学习篇整理(一)
最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename ...
- 《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
第2章 Linxu怎样学习 1. Linux当前的应用角色 当前的Linux常见的应用可略分为企业应用和个人应用双方面. 首先谈了企业环境的利用. 1)网络server. 2)关键任务 ...
随机推荐
- Git Pull Failed: cannot lock ref 'refs/remotes/origin/xxxxxxxx': unable to resolve ref
1.xxxxxxxx代表目录名称,我要pull的目录是supman_creditmall_v5: 2.从代码库中pull代码时报这个错误,代码pull失败: 3.解决办法,看下图,删除文件后再pull ...
- [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。
解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...
- F - A计划
题目链接: https://cn.vjudge.net/contest/254150#problem/F wa代码: #include<iostream> #include<stri ...
- Hibernate延迟加载策略
所谓懒加载(lazy)就是延时加载,就是当在真正需要数据的时候,才真正执行数据加载操作 至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减少并发量, ...
- Paint House
There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...
- css初始化minireset.css
一个很小的现代CSS重置,涵盖了基本内容: 重置字体大小:这样使用语义标记不会影响样式 重置块边距:所以只有在需要时才应用间距 重置表格:这样表格数据只占用它所需的空间 保留了行内间距:因此,按钮和输 ...
- Java工具库:
1. 重试框架: https://docs.spring.io/spring-batch/trunk/reference/html/retry.html <dependency> < ...
- python日常
1.远程访问远程访问Jupyter Notebook,本地浏览器不能打开,先查了防火墙的状态,然后将设置的端口进行allow,网址,仍然拒绝链接,而后通过远程访问Jupyter Notebook,然后 ...
- JS模块化编程(一):CommonJS,AMD/CMD
前言 模块化是什么? 为什么采用模块化? 场景: 一个html,因不同的业务需求开发,会不断的引入js文件.另外,a.js和b.js中的变量或函数必须是全局的,才能暴露给使用方. <script ...
- Excel学习笔记:vlookup基础及多条件查找
一.vlookup基础 关于vlookup的基础不多记录,相信基本的使用方法大家都懂得. 使用格式:=vlookup(搜索值,搜索范围,列号,是否精准匹配) =VLOOKUP(E2,$B$2:$C$6 ...