Linux文件介绍

Linux 文件属性

可以通过命令ll+文件名,查看文件的具体属性

例如:ll syz.gz

1736706 -rw-r--r--. 1 root root 28 Oct 27 12:01 syz.gz
     ①            ②      ③  ④   ⑤   ⑥  ⑦  ⑧     ⑨       ⑩
第一列①:iNode索引节点编号#(类似人的身份证,全国唯一);
系统读取文件时首先通过文件名找到inode,然后才能读取到文件内容。
第二列②:文件类型及权限(共11个字符,第一个字符为类型,后9个字符为文件权限)
最后一个字符“.”表示与selinux相关的标识(没太大作用)
第三列③:硬链接(同一个文件的不同入口数)个数(详细参看ln命令的讲解。)
第四列④:文件或目录所属的用户(属主)
linux里面文件和程序的存在必须要有用户和组满足相应的存在需求。
第五列⑤:文件或目录所属的组
第六列⑥:文件或目录的大小
第七、八、九列:文件的目录的修改时间:默认为:月日时分
第十列:实际的文件名或目录名

Linux文件的权限

说明:linux中每个文件或目录都有一组共9个基础权限位,每三位字符被分为一组,他们分别是属主权限位(占三个字符)、用户组权限位(占三个字符)、其他用户权限位(占三个字符)。比如rwxr-xr-x,在linux中正是这9个权限位(更多权限位后面会提到),来控制文件属主、用户组以及其他用户的权限。

权限位说明

linux文件或目录权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主(owner)的读、写、执行,用户组(group)的读、写、执行以及(other)其他用户的读、写、执行。

权限位 说明
r read可读权限 对应数字是:4
w write 可写权限 对应数字是:2
x Execute 可执行权限 对应数字是:1
- 没有任何权限 对应数字是:0

注:后面还会有特殊权限位:t T s S X x +

linux(普通文件)的读、写、执行权限说明

1、可读r:表示具有读取、阅读文件内容的权限。
2、可写w:表示具有新增、修改文件内容的权限。(并不是说可以删除文件)
1)如果没有r,那么vi会提示无法编辑(可强制编辑即“:wq!”),echo 可以重定向或追加);
2)特别提示:删除文件(修改文件名等)的权限受父目录的权限控制,和文件本身权限无关。
3、可执行x:表示具有执行文件的权限。
1):文件本身要能够执行
2):普通用户同时还需要具备r的权限才能。
3):root只要有x的权限就能执行。

(linux目录)的读、写、执行权限说明

1、可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir
1)如果没有x权限,不能进到目录里,即无法cd dir
2)如果没有x权限,ls列表时可以看到所有文件名,但是会提示无权访问目录下文件。
3)如果ls -l列表,所有的属性会带有问好,也会提示无权访问目录下文件。
但是可以看到所有文件名。
2、可写w:表示具有增加、删除或修改目录内文件名(一般指文件名)的权限(需要x权限配合)
3、可执行x:表示具有进入目录的权限,例如 :cd dir
但是没有r无法列表文件及目录,没有w无法新建和删除。

索引节点inode(index node)

硬盘要存储数据(房子住人),首先要分区(隔断),然后格式化,创建文件(装修),最后存数据(住人)。

inode ,在每个linux存储设备或存储设备的分区(存储设备 是硬盘、软盘。。。)被格式化为ext4(CentOS6.7)文件系统后,一般生成两部分:第一部分生成Inode(很多个)第二部分是Block(很多个);这个Block是用来存储手机数据用的,例如:照片,视频等普通文件数据。而inode就是用来存储这些数据的属性信息,inode的属性信息包括不限于文件大小、属主(用户)、归属的用户组、文件的权限、文件的类型、修改时间、还包含指向文件实体的指针的功能(inode节点--blcok的对应关系)等,但是inode里面唯独不包含文件名。inode除了记录文件属性的信息外,还会为每个文件进行信息索引,索引就有了inode的数值。操作系统根据指令,即可通过inode的值最快的找到相对于的文件实体。因为inode要存放文件的属性信息,所以每个inode本身是有大小的,CentOS5 inode默认大小是128字节;而CentOS6系列inode的默认大小是256字节,inode的大小是在分区被格式化创建文件系统之后定下来的,格式化以后就无法更改inode的大小格式化前可以通过参数指定inode的大小,但是一般企业工作环境没有这个需求。

查看文件系统inode的总量以及剩余量的命令:df -i
查看磁盘的使用量的命令:df -h
磁盘空间是否满了,是由两项参数决定的:
第一个是inode是否满了,第二个block是否满了,任何一项满了,都无法放你最喜欢的文件了
磁盘满的一个特征:(no space left on device )

