文件属性信息
1 概述
# 0.查看文件属性命令
相关命令:ls -l -i
统计inode数量:df -i
目录及文件的信息:stat [文件或目录]
# 1.详细文件属性解读
inode号 文件类型及权限 硬链接个数 属主 属组 文件的大小 文件的修改时间 文件名字
201326677 drwxr-xr-x. 6 root root 100 Sep 13 16:48 yum
67662624 -rw-r--r-- 1 root root 970 Sep 23 03:50 yum.conf
134451378 drwxr-xr-x. 4 root root 151 sep 23 04:16 yum.repos.d
属主:文件所有者
属组:文件所属组
文件大小:最小单位字节
2 详述
1.inode号
# inode号: 即index node索引节点
# stat [文件或目录]
文件的元信息(除了文件名),具体来说有以下内容:
Size : 文件的字节数
Blocks : 块数
IO Block: 块大小
Device : 设备号码
Inode : 文件数据block的位置
Links : 链接数,即有多少文件名指向这个inode
Access : 文件的读写执行权限
Uid : 文件拥有者的User ID
Gid : 文件的Group ID
Access : 指文件上一次打开的时间
Modify : 指文件内容上一次变动的时间
Change : 指inode上一次变动的时间
2.文件类型及权限
# 常见的文件类型
d: 文件夹(directory)
-: 普通文件(file) f或- 表示 # file [文件] 查看文件类型
纯文本文件 text /etc/hosts
二进制文件 binary /bin/ls
数据型文件 data /tmp/etc.tar.gz
l: 链接文件 eg: 软链接、符号链接、快捷方式
c: 字符设备文件,会不断产生字符信息 character eg:字体
b: 块设备文件 block eg:硬盘
s: socket文件,套接字接口文件,和网络有关的文件
p: 管道文件 pipe
管道:将前一个命令的结果交给后面一个命令来处理即管道技术
# 文件类型查看方法
配置文件:.conf
日志文件:.log
脚本文件:.sh
脚本文件:.py
# 注意:文件拓展名说明
windows是通过拓展名区分不同文件类型
Linux是通过拓展名提示不同文件类型,即使将压缩文件的后缀名改了,依旧压缩文件。
# 权限
r(read) : 4 # 可读
w(write) : 2 # 可写
x(execute): 1 # 可执行
N/A(-) : 0(没有权限)
3.硬链接和软链接
数据的存储
# 创建一个文件至少占用一个inode和一个block
# inode存放:文件的属性(包含名称等)
在同一个分区中,两个文件的inode号码相同,两个文件互为硬链接
# block存储:文件的数据
block默认大小为4k, 比较大的文件占用多个block, 比较小的文件,剩余空间无法使用
磁盘读取数据按block为单位读取的
读取一个block会消耗一次磁盘I/O(input/output 磁盘读写)
# 如何真正删除文件:
1.在linux操作系统中,硬链接个数为0时,才会删除源文件,表示数据真正删除了
文件的inode信息中有一项叫做“链接数”,记录指向该inode的文件名总数。
删除一个文件名,就会使得indoe中的链接数减一
当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其对应的block区域
2.文件信息没有被进程调用的时候,进程调用数为0
# 硬链接: 相当于文件的别名,id号一致
ln [源来的路径] [新的路径]
硬链接: 源文件与目标文件的inode号码相同,都指向同一个inode。
# 软链接: 相当于快捷方式,用于存放指向源文件的路径信息
ln -s [源来的路径] [新的路径]
软链接: 文件指向的是源文件的文件名,而不是inode号,所以源文件的“链接数”不会增加
特点:1. 防止误删数据 2.不能给目录创建硬链接
# 空目录文件的“链接数”为何为2 ?
创建目录时,默认会硬链接生成两个目录项"."和".."
"." 的inode号码就是当前目录的inode号码,".."的inode号码就是父目录的inode号码,
此时,当前目录的inode号的中“链接数” 分别是:创建的目录名和目录中的"."
# 所以,任何一个目录的“链接数”总数,总是等于 2+它的子目录总数(含隐藏目录)
4.用户与用户组
# 1.用户及用户组
用户:相当于系统管理员
用户组:相当于具有某种相同特征的一系列用户的集合
# 2.创建用户
useradd : 创建用户
groupadd : 创建用户组
id : 查看指定用户的id # 默认查看当前用户
格式:useradd [选项] [用户名称]
用户名命名规则:
1.可以包含字母和数字
2.必须字母开头
选项:
-u:指定uid
-g: 指定gid
-r: 指定创建系统用户
-s: 指定用户默认的解释器
uid代表的是用户的唯一标号
gid代表的用户组的唯一编号
# eg:创建用户
groupadd -g 666 shanhe
useradd -u 666 -g 666 test777
# 修改密码
passwd 用户名 # 为该用户设置密码
# 删除用户
userdel -r 用户名 # 彻底删除
# 3.系统用户和普通用户的区别:
系统用户一般用来运行系统级别的应用程序
id号在0-200之间的用户运行的是操作系统级别的应用程序
id号在201-999之间的用户运行的是用户级别的应用程序
通常情况下:id号在1000以下,那么该用户就是系统用户,在1000以上是普通用户。
普通用户一般用来登录操作系统
# 4.用户的相关信息文件
用户的特征信息: /etc/passwd # 包含用户登录使用的解释器
用户的密码信息: /etc/shadow
用户组特征信息: /etc/group
用户组密码信息: /etc/gshadow
5.文件时间及shell解释器
# 6.时间信息
文件修改时间 : mtime
属性修改时间 : ctime
文件访问时间 : atime
# 7.系统常用的shell解释器:
/bin/bash # 默认bash解释器
/bin/sh