【运维知识基础篇】Linux文件属性

话不多说,直接开始!

ls -li #显示inode号码
[root@VMware-koten ~]#ls -li
total 8
34425540 -rw-r--r-- 1 root root  1 Mar  5 16:09 123
34425538 -rw-r--r-- 1 root root 31 Mar  5 16:09 test.txt
[root@VMware-koten ~]#

第一列:inode号
第二列:文件的类型 d是目录 l是链接文件 -是普通文件
第三列:9位文件权限 rwx 读 写 执行 -表示无此权限
第四列:硬链接的个数 
第五列:文件的属主
第六列:文件的属组
第七列:文件的大小 使用ls -h可以查看
第八列:文件时间
第九列:文件名称

第一列:inode号码
作用:类似身份证号码 
    类似藏宝图,标明具体宝藏的位置
    书本的目录
    存储了文件的指针指向,指向了文件内容具体的位置
先找到inode号,才能找到真正存储数据的位置,为了快速查到文件的内容
找到文件名称,相当于找到了indoe号
磁盘最小存储单位是512字节
磁盘扇区大小是512字节
block,是块存储,具体存储数据的

安装系统分区或格式化系统自动生成了定量的inode和block
inode存放具体内容的指针指向 查看 df -i
block具体存放数据的地方 查看 df -h
创建一个文件最少需要一个inode和一个block,
是否能往磁盘写东西一个是inode不能满一个是block不能满,其中一个满也不行
小文件多了,inode会满,block不会满
正常都是block满,inode不满

扩展下查找文件流程:
cat /etc/passwd
passwd文件名称是放在上级目录etc下的block中
etc目录文件名称又放在上级目录根目录的block中

目录有inode号,inode号存放指针指向,通过指针指向找存放在block里面的的目录下的文件名称
文件名称有inode号,inode号存放指针指向,通过指针指向找存放在block里面的的目录下的文件名称
文件名称里又有inode号,inode号存放指针指向,通过指针指向找存放在block里面的的目录下的文件名称 
循环往复,一直找,最终找到文件或者目录 

第二列:文件的类型 

作用:表示文件的唯一方式(windows)
     在Linux系统中是为了给我们看,改后缀没有任何影响,即使没有影响,也别瞎命名
1:-    普通文件
普通文件:.txt .log /etc/hosts /etc/resolv.
二进制命令文件:/usr/bin/ls /usr/bin/touch
数据文件:压缩文件、视频文件、音频文件、rpm包
2:d    目录
3:l    链接文件 软连接 类似windows的快捷方式
4:b    块设备    block /dev/sr0 /dev/sda
5:c    字节设备   /dev/urandom 类似白洞,可以一直往外吐字符串 可以head去看
        重点:    /dev/null  类似黑洞,可以将命令执行结果输入进去,作用就是接收没用的东西,执行结果不想看到
                 $? 为上一条命令的返回结果,0为成功,非0为失败
                 /dev/zero 可以生成数据,生成块设备

dd if=/dev/zero of=1g.txt bs=1m count=1000
生成1g的块设备文件,没法看,是乱码,做测试用
dd 命令,生成大文件用
if:input file 数据从哪个文件输入
of:output file 输出内容到文件
bs:block size 每次输入多大
count:总共输入多少次

6:p    管道设备  可以通过find / -type p 寻找

[root@VMware-koten ~]#find / -type p
/run/systemd/sessions/33.ref
/run/systemd/sessions/5.ref
/run/systemd/initctl/fifo
[root@VMware-koten ~]#find / -type p |xargs ls -l
prw------- 1 root root 0 Mar  3 08:36 /run/systemd/initctl/fifo
prw------- 1 root root 0 Mar  6 08:22 /run/systemd/sessions/33.ref
prw------- 1 root root 0 Mar  3 11:19 /run/systemd/sessions/5.ref
[root@VMware-koten ~]#

7:s    接口文件

第三列:文件权限 9位权限位
决定文件是否可读可写可执行
r read 文件可读 cat less vim more
w write 文件可写 vim echo 
x excute 可执行 脚本是否可执行(文件中放了命令,称为脚本)
        /etc/rc.local 系统的可执行文件

系统执行脚本是按照路径方式
如果可执行文件权限被拒绝,需要加权限
chomd +x /root/test.sh

三位为一组权限:
前三位:属主(主任 文件的所有者对权限的作用)自己
rwxrwxrwx
rw-r--r--

中三位:属组权限(和主人在同一小组的权限的作用)类似家庭,默认只有我们自己
r-- #只读 没有其他权限

后三位:其他用户权限(陌生人对于我笔记本的权限)
r-- #只读 没有其他权限

属组权限意义不大,因为跟陌生人权限一样