有关inode的小结

1):磁盘被分区并格式化为ext4文件系统后会生成一定数量的inode和block

2):inode是索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)

3):ext3、ext4文件系统的block存放的是文件的实际内容

4):inode是磁盘上的一块存储空间,C6非启动分区inode默认大小256字节,C5是128字节

5):inode的表现形式是一串数字,不同的文件对应的inode(一串数字)在文件系统里面是唯一的

6):inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口

7):ext3、ext4文件系统下,一个文件被创建后至少要占用一个inode和一个block

8):ext3、ext4文件系统下,正常情况下一个文件占用且只能占用一个inode #(类似人和身份证)

9):block是用来存储实际数据的,他的大小一般有1k,2k,4k几种,其中引导分区等为1k,其他普

通分区多为4k(C6)

10):如果一个文件很大(高清大片),可能需要占用多个block,如果文件很小(0.01),至少占

用一个block,并且这个blockd的剩余空间浪费了,即无法再存储其他数据了。

11):inode大小的总量查看
dumpe2fs /dev/sda3|grep -i "block count|Inode count"
dumpe2fs /dev/sda3|grep -i "block size|Inode size"
默认block count 一般会大于Inode count 的数量。

12):查看inode的总量和使用量命令:df -i

13):查看文件的inode的命令:
ls -li 或stat /etc/hosts

14):如何生成及指定inode大小:
格式化命令:mkfs.ext4 -b 2048 -l 256 /dev/sbd

stat /etc/hosts :查看文件或文件系统的详细属性

有关Block的知识小结

1)磁盘读取数据是按block为单位读取的;

2)一个文件可能占用多个block,但是每读取一个block就会消耗一次磁盘I/0;

3)如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多;

4)一个block只能存放一个文件的内容,无论内容有多小,如果block默认是4K大小,那么存放一个1K的文件,剩余3K就不能存放别的文件,只能浪费了;

5)Block并非越大越好,Block太大对于小文件存放就会浪费磁盘空间,例如:1000K的文件BLOCK为4K,占用250个BLOCK,如果BLOCK默认为1K,则需要占用1000个BLOCK,访问效率谁更高?消耗IO分别为250次和1000次;

6)根据业务需求,确定默认的block大小,如果大文件(大于16K)一般设置BLOCK大一点,小文件(小于1K)一般设置BLOCK小一点;

7)BLOCK太大,例如4K,文件都是0.1K的,大量浪费磁盘空间,但是访问性能高;

8)BLOCK太小,例如1K,文件都是1000K,消耗磁盘IO;

9)BLock的大小设置也是格式化分区时候确定的,命令:mkfs.ext4 -b 2048 -I 256 /dev/sdb

10)企业里文件都会比较大(一般会大于4K),block设置大一些会提升磁盘访问效率;

11)ext3、ext4文件系统(CentOS5和6),一般都设置为4K;

(当前的生产环境一般设置为4K,特殊的业务,如视频可以加大block大小)block如果设置太大就会浪费磁盘空间,太小就会限制访问速度,所以设置block大小时,需要折中考虑

文件类型介绍

linux系统不同于window系统,两者的文件类型和文件扩展名也有很大的差异,linux系统中的文件类型,和文件扩展名所代表的意义和Windows系统中的是不同的。

在linux系统中,我们一般通过应用程序或命令创建文件,如file.txt、file.tar.gz,这些文件的扩展名不同且要用不同的程序或命令来打开,但都是常规文件(也被称为普通文件)后面附带的后缀文件扩展名(txt.tar.gz),除了让曾经习惯Windows的用户易读外,大多数对于linux系统来说没什么特别实际意义,在linux系统中也是为了易读,二Windows系统中的扩展名就是实实在在表示文件的类型格式。

例如:Windows图片文件扩展名:jpg.jpeg.png.bmp.gif等
文本文件扩展名:doc.docx.txt.pdf

在linux系统中,可以说一切设备(包括目录、普通文件、设备文件等)皆为文件。文件类型包含有普通文件、目录、字符设备文件、块设备文件、符号链接文件、管道文件等等:

在ls -l 显示文件属性内容后,第一列的一个字符就是用来区分文件类型的:
d(directory) 表示这是一个目录,如上文ext,在ext2fs中,目录是一个特殊的文件。
-(regular file) 表示这是一个普通的文件,如上文的oldboy
l(link) 表示这是一个符号链接文件,实际上它指向另一个文件
b(block) 表示块设备和其他的外围设备,是特殊类型的文件。
以上四个为重点,下面三个不经常用
c(character) 表示字符设备文件(串口设备)
s(socket) 表示Socket文件(网络通信的时候、套接字文件)
p(named pipe) 表示管道文件

