linux文件属性
1.linux文件属性概述
如何查看文件详细信息?
# 使用 ll -i 查看文件详细信息,以前使用 ll / ls -l 还缺少一位信息 [ /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. 磁盘挂载
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
[ /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,软链接指向源文件
硬链接文件说明
硬链接相当于文件数据查看的另一个大门,通过硬链接文件也可以修改数据内容。在一个分区中相同的inode互为硬链接
软链接文件说明
软链接就是源文件的快捷方式,软链接指向是它的链接文件,而不是数据本身。当数据源文件删除后,软链接无法访问数据
ln命令创建链接文件
ln 源文件 链接文件路径 #创建硬链接 ln -s 源文件 链接文件路径 #创建软链接 # 命令演示 [ /old ]# echo ‘oldboy‘ > test.txt [ /old ]# ln test.txt test_hear.ln [ /old ]# ln -s test.txt test_sorf.ln [ /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号 [ /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 [ /old ]# find / -inum 30057 /old/test_hear.ln /old/test.txt
文件硬连接数说明
当创建一个文件的硬连接数为1,硬连接后文件的硬连接数+1,表示数据的inode信息被俩个文件链接,可以被俩个文件访问数据内容。
创建软链接不会增加链接数,更加说明软链接不是指向数据的inode。软链接可以创建自己的硬连接文件
删除文件说明
我们知道数据存储在磁盘上,当删除文件 rm ,并不是真正删除数据,而断开文件和数据的inode信息的连接
目录硬连接说明
目录无法创建链接文件
原因:目录可以被磁盘挂载,当挂载时会造成冲突 /cd = /cd.ln /cd -> /dev/sda /cd.ln -> /dev/sdb
目录的硬连接数怎么产生?
[dgirl /old ]# mkdir oldboy [ /old ]# mkdir oldboy/oldgirl{1..3} [ /old ]# ll -id oldboy 34332870 drwxr-xr-x 5 root root 51 May 1 16:40 oldboy # 原因: # 1.在oldboy目录下的隐藏文件 . [ /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子目录下的隐藏文件 .. [ /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. 源文件删除时,软链接文件失效!!!!
4.属性详细-数据类型
linux系统中一切都看作是文件,有哪些文件类型,如何查看文件类型?
符号:- # 表示普通文件——纯文本文件、二进制文件、数据文件 符号:d # 表示一个目录 符号:l # 表示一个文件的链接文件,Windows的快捷方式 链接文件分为:软链接和硬链接 符号:c/b # 表示系统的设备文件 符号:s # 表示网络文件
普通文件说明
纯文本文件:可以直接编辑的文件 二进制文件: 不可以编辑的文件,可以执行运行的文件 数据文件: 压缩文件
设备文件说明
c:字符块文件,不停输出字符的文件 b:块文件,存储设备文件 # 磁盘文件 /dev/sda # 输出设备 /dev/zero # 输入设备 /dev/wall # 随机设备 /dev/urandom
查看文件类型命令 file
[ /test ]# file test1.txt test1.txt: ASCII text # 文本文件 [ /test ]# file oldboy1 oldboy1: directory # 目录 [ /test ]# file oldboy.ln oldboy.ln: symbolic link to `oldboy1‘ # oldboy.ln 是oldboy1的连接文件
5.属性详细-权限
每个文件或目录都有一组共9个权限位,每三位为一组,他们分别是属主权限位(占三个字符)、用户组权限(占三位字符)、其它用户权限位(占三个字符)
属主 # 创建文件的用户 属组 # 和创建文件用户一个用户组内的用户 其他用户 # 不在创建文件用户组的用户
三种用户对应的三种权限
属主用户 # 写权限 w 读权限 r 执行权限 x 属组用户 # 写权限 w 读权限 r 执行权限 x 其他用户 # 写权限 w 读权限 r 执行权限 x
写权限、读权限、执行权限 对于文件作用:
w # 可以让用户对文件编辑 r # 可以让用户读取文件内容 x # 可以让用户执行文件
写权限、读权限、执行权限 对于目录作用:
w # 可以让用户对目录下创建文件 r # 可以让用户查看目录的文件 x # 可以让用户进入目录
6.属性详细-用户和用户组
系统用户的作用
1. 利用用户登录系统 2. 利用用户管理系统资源 3. 利用用户管理系统的进程
系统通过用户的UID查看对应的用户和用户组信息
[ /test ]$ id root uid=0(root) gid=0(root) groups=0(root) [ /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查看文件相关时间
[ /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
# 查看时间 [ /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内修改的文件