Linux文件系统构成

用户数据:

磁盘中纯数据块中的数据 只有用户的数据部分

元数据:

存储了文件系统的结构信息 文件名 节点号 目录等

磁盘快组结构:分区被分成多个小块 每n个小块组成一个块组:

011

012

磁盘I node存储以下几方面信息

014

内存inode

017   018

LInux文件系统找到一个文件的方法

019

linux 支持多种文件系统 因为它是基于虚拟文件系统vfs的 就算内核不支持某种文件系统 只要vfs框架支持 然后vfs负责内核与文件系统之间的传输和协调控制工作

以下是vfs支持的文件系统类型

020

 

各种磁盘操作原理:

cp复制

系统从索引节点表 找到一个空闲节点 然后建立相关节点 文件名 和数据区域的映射关系 然后完全拷贝源数据到指定区域

所以复制操作将开辟新的存储空间 并新建节点号

mv移动

同分区移动: 将目录中的条目 也就是文件和节点号对应的条目 移到其他目录即可 节点号和源数据都不改变

跨分区的移动: 先将数据cp复制过去 然后再删除源数据以及目录条目 释放源数据分区的之前占用的节点号 在超级块中标记 源数据块为空闲数据块

rm删除:

指控目录中的文件名和节点号映射条目 然后将inode节点号放到超级快中的空闲区域 回收节点号 然后将数据区域标记为空闲可写

#ls –i 显示节点号

硬链接:

创建另一个指向相同文件的路径 用rm操作删除其中一个指向 另一个指向仍然有效 目录不可被硬链接否则会陷入死循环

#ln src linkdest 它们的节点号相同

软链接:

分配一个新文件(目录也是以文件的形式存放的 只不过是一种特殊的文件 它是一种表结构 记录了 其内的 文件 目录 的 文件名和节点号的对应关系)

里面存放被链接文件的路径 软连接文件的大小取决于被链接文件的路径的字符串长度

如果对源文件进行rm操作 则软链接失效

软链接可以跨分区 类似于windows的链接方式

 

检查空闲硬盘空间 后面可以跟路径 也可以不跟

#df –h

#df –i  /etc 显示节点号

#du –s  /etc 总结文件占用情况

 

挂载移动设备:

#fdisk –l 查看系统上的设备 可以看到设备代号 然后就可以mount了

#mount /dev/cdrom /mnt/cdrom 光盘

#mount /dev/sda1 /mnt/u U盘

卸载

#umount /dev/cdrom 也可以# umount /mnt/cdrom

卸载设备时  设备上的资源不能正在使用中 不能有任何进程与挂载点有关联 否则卸载不掉

u盘卸载之前 可以 sync 让数据全部写入u盘再拿掉

#eject 可以弹出光盘

 

 

压缩解压缩:

 

?gzip,gunzip

–Linux标准压缩工具

–对文本文件可以达到75%的压缩率

#gzip –5 filename 中的-5为压缩比 默认为6 从0-9取值 越大压缩比越高 速度越慢

#gzip –d 同gunzip

#gzip –t 测试压缩文件是否有损坏

?compress,uncompress

–旧的Unix压缩工具

?bzip2,bunzip2

–更新的Linux压缩工具

–比gzip有着更高的压缩率

压缩大文件有较大优势

?对于用gzip压缩的文件,有一系列以z为开头的文件,可以在不经解压的情况下,直接操作文件

–zcat:直接显示压缩文件的内容

–zless:直接逐行显示压缩文件的内容

–zdiff:直接报告压缩文件的差异内容

–zcmp:直接报告压缩文件的差异处

 

tar 归档 如果单用 则只归档不压缩 体积变大

?用于在软盘、ZIP设备上做备份。也可以备份在一个硬盘文件上。

?主要参数:

–c:将文件备份出来

–v:将过程输出

–x:从一个文件中解出备份

-t 查看归档中的文件列表

?范例

–备份:tar cvf backup.tar *.txt

–解开:tar xvf backup.tar –C backup/

 

tar

tar支持在备份同时压缩备份文件,或在解出备份同时解压缩。

#tar xjvf test.tar.bz ( j:使用bzip2 )

#tar xzvf test.tar.gz ( z:使用gzip )

#tar xZvf test.tar.Z ( Z:使用compress )

#tar jtf xxxx 查看