文件属性
文件大小、创建时间、文件类型、权限、拥有者等。
ls -l 长格式 -i 索引节点inode -h human人类可读 -a 全部文件 -d只显示目录 -F文件名结尾加符号以区分类型
1:索引节点,相当于人的身份证,文件唯一的标识符,系统读取文件时先通过文件名找到inode,再读取文件内容。
索引节点是硬盘上的一块存储空间,大小:256字节或512字节。
其存放的数据是文件的属性(大小、时间、用户和组、权限等),但不包括文件名。(文件名在上级目录的block中)
磁盘要想使用,需要先分区,格式化(创建文件系统),就会产生大量的inode和block
inode:存储文件属性信息,同时存放指向文件实体(block)的指针。
block:磁盘块,存放实际数据的实体单元。
命令 cat /etc/test.txt 的详细流程:
inode节点号相同的文件,互为硬链接文件,例:
查看系统inode命令:df -i 查看系统block命令:df -h
磁盘满了的两个原因:①inode满了②block满了
2:文件类型及权限,10个字符加一个.,第一个字符是文件类型,随后9个字符是权限,最后一个.是和selinux有关的标识。
3:硬链接个数(详看ln命令),理解为可以从不同文件入口进入文件
什么是硬链接?具有相同inode节点号的文件互为硬链接。
创建方法:ln 源文件名 硬链接名
如果此时把源文件删除,通过硬链接依然可以打开文件。原理:
硬链接名--->源文件inode--->源文件block
可以理解为删除的只是一个文件入口,当只有把所有硬链接都删除掉,才算删除了这个文件。
无法手动创建目录的硬链接。
4:文件所有者(属主,用户)
linux是一个多用户多任务的系统,同一服务器允许同时多个用户登录,每个用户允许同时执行多个任务。
用户一般分为用户名和用户ID,用户名用来结合密码登录系统,计算机通过用户ID来区别用户。
linux中所有的文件和进程必须有对应的用户,这个用户就是属主。
用户分类:①.超级管理员 root UID=0(数值越小,权限越大)
②.虚拟用户UID=1-499,不允许登录,意义:满足文件或进程属主的要求,但又不会有管理风险。
③.普通用户UID>1000,权限仅限于家目录,一些系统目录可读不可写,/root不可读
命令:whoami 查看当前用户 useradd xxx 使用root创建普通用户
5:文件属于的组(属组,用户组)
linux中每个用户都要至少属于一个组,用户组也有唯一标识GID,默认创建用户时会自动创建一个和用户同名同ID的用户组。
用户和用户组的对应关系:①1对1②1对多③多对1④多对多
创建用户组的命令:groupadd 组名
注:可以通过命令:su - 用户名 切换登录用户
6:文件大小
7:文件最后修改月份
可以使用参数 --time-style=long-iso,使时间格式统一,可结合别名使用
8:文件最后修改日
9:文件最后修改时间
使用命令 stat 文件名 可以查看文件状态信息,其中包括:
修改时间modify:文件内容被改过的时间
访问时间access:文件内容被访问的时间
变化时间change:文件属性发生改变的时间。
可以使用命令 touch -d "2017-01-01 00:00:00" 文件名 修改modify和access的时间
10:文件名
设置文件属性
chattr +i 文件名 锁定文件,不能使用、改动(可以查看)
chattr -i 文件名 解锁
chattr +a 文件名 能追加内容,不能使用、改动
chattr -a 文件名 解锁
lsattr 文件名 查看文件属性
文件类型
1. - 普通文件regular file, 纯文本文件、数据文件(存放命令收集的信息)、二进制文件(可执行的命令)
2. d 目录directory
3. l 链接文件link,类似Windows的快捷方式,指向文件实体
创建软连接文件:
软链接有自己的inode,它指向的是源文件的文件名,所以删除源文件后不可访问。(软链接与源文件的inode号不同)
软链接使用技巧:
我们有一个程序需要引用/application/nginx-1.0,但过一段时间后其升级为/application/nginx-2.0了
在引用时,我们使用软链接,/application/nginx-soft-link ===> /application/nginx-1.0,当引用升级后,将软链接指向2.0就可以了。
4. c 字符设备文件character,如串口设备、早期上网拨号用的猫
5. b 块设备文件block,如硬盘、光驱
6. s 套接字文件socket,进程之间通信会用到
7. p 管道文件pipe
注:在linux中不通过扩展名区分文件,像.txt .conf都属于普通文件,扩展名主要方便用户区分,即使扩展名错误,文件也能正常使用。
文件权限
权限:rwxr-xr-x
r 可读read w 可写write x 可执行execute -没有权限
共9个字符,3个字符是一组:
rwx 当前用户的权限 r-x 当前用户组的权限 r-x 其他用户的权限
管道简介
管道符号:|
将 | 左边得到的数据塞进管道,进行 | 右边的命令操作。
注:一般管道效率会降低,能不用就不用。
一个特别的小例子:
find . -type f -exec rm -f {} ;
相当于:
rm -f 1
rm -f 2
...
rm -f n
速度比下面的慢。
find . -type f | xargs rm -f
相当于:
rm -f 1 2 ... n