美文网首页
Linux 系统中文件属性详解

Linux 系统中文件属性详解

作者: 小屁孩云熙 | 来源:发表于2021-10-11 19:03 被阅读0次

    1. 文件属性信息概述

    【注意】:文件名称信息 不属于 文件属性信息

    image-20210816103236167.png
    文件的属性信息(1-8)
    1. 文件数据的 inode 信息,index node -- 索引节点
        作用:快速从磁盘中找到数据信息
    2. 文件的数据类型:文件 目录 链接文件 设备文件 ……
        作用:指明文件的数据类型
    3. 权限位信息: r(read)读  w(write)写  x(execute)执行
        作用:控制让不同用户对文件可以有不同的权限
    4. 文件目录的硬链接数:类似于超市的多个门
        作用:可以多个路径查看数据信息
    5. 文件所属用户信息(属主):
        作用:文件的创建者或者拥有者
    6. 文件所属组信息(属组):
        作用:文件或数据的所属用户组
    7. 文件的大小信息
    8. 文件的时间信息(修改时间)
    
    9. 文件名称
    

    2. 文件类型

    Windows 系统中使用扩展名 来区分 文件类型

    Linux 系统不用 扩展名 来区分文件类型

    2.1 Linux 系统区分文件类型方法

    2.1.1 按照颜色区分

    2.1.2 利用属性信息区分

    d       --目录
    -       --文件
    c       --字符文件
    b       --块文件
    l       --链接文件
    s       --socket文件
    

    2.1.3 利用特殊命令区分

    file 文件名
    

    2.2 Linux 系统中的常见文件类型

    d       -- 目录文件类型
    -       -- 普通文件
            1. 纯文本文件(text)  /etc/hosts  -- 文本文件,可以直接编辑查看
            2. 二进制文件(binary) /bin/ls    -- 命令文件,不可以编辑查看
            3. 数据型文件(data) /tmp/tar.gz  -- 压缩文件
    l       -- 链接文件(快捷方式)
    c/b     -- 字符文件/块文件(设备文件)
            块文件:存储的设备文件 光驱设备文件 磁盘
            字符文件:根本停不下来的输出字符信息
            
            磁盘设备文件 /dev/sda
            随机设备文件 /dev/urandom(产生随机字符信息)
            输出设备文件 /dev/zero(黑洞的出口文件)
            输入设备文件 /dev/null(黑洞的入口文件)
    
    s       -- socket文件(网络编程)
    

    3. 文件权限

    3.1 文件数据权限

    r   read        4       -- 读权限          
    w   write       2       -- 写权限          
    x   execute     1       -- 执行权限         
    -               0       -- 没有权限
    
    rwx   -->   7
    rw-   -->   6
    r--   -->   4
    
    rw-r--r--   --> 644
    

    3.2 权限位指定人

    属主          -- 文件所有者        权限
    属组          -- 文件所属组        权限
    其他          -- 其他用户          权限
    

    4. 用户信息(属主/属组)

    4.1 系统中用户信息作用

    1. 利用用户登录系统
    2. 利用用户管理数据
    3. 利用用户管理进程

    4.2 系统如何识别用户身份

    利用用户的 uid来识别用户身份

    4.3 用户组的概念

    运维      -- sa(system administrator)
    开发      -- dev(development)
    数据库     --dba(database administrator)
    
    • 用户和用户组的关系
    一个用户属于一个用户组     一对一
    多个用户属于一个用户组     多对一 
    一个用户属于多个用户组     一对多
    
    • 系统识别用户组 通过 gid 来识别
    [root@yunxuanedu ~]# id
    uid=0(root) gid=0(root) groups=0(root)
    
    uid=0(root)     -- 显示用户名和uid对应关系
    gid=0(root)     -- 显示属于的用户组,组名和gid对应关系
    groups=0(root)  -- 用户可能还属于哪些组
    

    4.4 系统用户分类

    • 超级管理员用户
    root
    通过 uid 区分,uid=0
    
    • 虚拟用户
    uid 1-999   (CentOS7)
    uid 1-499   (CentOS6)
    无家目录/无法登录系统
    
    • 普通用户
    uid 1000以上 (CentOS7)
    uid 500以上 (CentOS6)
    可以管理指定数据/指定进程/可登录系统/有家目录
    
    • 扩展 - 安全防护
    1. 修改远程端口号(ssh)
    2. 禁止root用户远程登录
    

    5. 索引节点 inode

    5.1 索引节点 - inode

    5.1.1 概述

    相当于书籍的目录,用于存储文件属性的信息和文件或数据在磁盘中保存的位置

    5.1.2 产生

    创建文件系统之后,就产生了 inode 信息

    5.1.3 特点说明

    1. inode 用于存放文件属性

    2. inode 用于存放块的指针位置

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

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

    5.2 block

    5.2.1 概述

    目录指向的内容,存储文件的具体内容

    5.2.2 产生

    创建文件系统之后,就产生了 block

    5.2.3 特点说明

    1. block 用于存放数据信息
    2. block 默认大小为 4k,可以进行调整
    3. 比较大的文件,会占用多个 block
    4. 比较小的文件,一个 block 空间未用完,剩余空间无法使用,浪费磁盘空间
    5. 创建一个文件至少占用一个 inode 和 一个 block
    6. 磁盘读取数据时,按照 block 为单位读取的
    7. 读取一个 block 会消耗一次磁盘 I/O (input/output 磁盘读写)

    5.2.4 扩展--block 默认大小可以调整,怎么设置较为合适(系统优化的一部分)

    5.2.4.1 文件比较大的情况下

    将block设置大点,节省I/O消耗 (如视频、图片类型文件)

    5.2.4.2 文件普遍比较小的情况下

    将block设置小点,节省磁盘空间,提高磁盘利用率 (互联网公司)

    5.3 查看 inode 和 block 信息

    5.3.1 inode 查看方法

    [root@localhost ~]# df -i
    Filesystem              Inodes  IUsed    IFree IUse% Mounted on
    /dev/mapper/rhel-root 18348032 238359 18109673    2% /
    
    

    5.3.2 block 查看方法

    [root@localhost ~]# df
    Filesystem            1K-blocks     Used Available Use% Mounted on
    /dev/mapper/rhel-root  36678148 20314648  16363500  56% /
    

    5.4 扩展-磁盘操作处理过程

    磁盘 地皮

    raid 将多块地皮连接起来

    分区 将地皮进行规划

    格式化 地皮进行整理

    创建文件系统 建房风格(复古或现代) inode 和 block

    挂载 安装门

    5.5 读取数据原理

    1. 找到指定数据
    2. 读取数据内容,先获取文件数据的 inode 信息
    3. 根据 inode 信息在磁盘中找到对应的 block
    4. 根据 block 信息获取文件真实内容
    image-20211011184620658.png

    5.6 扩展

    1. 文件的属性信息存储在 inode 中
    2. 文件的名称信息存储在上一级目录的block中

    6. 时间信息

    6.1 文件数据时间类型

    访问时间    Access time -- atime
    修改时间    Modify time -- mtime    
    改变时间    Change time -- ctime    数据属性信息发生改变
    

    6.2 如何查看文件详细属性信息

    stat 文件名
    [root@yunxuanedu data]# stat index.conf 
      File: ‘index.conf’
      Size: 4           Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 1572874     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-08-14 12:21:34.931911740 +0800
    Modify: 2021-08-14 12:17:58.855963278 +0800
    Change: 2021-08-14 12:17:58.855963278 +0800
     Birth: -
    

    6.3 时间属性改变案例

    # 查看当前时间属性信息
    [root@yunxuanedu data]# stat index.conf 
      File: ‘index.conf’
      Size: 4           Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 1572874     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-08-14 13:58:18.350433799 +0800
    Modify: 2021-08-14 13:58:18.350433799 +0800
    Change: 2021-08-14 13:58:18.350433799 +0800
     Birth: -
     
    # 修改文件属性,ctime 将会变动
    [root@yunxuanedu data]# chmod 600 index.conf 
    [root@yunxuanedu data]# stat index.conf 
      File: ‘index.conf’
      Size: 4           Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 1572874     Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-08-14 13:58:18.350433799 +0800
    Modify: 2021-08-14 13:58:18.350433799 +0800
    Change: 2021-08-16 10:38:35.779929115 +0800
     Birth: -
     
    # 修改文件内容,mtime 和 ctime 都会变动(修改文件内容时,文件属性信息也发生改变)
    [root@yunxuanedu data]# echo "qwer" >> index.conf 
    [root@yunxuanedu data]# stat index.conf 
      File: ‘index.conf’
      Size: 9           Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 1572874     Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-08-14 13:58:18.350433799 +0800
    Modify: 2021-08-16 10:39:04.322112606 +0800
    Change: 2021-08-16 10:39:04.322112606 +0800
     Birth: -
     
    # 查看文件内容,atime 发生变动(访问时间)
    [root@yunxuanedu data]# cat index.conf 
    123
    qwer
    [root@yunxuanedu data]# stat index.conf 
      File: ‘index.conf’
      Size: 9           Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 1572874     Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-08-16 10:39:24.691957234 +0800
    Modify: 2021-08-16 10:39:04.322112606 +0800
    Change: 2021-08-16 10:39:04.322112606 +0800
     Birth: -
    

    7. 硬链接数

    7.1 硬链接

    相当于超市的多个门,互为硬链接的文件的 inode 号相同,指针指向的 block 相同

    同一个分区中,inode 相同的文件 互为 硬链接

    7.1.1 创建硬链接文件

    ln 原文件 硬链接的文件信息
    

    7.1.2 硬链接文件特征

    1. 一个硬链接文件相当于访问该文件内容的一个入口
    2. 硬链接数相当于访问该文件内容的入口数量
    3. 同一个分区中,inode号相同的文件互为硬链接文件
    4. 不能给目录创建硬链接
    5. 硬链接可以防止误删除,但是不能防止误修改。因此修改文件之前,做好备份。

    7.2 软连接

    相当于文件的快捷方式

    7.2.1 创建软链接文件

    ln -s 原文件 软链接的文件信息
    

    7.2.2 软链接文件特征

    1. 软链接文件相当于 Windows 系统中文件的快捷方式
    2. 软链接文件用于存放指向源文件的路径信息
    3. 软链接创建最好采用绝对路径,否则容易失效
    4. 链接的源文件删除,容易影响软连接。建立相同名的文件后,软链接恢复,但是当前新建文件并不是被删除的文件,两者的inode号不相同。

    7.3 软硬链接的区别

    1. 链接后的文件大小不一致
    2. 链接后的文件权限和类别不一致
    3. 连接后的文件和原文件inode信息有出入(硬链接与原文件inode一致,软链接与原文件inode不同)
    4. 原文件被删除,硬链接文件依然有效,软链接文件失效(可创建同名文件进行恢复)
    5. 软硬链接文件创建过程不一致
    6. 系统中的目录不能创建硬链接
    image-20211011190310520.png

    7.4 扩展-关于目录硬链接数的说明

    目录不能创建硬链接

    root@yunxuanedu data]# ll -id /data
    1572865 drwxr-xr-x 3 root root 4096 Aug 16 23:29 /data
    [root@yunxuanedu data]# ll -ai
    total 12
    1572865 drwxr-xr-x   3 root root 4096 Aug 16 23:29 .
          2 dr-xr-xr-x. 20 root root 4096 Aug 14 12:16 ..
    1572866 drwxr-xr-x   2 root root 4096 Aug 16 23:29 admin
    [root@yunxuanedu data]# cd admin/
    [root@yunxuanedu admin]# ll -ai
    total 8
    1572866 drwxr-xr-x 2 root root 4096 Aug 16 23:29 .
    1572865 drwxr-xr-x 3 root root 4096 Aug 16 23:29 ..
    
    
    image-20210816233200546.png

    目录的硬链接数 = 子目录的数量 + 当前目录(.) + 目录自己(/data)

    相关文章

      网友评论

          本文标题:Linux 系统中文件属性详解

          本文链接:https://www.haomeiwen.com/subject/arfroltx.html