zoukankan      html  css  js  c++  java
  • linux文件属性

    1.linux文件属性概述

    如何查看文件详细信息?

    # 使用 ll -i 查看文件详细信息,以前使用 ll / ls -l 还缺少一位信息 
    [root@oldgirl /test ]# ll -i
    total 0
     34332866 drwxr-xr-x 3 root root 20 Apr 30 15:01 oldboy1
    101717365 drwxr-xr-x 3 root root 20 Apr 30 15:01 oldboy2
        30050 -rw-r--r-- 1 root root  0 Apr 30 15:01 test1.txt
        30051 -rw-r--r-- 1 root root  0 Apr 30 15:01 test2.txt
    

    各列信息文字描述

    第一列       显示文件的inode信息
    
    第二列       显示文件类型
    
    第三列		  显示文件的权限位信息(12位)
    
    第四列  	  显示文件的硬连接数
    
    第五列   	  显示文件属组用户
    
    第六列   	  显示文件所属组的信息
    
    第七列    	  显示文件数据大小
    
    第八列       显示文件的修改时间,修改时间,修改时间
    
    第九列       文件名
    

    2.属性详细-inode

    比如现在有一个文件需要存储在我的电脑上,是直接可以存储在磁盘上的吗?并不是,一块新的磁盘要想存储数据要经过几个步骤才能让我们正常使用,在磁盘可以使用过程中产生了俩个关键的信息:inode和block信息,简单来说inode像是书的目录存放着我们要看内容的页码,而block指向就第几页的内容信息,通过block就能查看书的内容。

    磁盘如何存储数据文件的?

    1. 准备好需要的磁盘
    2. 通过raid把多个磁盘整合
    3. 对磁盘进行了格式化处理
    4. 创建文件系统,产生了inode和block
    5. 磁盘挂载
    

    数据存储.png

    inode信息说明

    inode就是文件的索引节点,存储着磁盘上文件的属性信息,是在文件系统创建完成产生的

    inode特点说明

    1. inode存储的文件的属性信息
    2. inode存储文件对应的block指针信息
    3. 文件创建可以有多个inode和block信息,相同的inode视为硬连接
    

    查看inode信息

    df -i
    
    # 显示说明
    Inodes  # 分区的inode总数量
    IUsed   # 分区当前使用情况
    IFree   # 分区剩余的inode
    

    注意:文件属性信息存储在inode中 , 文件的名称信息存储在上一级目录的block中

    block信息说明

    block相当于书的页码,指向的数据内容信息

    block特点说明

    1. block存储的数据信息
    2. 磁盘读取每一个block会消耗磁盘i/o资源
    3. 创建文件至少占用一个block
    # 原因
    block的默认大小为4k(可以调整)
    比较大的文件会占用多个block  # 浪费i/o资源
    比较小的文件占不满一个block  # 浪费磁盘空间 
    

    查看磁盘block

    [root@oldgirl /old ]# df
    Filesystem                   1K-blocks    Used Available Use% Mounted on
    /dev/mapper/centos_xuan-root  18307072 1810760  16496312  10% /
    devtmpfs                        490212       0    490212   0% /dev
    

    3.属性详细-链接数

    linux的链接方式俩种:硬连接和软链接,硬连接指向数据的inode,软链接指向源文件

    硬软链接文件.png

    硬链接文件说明

    硬链接相当于文件数据查看的另一个大门,通过硬链接文件也可以修改数据内容。在一个分区中相同的inode互为硬链接

    软链接文件说明

    软链接就是源文件的快捷方式,软链接指向是它的链接文件,而不是数据本身。当数据源文件删除后,软链接无法访问数据

    ln命令创建链接文件

    ln 	  源文件  链接文件路径  	#创建硬链接
    ln -s 源文件  链接文件路径   #创建软链接
    
    # 命令演示
    [root@oldgirl /old ]# echo 'oldboy' > test.txt
    [root@oldgirl /old ]# ln test.txt test_hear.ln
    [root@oldgirl /old ]# ln -s test.txt test_sorf.ln
    [root@oldgirl /old ]# ll -i 
    total 8
    30057 -rw-r--r-- 2 root root 7 May  1 15:51 test_hear.ln
    30069 lrwxrwxrwx 1 root root 8 May  1 15:52 test_sorf.ln -> test.txt
    30057 -rw-r--r-- 2 root root 7 May  1 15:51 test.txt
    

    查找系统文件的硬连接

    find 目录 -inum inode号
    
    [root@oldgirl /old ]# ll -i
    total 8
    30057 -rw-r--r-- 2 root root 7 May  1 15:51 test_hear.ln
    30069 lrwxrwxrwx 1 root root 8 May  1 15:52 test_sorf.ln -> test.txt
    30057 -rw-r--r-- 2 root root 7 May  1 15:51 test.txt
    
    [root@oldgirl /old ]# find / -inum 30057
    /old/test_hear.ln
    /old/test.txt
    

    文件硬连接数说明

    当创建一个文件的硬连接数为1,硬连接后文件的硬连接数+1,表示数据的inode信息被俩个文件链接,可以被俩个文件访问数据内容。

    创建软链接不会增加链接数,更加说明软链接不是指向数据的inode。软链接可以创建自己的硬连接文件

    删除文件说明

    我们知道数据存储在磁盘上,当删除文件 rm ,并不是真正删除数据,而断开文件和数据的inode信息的连接

    rm文件删除原理.png

    目录硬连接说明

    目录无法创建链接文件
    原因:目录可以被磁盘挂载,当挂载时会造成冲突 /cd = /cd.ln /cd -> /dev/sda /cd.ln -> /dev/sdb

    目录的硬连接数怎么产生?

    [root@oldgirl /old ]# mkdir oldboy
    [root@oldgirl /old ]# mkdir oldboy/oldgirl{1..3}
    [root@oldgirl /old ]# ll -id oldboy
    34332870 drwxr-xr-x 5 root root 51 May  1 16:40 oldboy
    
    # 原因:
    # 1.在oldboy目录下的隐藏文件 .
    [root@oldgirl /old ]# ll -ia oldboy
    total 0
     34332870 drwxr-xr-x 5 root root  51 May  1 16:40 .  # 和oldboy目录的inode一致 +1
        30056 drwxr-xr-x 3 root root 101 May  1 16:39 ..
     69316579 drwxr-xr-x 2 root root   6 May  1 16:40 oldgirl1
    101717368 drwxr-xr-x 2 root root   6 May  1 16:40 oldgirl2
        30070 drwxr-xr-x 2 root root   6 May  1 16:40 oldgirl3
    
    # 2.在oldboy子目录下的隐藏文件 ..
    [root@oldgirl /old ]# ll -ia oldboy/oldgirl1
    total 0
    69316579 drwxr-xr-x 2 root root  6 May  1 16:40 .
    34332870 drwxr-xr-x 5 root root 51 May  1 16:40 ..   # 和oldboy目录的inode一致 +1
    

    硬软链接文件总结

    1. 链接后软链接文件的类型和权限不一致,硬链接文件和源文件一致
    2. 链接后软链接文件的inode信息不一致,硬链接文件和源文件一致
    3. 链接后软链接文件的链接数大小不一致,硬链接文件和源文件一致
    
    4. 源文件删除时,软链接文件失效!!!!
    

    删除软链接.png

    4.属性详细-数据类型

    linux系统中一切都看作是文件,有哪些文件类型,如何查看文件类型?

    符号:-         # 表示普通文件——纯文本文件、二进制文件、数据文件
    符号:d		# 表示一个目录
    符号:l	    # 表示一个文件的链接文件,Windows的快捷方式  链接文件分为:软链接和硬链接
    符号:c/b      # 表示系统的设备文件
    符号:s		# 表示网络文件
    

    普通文件说明

    纯文本文件:可以直接编辑的文件
    二进制文件: 不可以编辑的文件,可以执行运行的文件
    数据文件: 压缩文件
    

    设备文件说明

    c:字符块文件,不停输出字符的文件
    b:块文件,存储设备文件
    # 磁盘文件 /dev/sda
    # 输出设备 /dev/zero
    # 输入设备 /dev/wall
    # 随机设备 /dev/urandom
    

    查看文件类型命令 file

    [root@oldgirl /test ]# file test1.txt 
    test1.txt: ASCII text  # 文本文件
    
    [root@oldgirl /test ]# file oldboy1
    oldboy1: directory     # 目录
    
    [root@oldgirl /test ]# file oldboy.ln
    oldboy.ln: symbolic link to `oldboy1'   # oldboy.ln 是oldboy1的连接文件
    

    5.属性详细-权限

    每个文件或目录都有一组共9个权限位,每三位为一组,他们分别是属主权限位(占三个字符)、用户组权限(占三位字符)、其它用户权限位(占三个字符)

    权限位.png

    属主		# 创建文件的用户
    属组      # 和创建文件用户一个用户组内的用户
    其他用户   # 不在创建文件用户组的用户
    

    三种用户对应的三种权限

    属主用户	# 写权限 w  读权限 r  执行权限 x
    属组用户	# 写权限 w  读权限 r  执行权限 x
    其他用户	# 写权限 w  读权限 r  执行权限 x
    

    写权限、读权限、执行权限 对于文件作用:

    w		# 可以让用户对文件编辑
    r		# 可以让用户读取文件内容
    x		# 可以让用户执行文件
    

    写权限、读权限、执行权限 对于目录作用:

    w		# 可以让用户对目录下创建文件
    r		# 可以让用户查看目录的文件
    x		# 可以让用户进入目录
    

    6.属性详细-用户和用户组

    系统用户的作用

    1. 利用用户登录系统
    2. 利用用户管理系统资源
    3. 利用用户管理系统的进程
    

    系统通过用户的UID查看对应的用户和用户组信息

    [zxzx@oldgirl /test ]$ id root
    uid=0(root) gid=0(root) groups=0(root)
    [zxzx@oldgirl /test ]$ id zxzx
    uid=1001(zxzx) gid=1001(zxzx) groups=1001(zxzx)
    
    # 信息说明
    第一列:显示用户的UID号
    第二列:显示用户所属用户组的gid
    第三列:显示用户所属其他用户组的信息
    

    linux对用户的分三类:管理员用户root 、系统用户、普通用户

    # 1.管理员用户 root
    UID = 0
    # 权限:系统拥有最高权限
    
    # 2.系统用户
    UID = 1-999
    # 权限:只能管理一些系统的进程,不能登录系统,没有用户的家目录
    
    # 3.普通用户
    UID = 1000+
    # 权限:可以管理指定的系统资源,可以登录
    

    如何防止恶意登录系统?

    1. 修改默认远程服务端口号 22   
    2. 禁止直接使用root用户登录
    

    7.属性详细-时间

    利用命令ll查看文件的改变时间,可以使用stat查看文件相关时间

    [zxzx@oldgirl /test ]$ stat test.txt 
      File: ‘test.txt’
      Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d	Inode: 30049       Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2020-04-30 15:01:43.300773841 +0800
    Modify: 2020-04-30 15:01:43.300773841 +0800
    Change: 2020-04-30 15:01:43.300773841 +0800
     Birth: -
     
    # 文件时间说明
    Access		# 访问文件的时间:查看文件内容时间改变 atime
    Modify		# 文件修改时间 mtime
    Change		# 文件属性改变时间 ctime
    

    时间相关命令

    查看系统当前时间 date

    # 查看时间
    [root@oldgirl /old ]# date 
    Fri May  1 16:58:18 CST 2020
    
    # 修改时间显示格式
    date +%F		# 显示年月日 2020-05-01
    date +%Y-%m-%d  # %F
    
    date +%T		# 显示时分秒
    date +%H:%M:%s  # %T
    
    date  +%F_%T	# 不同参数需要连接一起
    date "+%F %T"   # 使用双引号表示一起
    
    # 修改当前时间
    date -s "2014-2-1 9:30"
    date -s 20140102  # 只修改年月日
    
    # 查看历史时间
    date +%F -d "-2day"
    date +%F -d "2day ago"
    # 作用:备份前一天的数据日志
    
    # 查看未来时间
    date +%F -d "2day"
    date +%F -d "+2day"
    

    同步时间命令 ntpdate

    # 需要下载
    yum install ntpdate
    
    # 使用阿里同步
    ntpdate ntp1.aliyun.com
    

    find按照时间查看文件

    find 目录 -mtime +10   # + 表示查找10天修改的文件
    find 目录 -mtime -10   # - 表示查找10内修改的文件
    
  • 相关阅读:
    Android 使用html做UI的方法js与java的相互调用
    WebRequest之HttpWebRequest实现服务器上文件的下载(一)
    使用Json比用string返回数据更友好,也更面向对象一些
    DES加密与解密在GET请求时解密失败的问题解决(终级)
    中大型系统架构组合之EF4.1+ASP.NET MVC+JQuery
    说说标准服务器架构(WWW+Image/CSS/JS+File+DB)
    inline内联函数和宏的区别
    [C语言]mac下Des CBC加密
    x264和FFMPEG 编译后遇到的一些问题:UINT64_C,
    关于多线程的那些事
  • 原文地址:https://www.cnblogs.com/xuanxuan360/p/12814369.html
Copyright © 2011-2022 走看看