扩展:对于文件来讲最高的权限是rw-rw-rw-
使用数字来表示文件的权限:r=4 w=2 x=1
rw-r--r--    644  也需要会往会算
将文件权限每三位进行相加得到文件的权限

对于可执行文件来讲最高的权限是rwxrwxrwx 777

第四列:硬链接的个数
 
作用:保护系统文件的安全 类似于备份
特点:1、具有相同inode号,互为硬链接,具有相同地址的位置
2、创建硬链接ln源文件 硬链接名称(源文件必须已存在)
3、修改一个文件 其他文件也会变化
4、类似超市有多个门 东门 西门 不管从哪个门进,看到的东西是一样的
5、类似秦始皇的宝藏有多个藏宝图,多份,但指向同一个位置
6、类似书有多个相同的目录,指向的页数相同
名称不一样,但是inode号一样
7、目录不能创建硬链接,不支持,目录默认的硬链接数是2
因为目录中.和该目录的inode号一样,目录和.互为硬链接
如果目录里面还有目录,会有三个硬链接,因为多了个..
三个一个是目录本身,一个是进入目录的.,一个是进入目录下目录的..
在目录的下面创建不行,只能在一级目录下面

8.删除其中一个硬链接,不影响其他文件
9.硬链接不能跨文件系统(磁盘或磁盘分区)因为inode号相同

互为硬链接,没有源文件和目标文件,创建个数没有限制

如何寻找其他硬链接:
find  / -type f -inum inode号

硬链接用的少,不如备份,经常修改的文件可以用硬链接。

示例1:
[root@VMware-koten ~]#touch 1.txt
[root@VMware-koten ~]#ll
total 0
-rw-r--r-- 1 root root 0 Mar  7 08:47 1.txt
[root@VMware-koten ~]#ln 1.txt hard_link.txt
[root@VMware-koten ~]#ll
total 0
-rw-r--r-- 2 root root 0 Mar  7 08:47 1.txt
-rw-r--r-- 2 root root 0 Mar  7 08:47 hard_link.txt
[root@VMware-koten ~]#echo test > 1.txt 
[root@VMware-koten ~]#cat 1.txt 
test
[root@VMware-koten ~]#cat hard_link.txt 
test
[root@VMware-koten ~]#ll -i
total 8
33587013 -rw-r--r-- 2 root root 5 Mar  7 08:48 1.txt
33587013 -rw-r--r-- 2 root root 5 Mar  7 08:48 hard_link.txt
[root@VMware-koten ~]#

软链接
特点:1、inode号不同
2、类似Windows的快捷方式,存储着指向源文件的路径
3、目录和文件都可以做软连接
4、创建软连接 ln -s 源文件 链接文件 
链接文件权限是满的,但是具体权限得看源文件
5、删除软链接文件,不影响源文件。
删除源文件,链接文件失效,ll再查询,源文件会变成红底白字闪烁,再创键会重新链接上
6、软连接可以跨文件系统(磁盘或磁盘分区)
7、创建使用绝对路径,不然容易丢,即使是在当前。
一定要用绝对路径,不然会链接到连接文件同目录下的原文件
除非你是在同一目录下。
比如:ln -s /etc/hosts /opt/hosts 

企业最常用软连接:
作用:
1、解决磁盘不够用的问题
mkdir /data
mount /dev/sdb/data
mv /var/log/network.log  /data/network.log
ln -s /data/network.log /var/log/network.log

2、解决代码发布回滚的问题

第五列:文件的属主
文件的主人,文件的拥有者
不说了,没啥可说的

第六列:文件的属组
不说了,没啥可说的

第七列:文件的大小
使用ll -h可以查看
du -h 统计目录及目录下所有文件的大小
      指定查看所有文件的大小
ll -h和du -h
查文件的话,查到的大小一致
查目录的话,ll -h只是查目录本身的文件,du -h是查目录及目录下面的所有文件

[root@VMware-koten ~]#du -h /etc

第八列:文件时间

linux的三种时间
文件访问时间
文件修改时间
文件属性的变化时间或修改时间
.[root@VMware-koten ~]#stat 1.txt 
  File: ‘1.txt’
  Size: 5             Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 33587013    Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-03-07 10:22:57.669743196 +0800 文件访问时间 cat 内容变化看,不会发生变化,修改后才会发生变化
Modify: 2023-03-07 10:22:57.669743196 +0800 文件修改时间 vim echo 常用!
Change: 2023-03-07 10:22:57.669743196 +0800 文件属性的变化时间或修改时间 vim echo chomd +x 
 Birth: -
[root@VMware-koten ~]#

第九列:文件名称

文件名存在上级目录的clock中
文件名称和inode号层次一样

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是koten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值