Linux文件介绍的更多相关文章

  1. Linux core 文件介绍

    Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...

  2. linux设备驱动程序该添加哪些头文件以及驱动常用头文件介绍(转)

    原文链接:http://blog.chinaunix.net/uid-22609852-id-3506475.html 驱动常用头文件介绍 #include <linux/***.h> 是 ...

  3. Linux文件 I/O 介绍

    Linux文件 I/O 介绍 1. Linux系统调用 Linux系统调用(system call)是指操作系统提供给用户程序的一组"特殊接口",用户程序可以通过这组"特 ...

  4. Linux文件类型介绍

    文件类型介绍: Linux系统不同于Windows系统,两者文件类型和文件扩展名也有很大的差异.Linux中的文件类型和Linux文件的文件扩展名所代表的意义和Windows系统完全不同.用户一般通过 ...

  5. Linux 文件内容查看工具介绍-cat,less,more,tail,head

    Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat.more.less.head.tail等,把这些工具最常用的参数. ...

  6. 介绍两款Linux文件恢复工具,ext3grep与extundelete https://www.cnblogs.com/lazyfang/p/7699994.html

    介绍两款Linux文件恢复工具,ext3grep与extundelete,可能在关键时刻会有所帮助.ext3grep仅对ext3文件系统有效,extundelete对ext3与ext4文件系统都有效  ...

  7. linux用户及组相关文件介绍

    用户和组文件介绍 1.用户账号文件:passwd passwd命令用于设置用户的认证信息,包括用户密码.密码过期时间等.系统管理者则能用它管理系统用户的密码.只有管理者可以指定用户名称,一般用户只能变 ...

  8. Linux基础介绍【第五篇】

    linux权限位 Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限.属组权限.其他用户权限. r:read可读权限,对应数字4: w:write可写权限,对应数字 ...

  9. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

随机推荐

  1. os.fork()----linux

    fork() 函数,它也属于一个内建并 且只在 Linux 系统下存在. 它非常特殊普通的函数调用,一次返 回但是 fork() 调用一次,返回两次.因为操作系统自动把当前进程(称为父)复制了一份(称 ...

  2. yum update过程中失败后再次执行出现“xxxx is a duplicate with xxxx”问题

    问题现象: 解决办法: 利用yum-uitls中的工具package-cleanup指令,使用方法见下图,具体可通过man package-cleanup查询 列出重复的rpm包        pac ...

  3. 逻辑回归原理,推导,sklearn应用

    目录 逻辑回归原理,推导,及sklearn中的使用 1 从线性回归过渡到逻辑回归 2 逻辑回归的损失函数 2.1 逻辑回归损失函数的推导 2.2 梯度下降法 2.3 正则化 3 用逻辑回归进行多分类 ...

  4. css雪碧图(精灵图)与字体图标的介绍以及对比

    css雪碧图(精灵图)与字体图标的介绍以及对比 设想一个实际场景:在一个页面为了展示,我们放置了很多独立的小图片,浏览器在显示页面的时候,就需要向服务器就会发送很多请求,来获取并加载这些小图片,但是这 ...

  5. spring+springmvc+mybatis框架搭建

    一.开发前准备 1)ecplise4.11.0 百度网盘:https://pan.baidu.com/s/1wO9_I52lp0mYNeNTdnj80w 提取码:booa 2)jdk1.6.0_45  ...

  6. Codeforces Round #556 CF1149D Abandoning Roads

    这道题并不简单,要得出几个结论之后才可以做.首先就是根据Kruskal求最小生成树的过程,短边是首选的,那么对于这道题也是,我们先做一次直选短边的最小生成树这样会形成多个联通块,这些联通块内部由短边相 ...

  7. 笔记63 Spring Boot快速入门(三)

    SpringBoot中使用JSP Springboot的默认视图支持是Thymeleaf,但是Thymeleaf还没开始学,熟悉的还是jsp,所以要让Springboot支持 jsp. 一.在pom. ...

  8. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  9. java中文件下载的思路(参考:孤傲苍狼)

    文件下载 文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件的下载 文件下载功能的实现思路: 1.获取要下载的文件的绝对路径 2.获取要下载的文件 ...

  10. Angularjs 1.3在页面中输出带Html标记的文本

    如何Angularjs1.3在页面中输出带Html标记的文本 基于安全考虑,Angularjs不允许用ng-bind或者{{}}的方法输出html文本. 在实际的应用中,比如信息管理系统,用在线编辑器 ...