Linux中的文件属性

ls -lih

包括:索引节点(inode),文件类型,权限属性,硬链接数,所归属的用户和用户组,文件大小,最近修改时间,文件名等等 索引节点:相当于身份证号,系统唯一,系统读取文件时首先通过文件名找到inode,然后才能读取到文件内容 硬链接:文件的访问入口,相当于房子的多个门 用户和用户组:linux里面文件和程序的存在必须要有用户和用户组以满足相应的存在需求

1. 磁盘系统的inode和block(inode索引节点,block存储块存放文件内容;通过inode找到文件的block)

    硬盘要存储数据,首先要分区,然后格式化创建文件系统,最后存入数据

inode(index node)。在每个linux存储设备或存储设备的分区(存储设备可以是硬盘,软皮,u盘...)被格式化为ext4或其他格式的文件系统后,一般都有两部分:1,inode(很多个);2,block(很多个)

Block是用来存储实际数据用的,例如:照片,视频等普通文件数据

而Inode除了记录文件属性的信息外,inode属性信息包括但不限于文件类型,权限属性,硬链接数,所归属的用户和用户组,文件大小,最近修改时间,还包含指向文件实体的指针的功能(inode节点--block的对应关系),
操作系统根据指令,即可通过inode的值最快的找到相应的文件实体。;但是,inode里面唯独不包含文件名 Inode本身是有大小的,CentOS6系列 inode的默认大小是256字节;inode的大小是在分区被格式化创建文件系统之后定下来的,格式化以后就无法更改inode大小
磁盘空间是否满了,是由两项参数(inode、block)决定的
磁盘满的特征(no space left on device ) Inode记录文件属性信息和指向文件实体
① 磁盘被分区并格式化为ext4或其他格式文件系统后会生成一定数量的inode和block
② inode称为索引节点,用以存放文件的属性以及作为文件的索引,指向文件的实体
③ inode是磁盘上的一块存储空间,C6非启动分区inode默认大小256字节,C5是128字节
④ inode的表现形式是一串数字,不同的文件对应的inode在文件系统里是唯一的
⑤ inode节点号相同的文件互为硬链接文件,可以理解为是一个文件的不同访问入口
⑥ ext3/ext4文件系统下,一个文件创建后至少要占用1个inode和1个block
⑦ inode大小和总量的查看(ls -i,stat 文件名;df -i;dumpe2fs /dev/sda3 |grep -i "inode size")
⑧ 如何生成及指定inode大小,格式化命令:mkfs.ext4 -b 2048 -I 256 /dev/sdb;-b指定block大小,-I指定inode大小
⑨ 默认情况下,block数量大于inode数量 Block是用来存储实际数据用的,例如:照片,视频等普通文件数据
① 磁盘读取数据是按block为单位读取的
② 1个文件可能占用多个block,但是每读取1个block就会消耗一次磁盘I/O
③ 如果要提升磁盘I/O性能,那么就要尽可能1次性读取数据尽量的多,即block大些
例如:1000k的文件,block为4k,占用250次block,block为1k,占1000个block,访问效率谁更高?
④ 1个block只能存放1个文件的内容,无论内容有多小;如果block默认是4k大小,那么存放1个1k文件,剩余的3k就不能存放别的文件,只能浪费了
⑤ Block并非越大越好,block太大对于小文件存放就会浪费磁盘空间
block太大,例如4k,文件都是0.1k,会大量浪费磁盘空间
block太小,例如1k,文件都是1000k,消耗磁盘I/O
⑥ 大文件(大于16k)一般设置block大一点,小文件(小于1k)一般设置block小一点
⑦ block的设置也是在格式化分区的时候,mkfs.ext4 -b 2048 -I 256 /dev/sdb;-b指定block大小,-I指定inode大小
⑧ block的大小一般有1k,2k,4k几种。其中引导分区等为1k,其他普通分区为4k(C6)
⑨ 现实情况下,根据业务需求选择,确定默认的block大小,如果是大文件(大于16k)一般设置block大一点,小文件(小于1k)一般设置block小一点 总结:
① 磁盘被分区格式化文件系统后,会分为inode和block两部分
② inode存放文件的属性已经指向文件实体的指针,文件名不在inode里,一般在上级目录的block里
③ 访问文件,通过 文件名-->inode-->blocks
④ inode一般情况下默认大小为256B(字节),block大小1,2,4K,注意,引导分区等特殊分区除外
⑤ 通过df -i查看inode的数量及使用情况,dumpe2fs /dev/sda1查看inode大小等信息

