• Linux文件系统及管理


    Linux文件系统及管理

    一、Linux系统的文件系统与目录结构

      Linux系统的文件目录结构为一个单根倒置的树结构,具体表现如下图:

    从CentOS7开始,以下目录与之前的版本发生变化

    ◆/bin 软链接指向 /usr/bin

    ◆/sbin 软链接指向 /usr/sbin

    ◆/lib 软链接指向 /usr/lib

    ◆/lib64 软链接指向 /usr/lib64

    文件系统从根目录下开始,用“/”表示

    ◆boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录

    ◆/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

    ◆/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

    ◆/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

    ◆/lib64:专用于x86_64系统上的辅助共享库文件存放位置

    ◆/etc:配置文件目录

    ◆/home/USERNAME:普通用户家目录

    ◆/root:管理员的家目录

    ◆/media:便携式移动设备挂载点

    ◆/mnt:临时文件系统挂载点

    ◆/dev:设备文件及特殊文件存储位置
    b: block device,随机访问
    c: character device,线性访问

    ◆/opt:第三方应用程序的安装位置

    ◆/srv:系统上运行的服务用到的数据

    ◆/tmp:临时文件存储位置

    ◆/usr: universal shared, read-only data
    bin: 保证系统拥有完整功能而提供的应用程序
    sbin:
    lib:32位使用
    lib64:只存在64位系统
    include: C程序的头文件(header files)
    share:结构化独立的数据,例如doc, man等
    local:第三方应用程序的安装位置
    bin, sbin, lib, lib64, etc, share

    ◆/proc: 用于输出内核与进程信息相关的虚拟文件系统

    ◆/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

    ◆/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

    二、Linux下的文件类型

    ◆- 普通文件

    ◆d 目录文件

    ◆b 块设备

    ◆c 字符设备

    ◆l 符号链接文件

    ◆p 管道文件pipe

    ◆s 套接字文件socket

    三、文件的3种时间atime mtime ctime

    Linux系统中,文件存在3种时间状态属性

    1、这3个time的含义:

    atime:Access Time 最后一次访问文件(读取或执行)或目录的时间;

    mtime:Modofy Time 最后一次修改文件内容(数据)或目录内容(目录内文件列表)的时间;

    ctime:Change Time 最后一次改变文件属性(元数据)或目录属性(元数据)的时间;

    2、如何查看文件或目录的atime/mtime/ctime

    可通过stat命令查看全部3个时间

    [root@centos7 data]#stat test.txt 
      File: ‘test.txt’
      Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
    Device: 803h/2051d	Inode: 67          Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:etc_runtime_t:s0
    Access: 2019-07-28 15:25:54.755150776 +0800
    Modify: 2019-07-28 15:25:54.755150776 +0800
    Change: 2019-07-28 15:25:54.755150776 +0800
     Birth: -
    [root@centos7 data]#
    

    或可以通过以下命令分别查看:

    查看atime: ls -lu filename

    [root@centos7 data]#ls -lu test.txt 
    -rw-r--r--. 1 root root 0 Jul 28 15:25 test.txt
    [root@centos7 data]#
    

    查看mcime: ls -l filename

    [root@centos7 data]#ls -l test.txt 
    -rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
    [root@centos7 data]#
    

    查看ctime: ls -lc filename

    [root@centos7 data]#ls -lc test.txt 
    -rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
    [root@centos7 data]#
    

    四、Linux文件系统的inode

    1、inode是什么?

      理解inode,要从文件储存说起。

      文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

      操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个block。

      文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为索引节点

      每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。系统是根据inode号来识别文件。

    2、inode包含的信息

      inode包含文件的属性信息(元数据),具体来说有以下内容:

        * 文件的字节数
    
      * 文件拥有者的User ID
    
      * 文件的Group ID
    
      * 文件的读、写、执行权限
    
      * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
    
      * 链接数,即有多少文件名指向这个inode
    
      * 文件数据block的位置
    

    3、inode的特性

    • inode也会消耗磁盘空间,所以在硬盘格式化的时候,操作系统会自动将硬盘分为2个区域,一部分用来存放inode信息,一部分存放文件数据。

    • 每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。

    • 磁盘的每一个独立分区的inode号是相互独立的。

    查看每个硬盘分区的inode总数和已经使用的数量,可以使用df -i命令。

    [root@centos7 ~]#df -i
    Filesystem       Inodes  IUsed    IFree IUse% Mounted on
    /dev/sda2      26214400 131432 26082968    1% /
    devtmpfs         228956    391   228565    1% /dev
    tmpfs            232906      1   232905    1% /dev/shm
    tmpfs            232906    872   232034    1% /run
    tmpfs            232906     16   232890    1% /sys/fs/cgroup
    /dev/sda3      26214400      4 26214396    1% /data
    /dev/sda1        524288    342   523946    1% /boot
    tmpfs            232906      9   232897    1% /run/user/42
    tmpfs            232906      1   232905    1% /run/user/0
    [root@centos7 ~]#
    

    五、硬链接、软链接文件特性及区别

    • 硬链接:同一文件系统上(同一磁盘分区)相同inode编号的不同文件名的文件,对应同一文件系统上相同的block磁盘位置。

    • 软链接:一个符号链接文件指向另外一个文件或者目录,与被指向的文件inode号不相同。

    硬链接和软连接的区别:
    (1)本质:硬链接:同一个文件多个名字,软连接不同的文件。

    (2)硬链接不可以跨分区,软链接可以。

    (3)硬链接不支持对目录创建,软链接支持。

    (4)相互关系:硬链接相互是独立的关系,软链接相互是依赖的关系。

    (5)inode号,硬链接相同,软连接不同。

    (6)链接数。硬链接会增长或减少,软链接不变。

    (7)路径问题:原始文件的路径。硬链接的相对路径是当前工作目录,软连接是相对路径是根据后面软链接的路径决定。

  • 相关阅读:
    Python学习笔记六:集合
    Python学习笔记五:字符串常用操作,字典,三级菜单实例
    Python学习笔记四:列表,购物车程序实例
    Python学习笔记三:数据类型
    python学习笔记二:if语句及循环语句,断点,模块,pyc
    Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序
    JS教程:从0开始
    基于Token认证的多点登录和WebApi保护
    数据库高级对象(存储过程,事务,锁,游标,触发器)
    Sql基础(零基础学数据库_SqlServer版)
  • 原文地址:https://www.cnblogs.com/eddie1127/p/11260402.html
Copyright © 2020-2023  润新知