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. 磁盘挂载
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,软链接指向源文件
硬链接文件说明
硬链接相当于文件数据查看的另一个大门,通过硬链接文件也可以修改数据内容。在一个分区中相同的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信息的连接
目录硬连接说明
目录无法创建链接文件
原因:目录可以被磁盘挂载,当挂载时会造成冲突 /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. 源文件删除时,软链接文件失效!!!!
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个权限位,每三位为一组,他们分别是属主权限位(占三个字符)、用户组权限(占三位字符)、其它用户权限位(占三个字符)
属主 # 创建文件的用户
属组 # 和创建文件用户一个用户组内的用户
其他用户 # 不在创建文件用户组的用户
三种用户对应的三种权限
属主用户 # 写权限 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内修改的文件