1.文件属性信息概述

  文件属性信息组成

  

 

   01.文件数据的inode(index node-索引节点)信息: 快速从磁盘中检索找到数据信息

  02.文件的数据类型: linux系统中一切皆文件

  03.文件的权限位rwx(execute-执行): 控制不同的用户拥有不同的权限

  04.文件数据的硬链接数: 可以有多个路径查看数据信息

  05.文件的所属用户(属主): 文件的创建者或拥有者

  06.文件的所属组(属组): 文件或数据的所属用户组

  07.文件的大小信息

  08.文件的时间信息

2.文件属性信息详述

  1.文件类型概念说明

    1.文件类型概念

      Windows通过扩展名来区分不同文件

      linux不通扩展名区分文件,只是用来提示不同的文件类型 

    2.文件类型详细说明

      1.linux系统中常见文件类型

        d   --- 目录文件(directory)

        -    --- 普通文件(file)

             1.纯文本文件   --- 文本文件(test /etc/hosts):可以直接编辑查看的普通文件

                       

              2.二进制文件   --- 命令文件(binary  /bin/ls):可执行文件,不可编辑

                       

 

 

              3.数据型文件   --- 数据文件(date  /tmp/etc.tar.gz):压缩文件    *.tar.gz *.tar.bz2   ........

         l   --- 链接文件(快捷方式     软链接   硬链接)

        b/c   --- 设备文件(块文件/字符文件)

             b   --- 块文件:存储的设备文件          ---- 光驱设备文件 磁盘文件

             

             c   --- 字符文件:表示为装置文件里面的串行端口设备,如鼠标键盘   ---- 查看该类型文件会持续输出内容

              需要关注的设备文件:

              磁盘设备文件     /dev/sda

              随机设备文件     /dev/urandom

              输出设备文件     /dev/zero          ---- 黑洞出口文件 磁盘分区

              输入设备文件     /dev/null            ---- 黑洞入口文件    定时任务

         s   --- socket文件(网络编程)

      2.linux系统中区分文件类型

        1.颜色区分 

          白色 : 普通文件

          蓝色 : 目录文件

          绿色 : 表示可执行文件

          红色 : 表示压缩文件

          浅蓝色 : 链接文件

          红色闪烁 : 表示链接的文件有问题

          黄色 : 表示设备文件

          灰色 : 表示其他文件

        2.利用属性信息区分

          ll命令查看属性

        3.利用特殊命令 file

                

    3.文件类型查看方法

      file 文件信息
            配置文件---.conf
         日志文件---.log
            脚本文件---.sh
         脚本文件---.py

    4.文件目录相关命令

      1.显示文件信息类型命令: file

      2.显示命令绝对路径信息: which

      

       3.显示命令绝对路径及命令相关的帮助手册文件路径

      

       4.快速定位文件路径消息

        locate  文件名称        ---- 可以显示文件所在路径信息

        updatedb           ---- 建立文件和对应目录结构关系,便于检索

        

         ps:默认centos7中没有安装locate

          yum  provides   locate

          yum  install  -y  mlocate

          updatedb

          

     5.快速查找数据信息命令 find

       find  命令语法

        find 找寻的路径范围 -type 类型信息 -name '文件名称'

       1.寻找指定名称文件信息: find / -type f -name 'ip'

        

       2.寻找部分文件名称信息: find / -type f -name '*.log'
        

        3.忽略大小写查找文件 find  /  -type  f  -name  'old*'

         

        4.寻找指定大小文件信息 find  ./  -type  f  -size  +1k

          c(字节单位)            k(k字节单位)              M(M字节单位)

          

        

        5.寻找指定目录层次信息 find  /  -maxdepth  1  -type  f  -name  'oldboy*.txt'

        

         6.寻找指定权限文件信息 find  ./  -type  d  -perm  750

        

     6.目录结构信息显示命令

       1.tree oldboy          --- 查看当前目录下所有数据及目录结构

       2.tree -L  1   oldboy        --- 只查看当前目录下一层目录结构及数据

       3.tree -d oldboy         ---只查看当前目录下所有目录信息

       

     7.数据信息压缩打包命令

      1.压缩命令用法

        01.压缩语法 tar zcvf ./oldboy.txt.tar.gz(压缩后的文件) ./oldboy.txt(压缩前的文件)

          z(gzip)    c(压缩)   v(显示压缩过程)    f(指定要压缩的文件)

          

          j(bzip2)     c(压缩)   v(显示压缩过程)    f(指定要压缩的文件)

          

          J(xz)         c(压缩)   v(显示压缩过程)    f(指定要压缩的文件)

           

        02.解压语法 tar zxvf ./oldboy.txt.tar.gz -C(解压到指定路径) /tmp

          对于解压文件来说压缩命令可以取消

          解压后的文件会覆盖原有文件

          z(gzip)    x(压缩)   v(显示解压过程)    f(指定文件)    -C(解压到指定路径)

          

          j(bzip2)     x(压缩)   v(显示解压过程)    f(指定文件)    -C(解压到指定路径)

          

          J(xz)         x(压缩)   v(显示解压过程)    f(指定文件)    -C(解压到指定路径)

        确认解压后文件与原文件是否一致:

          1.查看文件的大小和时间信息

          2.利用vimdiff和diff命令比较两个文件是否有区别

          

        03.检查查看 tar ztf ./oldboy.txt.tar.gz

          不解压情况下查看压缩包中信息 

          z(gzip)    t(查看)    f(指定文件)

          j(bzip2)     t(查看)    f(指定文件)

          J(xz)         t(查看)    f(指定文件)

          

      2.压缩扩展功能  ---- 压缩过程中排除指定数据不被压缩

        排除单个信息 tar zcvf /tmp/oldboy-pai.tar.gz ./oldboy/ --exclude=/oldboy/oldboy1

        排除多个信息 tar zcvf /tmp/oldboy-pai.tar.gz ./oldboy/ --exclude-form=被排除文件  

      3.压缩提示说明 

        1.默认解压到当前路径.会去掉/目录信息

        2.采用相对路径进行打包,避免覆盖原有文件信息 

  2.文件相关权限说明

   1.权限类型(文件数据的权限有什么)

    r(4)  read     --- 读权限

    w(2)  write    --- 写权限

    x(1)  execute   --- 执行权限

    -(0)         --- 没有任何权限

    2.拥有权限(权限赋予到指定人) 

    属主信息      --- 文件所有者

    属组信息      --- 文件所属组

    

  3.文件用户和用户组

    1.系统中用户信息有什么用

      01.利用用户登录系统

      02.利用用户管理数据

      03.利用用户管理进程

    2.系统如何识别不同用户

      利用用户的数值编号进行识别(uid)

      root用户的uid是0 

      

    3.用户组的概念

      用户和用户组的关系

        一个用户 --- 一个用户组  1v1

        多个用户 --- 一个用户组  nv1

        一个用户 --- 多个用户组  1vn

      系统识别用户组也是根据数据编号进行识别(gid)

        groups  用户可能属于哪些组

        

    4.用户进行分类

      01.超级管理员用户  root(uid=0)

        1.root身份登录系统

          1.知道服务器地址信息

          2.知道登录服务端口信息(远程登录端口22)

          3.知道登录用户信息(root)

          4.知道登录用户密码信息

        2.保护好root用户   --- 从上述用户登录系统必须条件中可看出2,3都是已知条件,所以需要从1,4两个条件中着手进行保护

          1.修改远程连接端口 --- 52113  修改ssh服务配置文件/etc/ssh/sshd_config

          

          2.禁止root用户远程登录     修改ssh服务配置文件/etc/ssh/sshd_config  

      02.虚拟用户  nobody(uid=99)

        1.无法登录系统,只能管理进程

        2.没有家目录

        

      03.普通用户  xxxx(uid=1000-~)

        只能管理执行数据,管理制定进程,可以登录系统,有家目录

    5.用户相关的文件

      用户的特征信息(掌握文件各列信息)      --- /etc/passwd

      

      用户的密码信息                --- /etc/shadow

      用户组特征信息                --- /etc/group

      用户组密码信息                --- /etc/gshadow

  4.文件时间信息说明

    1.文件时间信息分类

      文件访问时间:access time = atime

      文件修改时间:modify time = mtime

      属性修改时间:change time = ctime

    2.文件时间信息说明

      验证时间信息命令:  stat

      

      1.编辑文件内容:文件修改时间和属性修改时间变化,文件访问时间不变

      

      2.修改文件属性:只有属性修改时间变化,其余时间不变

      

       3.访问文件信息:只有文件访问时间变化,其余时间不变

      

    3.系统时间信息命令  date

      01.命令信息掌握  date

        

      02.显示时间方式方法

        方法一:默认显示系统时间 

          001.显示系统日期信息  date +%F

          002.显示系统时间信息  date +%T

          

 

          对于显示时间参数来说,若想将两个参数连接在一起,需要特殊符号如/  _  -    等,若使用空格进行连接时.需要将参数用引号括起来,否则系统会判定第二个参数是下一条命令,从而报错.如上所示

        方法二:指定格式显示时间  date "+%y/%m/%d  %H:%M:%S"

          

 

           时间显示实际应用(备份日志文件,在备份后的日志文件名中添加日期信息,以便查看时方便知道日志何时创建)

           

 

           对于后期需要常常对日志文件进行上述操作,但不局限于在文件名后面添加日期,还需要对日志文件进行开机自动进行备份,所有需要将上述命令添加到开机自动执行文件/etc/rc.local

        方法三:变化系统日期时间

          01.显示变化时间  date -d "2day"  date %F -d "-2day"

            未来时间:

              2day      两天后

              +2day                    两天后

            历史时间:

              -2day        两天前

            

 

             备份数据:

            

          02.修改系统时间

            手动修改:  date -s "2020/05/07 20:02"

            

 

             自动修改:  ntpdate ntp1.aliyun.com

             

 

             

  5.存储数据相关说明

    1.inode

      01.概述介绍

        001 索引节点  index node

        002 存放数据属性信息(文件大小 文件权限 文件硬链接数 文件类型 文件时间)

          文件名称没有存放在inode索引节点中,它存放在所在目录的block中

      02.诞生过程

        前期知识储备 : (磁盘处理过程 : 拥有磁盘 --- 磁盘阵列(raid) --- 磁盘分区 --- 磁盘格式化 --- 建制文件系统 --- 进行挂载)

        诞生原因概述 : 创建文件系统之后inode信息建立

      03.特点说明

        001.inode用于存放的是文件属性(文件属性不包括文件名)

        002.inode用于存放block块的指针位置(指向文件内容所在block)

        003.创建一个文件至少占用一个inode和一个block

        004.在同一个分区中,两个文件的inode号码相同,两个文件互为硬链接

      04.命令查看

        001.显示inode信息:  ll -ih

        002.统计系统中各分区inode数目:  df  -i

        

    2.block

      01.概述介绍

        001 block数据块

        002 存储文件的具体数据信息

      02.诞生过程 : 格式化建制文件系统后诞生的

      03.特点说明

        001.block用于存放的是数据信息

        002.block默认大小为4k,可以进行调整

          比较大的文件会占用多个block

          比较小的文件,剩余磁盘空间无法使用,会浪费磁盘空间

        003.创建一个文件至少占用一个inode和一个block(非空文件---空文件不会占用block,文件名时存在于存在目录的block中的)

        004.磁盘读取数据按block为单位读取的

        005.读取一个block会消耗一次磁盘I/O(input/output磁盘读写)

      04.命令查看

        001.显示block信息:  ll -h /etc/hosts

        002.统计系统中各分区block数目:  df/df   -h

        

    实践操作:block默认大小是4k可以调整,大点好?小点好?

      设置大点情况:  10k  (视频公司,图片公司)

        文件大的时候:  20k

          20k ------ 4k    5个block  I/O消耗假定 10s    

          20k ------ 10k     2个block  I/O消耗假定 4s  节省I/O消耗 

      设置小点情况:  2k  (互联网公司-脚本文件)

        文件小的时候:  1k

          1k ------ 4k  占用一个空间,剩余3k空间无法被其他文件使用

          1k ------ 2k  占用一个空间,剩余1k空间无法使用   提高磁盘空间利用率,减少浪费

  6.文件软硬链接说明

    01.硬链接说明(hard_link)

      001.概念说明: 

        相当于访问文件的入口

        文件属性中的硬链接数相当于文件的多个入口

        在一个分区中(跨分区或跨系统则无效),inode号码相同的文件,互为硬链接

      002.操作练习:  ln 源文件 源文件_hard(硬链接文件)

          

      003.特点说明:

        1.防止误删文件,不能防止误修改

        

 

         

 

         2.不能给目录创建硬链接

        

 

         3.对于目录硬链接数说明:

          

 

           对于每个目录来说目录下会存在两个目录一个是当前目录一个是上级目录.自目录中也是如此,当前目录和上级目录,所以由此推理.

          对于一个目录来说子目录数为  总硬链接数-1-1 = 当前目录下一级子目录数

          上述过程也可用命令来查看当前目录下有多少一级子目录

          

 

           上述例子中可以看出/etc有80 个硬链接.由公式可以得出/etc下有78个子目录,此时用命令再进行验证

            ll /etc | grep -c "^d"     列出/etc下文件详细信息通过管道将结果交由grep进行筛选,grep命令加-c表示统计,统计"^d"以d开头的行.d开头的行全为目录

            ll /etc | grep "^d"  | wc -l     命令格式与上述命令一致,只是最后统计结果交由wc命令来处理,-l意为统计行数   

    02.软链接说明(soft_link)

      001.概念说明:

        相当于快捷方式

        用于存放指向源文件的路径信息(软链接拥有自己的inode号,它的block中的内容是指向链接到的源文件的inode号)

      002.操作练习: ln -s 源文件 源文件_soft(软链接)

        

      003.特点说明:

        1.软链接创建最好使用绝对路径,否则容易失效

        2.源文件删除.会影响软链接

          

 

         

 

         创建一个与源文件名称相同的文件,软链接会自动链接到新文件中.但是原来源文件中的内容将不会存在,因为此时的源文件为一个新文件,与旧有的源文件无任何关系

    03.软硬链接的区别:

      01.链接后的文件大小不一致

      02.链接后的文件类型和权限不一致(颜色不一样)

      03.链接后的文件和源文件inode信息有出入

        硬链接与源文件的inode号一致

        软链接与源文件的inode号不一致

      04.源文件被删除后

        硬链接文件依然有效

        软链接文件失效

      05.软硬链接创建过程不一致

      

  7.文件访问原理

   

3.文件属性企业案例

  企业案例-磁盘空间满了