Linux学习笔记9

1、Linux文件属性中各个列的含义(ls -lhi的结果)
139170 -rw-r–r--. 1 root root 22 Mar 11 15:17 oldboy.txt
从左往右:
139170:Inode号码,家庭住址
-:文件类型
rw-r–r--.:权限
1:硬链接数
root:属主-所有者
root:属组-所有者,属于的组
22:文件大小
Mar 11 15:17:文件的修改时间
oldboy.txt:文件或目录的名字(不属于属性)

2、磁盘空间不足故障的多重判断和解决方法
磁盘满了分两种情况:一种是Inode数量耗尽了,另一种则是Block满了
Block耗尽就是500GB硬盘存600GB文件,将直接耗尽所有的Block。但是Inode耗尽就是另外一种情况,因为每创建一个文件都会占用一个Inode,所以当文件无限多并且足够小的时候,Inode就会优先于Block耗尽,导致看起来磁盘空间充足,但是却会收到提示“磁盘空间不够”的情况

3、软链接和硬链接的特点及区别
一、硬链接
(1)具有相同Inode节点号的多个文件互为硬链接文件,本质上是相同文件的不同文件名
(2)删除硬链接文件或者删除源文件任意之一,文件实体并未被删除
(3)待所有的硬链接文件及源文件均被删除之后,再存放新的数据时,新数据会占用这个文件的空间。磁盘进行fsck检查的时候,删除的数据就会被系统回收
(4)硬链接文件就是文件的另一个入口(相当于超市的前门、后门)
(5)可以通过对文件设置硬链接文件,来防止重要文件被误删
(6)通过执行命令“In 源文件 硬链接文件”,即可完成硬链接的创建
(7)硬链接文件是普通文件,因此可以使用rm命令删除
(8)对于静态文件(没有进程正在调用的文件)来讲,当对应的硬链接数为0(i_link)时,文件就被删除。i_link的查看方法是执行ls -lhi,然后查看结果的第三列
(9)创建硬链接只能针对文件,不能针对目录
二、软链接
(1)软链接类似于Windows的快捷方式(可以通过readlink查看其指向)
(2)软链接类似于一个文本文件,里面存放的是源文件的路径,指向源文件实体
(3)删除源文件,软链接文件依然存在,但是无法访问指向源文件路径的内容了
(4)失效的时候一般是白字红底闪烁提示
(5)执行命令“In -s 源文件 软链接文件”,即可完成软链接的创建(目标不能存在)
(6)软链接和源文件是不同类型的文件,也是不同的文件,Inode号也不相同
(7)软链接文件的文件类型为字母(I),可以用rm命令删除
(8)软链接文件不仅可以针对文件,还可以针对目录

4、Linux系统文件删除的原理
(1)从exit文件系统的角度描述文件删除的原理
Linux系统上的文件名是存储在父目录的Block里面的,并指向了这个文件的Inode节点,这个文件的Inode节点再标记指向存放这个文件的Block的数据块。我们删除一个文件时,实际上并不会清除Inode节点和Block数据。只是在这个文件的父目录中的Block里,删除这个文件的名字,从而使这个文件名消失,并且无法指向这个文件Inode节点。当没有文件名指向这个Inode节点的时候,释放Inode节点和存放这个文件数据的Block块会同时进行,并且会更新Inode MAP和Block MAP,以便让这些位置用于放置其他文件数据。
(2)从文件引用的角度深入描述文件删除的原理
Linux系统是通过Link的数量来控制文件是否被删除的,只有当一个文件不存在任何Link的时候,这个文件才会被删除。一般来说,每个文件都有2个Link计数器,既i_count和i_nlink。
i_nlink的意义就是前面讲的文件硬链接的数量,i_nlink可以理解为磁盘的引用计数器;i_count的意义就是当前文件的使用者(例如,被进程调用)的数量,i_count可以理解为内存的引用计数器。当为文件创建硬链接的时候,对于i_nlink的数量就会增加,而当一个文件被某个进程调用时,对应i_count的数量就会增加。
通过rm删除命令删除文件,实际上就是减少文件的磁盘引用计数i_nlink的数量。这里就会出现一个问题,如果一个文件正在被某个进程调用,而用户却执行rm操作将文件删除了,那么会出现什么结果呢?
在用户执行rm操作删除文件之后,再执行ls或者其他文件管理命令,将会无法再找到这个文件,但是调用这个被删除文件的进程却在继续正常执行,依然能够从文件中正确地读取及写入内容。这又为什么呢?
这是因为rm操作只是将文件的i_nlink数量减少了,如果没其他的链接,i_nlink就为0了;但由于该文件依然在被进程引用,因此,此时文件对应的i_count数并不为0,所以即使执行了rm操作,但系统并没有真正删除这个文件,因此该文件还会占用磁盘空间,只有当i_nlink及i_count都为0的时候,这个文件才会真正的被删除。也就是说,还需要解除该进程对该文件的调用,被rm删除的文件才会真正被删除。
以上讲的i_nlink及i_count时文件删除的真实条件,但是当文件没有被调用时,执行rm操作删除文件后是否还可以找回被删除的文件呢?
前面说了,rm操作知识将文件的i_nlink减少了,或者说置0了,实际就是将文件名到Inode的链接删除了,此时,并没有删除文件的实体即Block数据块,如果及时停止机器工作,数据还是可以找回的,但如果此时继续写入数据,那么新的数据可能就会被分配到被删除数据的Block块了,此时,文件就是真正地回收了,那时就是神仙也没有办法了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值