什么是文件系统 ?
本人理解文件系统是按照一种内核能够读懂的方式存储的一种规则形式,建立文件系统是为了方便内核对文件的
管理
文件操作系统建立在每次格式化(高级格式化)之后,说到格式化,我们的对象当然是存储介质,而对于我们的linux而言,就是磁盘。磁盘在出厂之前都要进行一次低级格式化(为了划分磁道),说到文件系统,有必要了解一下磁盘的基本
知识
磁盘主要是有盘片,磁头,机械臂,组成,盘片是双面可读写的,磁头用来读取磁盘,寻址用的,而机械臂可以操
作磁头工作
每个盘片有不同的磁道(track)组成,不同盘片上的相同磁道组成了柱面(sector),不同盘片
上相同的扇型面组成扇区(cylinder)
分区的最小单位就是柱面
linux常见的文件系统:
ext2,ext3,新出的ext4
reiserfs(有较强的反删除能力)
IBM的jfs
xfs
windows fat32 ntfs
光盘 ISO9660
nfs(网络文件系统)
gfs(集群文件系统)
ocfs(Oracle的文件系统)
zfs (sun的文件系统)
标准的linux文件系统,将每个文件的纷为两部分来存储,一是文件的属性,二是文件的内容,所以linux文件系统划
分出了inode与块分别存储文件属性(放在inode中)和文件数据(放在块中),下面以图示的方式演示读取 一个
文件的过程
这样我们可以清楚地看出读取一个文件的过程
下面说一下cp(复制),mv(剪切),rm(删除)与inode节点的关系
cp:
新建立一个inode节点
移动数据
mv:
同分区节点号不变,数据不移动,只改变目录的映射关系
不同的分区:创建一个新的inode节点,分配一个新的磁盘空间,移动数据
rm:
删除inode映射关系,对数据不采取措施,当再次应用此节点时,新数据就会覆盖掉原有数据
ln 创建链接文件
ln默认创建硬链接(hard link)
ln /etc/fstab /link-fstab
创建一个硬链接,俩个文件指向同一个节点,所以删除任意一个文件对另外的文件没有影响,因为源数据没有被
改变,而且inode与源数据的映射关系没有改变 ,但硬链接不能跨分区,因为不同的分区各自都拥有独立的inode
表,当你在另一个分区创建硬链接,指向的不是原来的inode,而是另一个分区的inode,所以为无效的链接
ln - s 创建软连接,也叫符号链接(symbolic link)
创建一个软连接,就等于创建一个新文件,因为软连接本身就是一个文件,还有大小,所以软连接有自己的
inode节点号,软连接指向的是被连接文件的绝对路径,如
ln �Cs /etc/passwd ./passwd
实质上./paswd指向的就是 /etc/passwd,这个文件的绝对路径,数一数这个路径的大小事9个字节,所
以./passwd的大小就为9个字节
df (disk free) 顾名思义,可以看出这个命令是用来查看磁盘分区的使用情况的,可以查看全部,也可以指定查看
某个分区的使用情况,只需要加上- n参数指定即可
-l 查看所有分区的使用情况
-n 可以指定查看某个分区的使用情况
-h 以人易读的方式显示,而不是一默认的K显示
eg:df -n /opt
df �Cl 查看所有分区的使用情况
du (disk usage)估计文件或目录的使用情况
eg: du �Cs /etc
下面说一下关于挂载的一些问题
挂载使用mount命令
一般linux默认推荐的挂载点 /mnt/media /mnt
当然你也可以自己定义自己的挂载点
mount /dev/cdrom /mnt/cdrom (这个目录首先得存在 )
挂在上后你就可以去访问/mnt/cdrom了
当访问结束后,你需要去卸载这个设备,卸载我们使用
umount命令
umount /mnt/cdrom 或者 unmount /dev/cdrom (注意:当你准备卸载设备时,请退出设备文件目录,否
则无法卸载,会提示设备busy,这样的行为无异于自杀)
也可以用eject,前提跟那个是一样的,也得退出设备目录
压缩
压缩 解压 压缩文件格式 描述
compress uncompresse .z Unix的压缩方式
gzip gunzip .gz 只能压缩目录
bzip2 bunzip2 .bz2 只能压缩目录
zip unzip .zip 可以压缩多个文件或目录
gzip �Cd =gunzip
gzip -n(1-9)表示压缩比(默认为6)数值越大压缩比越大
-t 检查压缩文件是否完整
-l 显示压缩详细信息
zcat 不解压查看源文件(压缩的必须是文本文件)
attention:不管何种压缩方式,当文件被压缩时,源文件就会被删除
tar(打包命令)
-c (creat) 表示创建一个打包过后的文件存放位置
-v 显示压缩过程
-x 展开文件
-v 显示压缩过程
tar -cvf /tmp/mytar 1.txt 2.txt
拆包 tar �Cxvf /tmp/mytar
tar默认只打包,不压缩,而且打包过后不会删除源文件
若想要tar即打包有压缩,那就需要调用gzip或bzip2
tar -zcf (z代表gzip,gzip会根据后面的一个参数决定是压缩还是解压,当为c即打包时,gzip就会压缩)
tar -zxf (x为拆包,所以gzip解压)
tar -jxf(j代表bzip2,同样bzip2会根据后面的参数决定是解压还是压缩,当为x即拆包时,bzip2会jieya)
tar -jcf (c为打包,所以gzip2压缩)