linux文件属性基础篇

文件属性

文件大小、创建时间、文件类型、权限、拥有者等。

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

原文地址:https://www.cnblogs.com/1016391912pm/p/12854651.html