2. Linux系统常见文件类型

f普通文件:
1.纯文本文件(ASCII),文件内容可以直接督导数据,如配置文件等
2.二进制文件(binary),linux中的命令程序文件,如cat命令(/bin/目录下)
3.数据格式文件(data),存放某些命令的结果的一种数据文件,有特定的格式
/var/log/wtmp(last命令的数据文件)
/vat/log/lastlog(lastlog命令的数据文件) d目录文件: c字符设备:
串口设备等,tty也算 b块设备:
存放数据,如磁盘、分区 s套接口文件:
一般用于网络通信 l符号(软)链接文件:
相当于快捷方式

3. 文件的权限

r read 读取 4

w write 写入 2

x execute 执行 1

- 没有权限 0

新建目录文件默认分配权限是755

新建普通文件默认分配权限是644

4. 链接文件

文件的硬链接和软链接(符号链接)
硬链接:ln 源文件 目标文件
① 具有相同inode节点号的多个文件互为硬链接文件
② 删除硬链接文件或者删除源文件任意其一,文件实体并未被删除
③ 只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除
④ 当所有硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收
⑤ 硬链接文件就是文件实体的另一个访问入口(相当于房子的前后门)
⑥ 可以通过给文件设置硬链接文件来防止重要文件被误删
⑦ "ln 源文件 目标文件",即可完成硬链接文件的创建,系统不允许用户为目录文件创建硬链接
⑧ 硬链接文件可以用rm 命令删除
⑨ 对于静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link),文件即可理解为已经被删除 软链接:ln -s 源文件 目标文件
① 软链接类似Windows的快捷方式(可以用readlink查看其指向)
② 软链接类似一个文本文件,里面存放的事源文件的路径,指向源文件名
③ 删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径内容了
④ 软链接失效的时候一般是白字红底闪烁提示
⑤ "ln -s 源文件 目标文件",即可完成软链接创建
⑥ 软链接和源文件是不同类型的文件,也是不同的文件,inode号也不同
⑦ 软链接文件的文件类型是l,可用rm 命令删除 有关文件的链接总结:
1. 删除软链接文件,对源文件和硬链接文件都没有影响
2. 删除硬链接文件,对源文件和软链接文件都没有影响
3. 删除源文件,链接文件失效,对硬链接文件没有影响
4. 同时删除源文件和硬链接文件,整个文件会被真正删除
5. 很多硬件设备中的快照,就是利用了硬链接的原理
6. 源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件的多个入口
7. 源文件和软链接文件索引节点号不同,是不同的文件,软链接文件指向源文件的文件名 有关目录的链接总结:
1. 对于目录,不能创建硬链接,只能创建软链接
2. 硬链接不能跨越文件系统(从硬链接原理可以理解)
3. 每个目录下面都有一个硬链接"."号,和对应上级目录的硬链接".."
4. 在父目录里创建一个子目录,父目录的链接数增加1(子目录里面都有..来指向父目录);但是在父目录里创建文件,父目录的链接数不会增加

5. 用户和用户组

