文件系统

    1.所谓文件系统,就是文件数据在计算机硬件上以何种形式存放,组织及管理的
      文件数据:1.元数据(metadate):属性信息
            2.数据
           Attention:这两种数据是分开存放的
        元数据:inode
          1.本身是个数据结构,占有独立的磁盘块
          2.主要用来存放属性信息,包括:权限,属主,属组,大小,类型,存储这个文件或目录的真正的磁盘块编号
         Attention:ls -i 查看inode号,以及使用情况
        数据:
          1.文件数据都是放在磁盘块上的
          2.在linux下,目录也是以文件的形式存放的,其中存放的是,文件名和inode的对应关系
         例如:查找/var/log/messages
            /(根,是一个特殊的inode节点,特殊之处在于可以自我引用)————通过内部的磁盘编号,找到根目录的磁盘块号————>
            根目录文件中找到,var目录和其inode的对应条目----以此找到var的inode节点--->在var的inode中找到,var目录的磁盘块号
            ----->找到磁盘块,在其内部找到log目录和其inode的对应条目——————以此找到log目录的inode————>在log的inode中找到,log目录的磁盘块号
            ----->找到磁盘块,在其内部找到messages文件和其inode的对应条目——————>以此找到messages的inode————>在messgaes的inode中找打,messages的磁盘块号
            ——————>找到磁盘块,读取其中数据
        inode和磁盘块的位图 bitmap 1.0表示空闲
                      2.1表示已用
                 Attention:1.为了方便管理,将磁盘分成多个inode表和磁盘块表配套的独立管理的空间
                           2.mv 移动文件 只是将对应的磁盘块号和inode的对应条目放到对应的目录磁盘块中去了
    2.链接
    硬链接:不同路径的文件指向同一个inode
        1.不能跨分区存在
        2.不能对目录创建硬链接,避免循环调用
      删除硬链接:减少文件对应的inode被引用的次数,而不动文件本身
     软链接:是独立的文件,有独立的inode号
         文件权限为777,但不表示源文件的权限也是777,所以更应关注源文件的权限
                1.可以跨分区存在
                2.可以对目录创建        
        Attention
           1.软链接文件的大小是链接的源文件的路径字符数
             例如:在/tmp下创建一个软链接文件,链接的是当前目录下的inittab到/tmp/s,软链接文件的大小就是inittab的字符数7b
                在/tmp下创建一个软连接文件,链接的是/root目录下的inittab到/tmp/d,软链接文件的大小就是/root/inittab的字符数13b              
                    2.删除软链接的源文件,链接损坏,创建一个与源文件同名的文件,链接可用,因此,链接只识别路径
                    3.删除软链接,源文件不动        
      创建链接:#ln [options] srcFILE destDIR
               默认创建硬链接
               -s 创建软链接文件
         特殊文件:c 字符设备文件
               b 块设备文件
               标识文件大小的位置:因为此文件不占磁盘空间,而显示的设备号
      3.文件系统类型
            ext2,ext3,ext4
            xfs,reiserfs,iso9660,swap
            GFS2,OCFS2,NFS,SMBFS
            VFAT,NTFS
      4.VFS:Virtual FileSystem
          解决:在不同文件系统下可以执行同一命令,而不用程序员关心
      5.文件管理命令
          ls /etc -ldh 查看/etc的权限等(-l)信息,其中文件大小以可读形式(单位换算,-h) 查看目录本身信息(-d)
          du [options] dir 显示目录下各个目录大小,和文件大小
                 file 显示文件大小
            -s      显示总和
            -h      单位换算,可读模式
            -sh
          df 显示每个分区(也就是每个文件系统)的使用情况
            其中有个tmpfs 是伪文件系统
            -h 可读模式,单位换算
            -i 显示inode使用情况
            -ih
            Attention
            ls -i 也可以查看inode的使用情况
          fdisk -l 列出当前系统上每一个磁盘及其使用情况
文件系统检测
     检测文件系统是否存在不一致性(inode条目在,而文件却不完整,通常是由系统故障产生的)
   fsck (filesystem check,文件系统检测)
     fsck [options] 设备文件 /dev/sdb1
        -t fstype 默认检测/boot 和/
   e2fsck [options] 设备文件 专门检测ext2和ext3文件系统
       -f  强行检测,即使文件系统不一致
       -a  自动修复文件系统不一致
       -B  指定块大小
   dumpe2fs [options] 设备文件  详细显示ext2,ext3文件系统信息
        -f    强行显示,即使文件系统不一致,如果不一致,默认是不显示的
        -h    只显示超级块信息
       Attention:显示Filesystem features has journal  表示有文件系统有日志功能
   tune2fs [options] 设备文件 建立好文件系统之后,修改属性信息
       -j    ext2升级为ext3 (安全方式,不会改动文件)
       -m    预留给超级用户的磁盘空间百分比
       -r    直接指定多少磁盘块给超级用户
       -L    设置卷标
       -V    显示超级块信息(不显示块组)=dumpe2fs -h
       -c    调整多少次挂载之后自动检测文件系统
            0,-1代表关闭此功能
       -i num{d|m|w(eek)}  
            调整多少时间之后自动检测文件系统
       -u  user 指定哪个超级用户
       -o(小) 设定和调整挂载选项
       -o   acl  打开挂载的访问控制列表功能
            ext系列有acl功能,挂载时默认不支持,
            需要通过此命令开启
     Attention:磁盘在文件系统创建好之后不能被修改,所以在创建之时一定要慎重!!!