linux/unix是一个多用户、多任务的操作系统
用户的角色是通过UID和GID识别的,用户的UID就相当于人的身份证,用户名相当于人的名字 UID(User Identify)
GID(Group Identity)
超级用户:
UID:0
默认是root用户,UID为0的用户为超级用户,
虚拟用户:
UID:1~499
与真实普通用户区分开来,这类用户最大的特点是安装系统后默认就会存在,且默认情况大多数不能登录系统
普通用户:
UID:500~65535
具备系统管理员root的权限的运维人员添加的,权限很小,一般用sudo管理提权
用户和用户组的关系:
一对一、一对多、多对一、多对多 配置文件:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow
/etc/passwd
账号、密码、UID、GID、用户说明、用户家目录、shell编辑器(cat /etc/shells)
/etc/shadow
账号、密码、最近更改密码时间、禁止修改密码天数、用户必须更改口令天数、警告更改密码期限、不活动时间、失效时间、标志

6. 文件时间

modify修改时间 -mtime    修改文件内容

access访问时间 -atime    访问文件内容

change改变时间 -ctime    文件属性改变

格式化规范显示时间:
ls -l --time-style=long-iso

Linux文件系统属性和权限概念详解(包含inode、block、文件权限、文件软硬链接等)的更多相关文章

  1. Linux的chattr与lsattr命令详解

    Linux的chattr与lsattr命令详解 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. ...

  2. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  3. Linux设置程序开机自启动,系统命令chkconfig及linux /etc/rc.d/目录的详解

     整理了linux下程序开启几种方式,转载相关博客做统一记录 <linux程序设置开机自启动>转载自:https://www.cnblogs.com/flcz/p/7691532.html ...

  4. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  5. (转)Linux 开机引导和启动过程详解

    Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LC ...

  6. Linux 文件系统相关的基本概念

    本文介绍 Linux 文件系统相关的基本概念. 硬盘的物理组成 盘片硬盘其实是由单个或多个圆形的盘片组成的,按照盘片能够容纳的数据量,分为单盘(一个硬盘里面只有一个盘片)或多盘(一个硬盘里面有多个盘片 ...

  7. LINUX的磁盘管理du命令详解

    LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...

  8. linux mount命令参数及用法详解

    linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...

  9. Oracle权限管理详解

    Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...

随机推荐

  1. 【二食堂】Alpha - 事后分析

    事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Alpha阶段要解决的问题是:根据用户标注的信息完成知识图谱的生成渲染.要解决的问题定义得比较 ...

  2. 【BZOJ 1419】Red is good [概率DP]

    我 是 Z Z 概率好玄啊(好吧是我太弱.jpg Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻 ...

  3. Nessus home版插件更新

    1,进入服务器停止服务 service nessusd stop 2,进入目录执行命令获取Challenge code cd /opt/nessus/sbin/ ./nessuscli fetch - ...

  4. dart系列之:dart语言中的变量

    目录 简介 dart中的变量 定义变量 变量的默认值 Late变量 常量 总结 简介 flutter是google在2015年dart开发者峰会上推出的一种开源的移动UI构建框架,使用flutter可 ...

  5. harbor安装高可用

    harbor架构 下载地址https://github.com/goharbor/harbor/ 高可用架构 解压压缩包 tar -xvf harbor-offline-installer-v1.10 ...

  6. 南大《软件分析》课程笔记——Data Flow Analysis

    南大<软件分析>--Data Flow Analysis @(静态分析) 目录 数据流分析概述 数据流分析应用 Reaching Definitions Analysis(may anal ...

  7. Java 代码执行流程

    Java 代码执行流程 类加载过程 加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载 类加载时机:代码使用到这个类时 验证阶段 &qu ...

  8. R数据分析:跟随top期刊手把手教你做一个临床预测模型

    临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...

  9. [atAGC004F]Namori

    考虑树的情况,将其以任意一点为根建树 对于每一个节点,考虑其要与父亲操作几次才能使子树内均为黑色,这可以用形如$(0/1,x)$的二元组来描述,其中0/1即表示其要求操作时父亲是白色/黑色且要操作$x ...

  10. 论文翻译:2020_WaveCRN: An efficient convolutional recurrent neural network for end-to-end speech enhancement

    论文地址:用于端到端语音增强的卷积递归神经网络 论文代码:https://github.com/aleXiehta/WaveCRN 引用格式:Hsieh T A, Wang H M, Lu X, et ...