Linux文件介绍
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文件介绍的更多相关文章
- Linux core 文件介绍
Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...
- linux设备驱动程序该添加哪些头文件以及驱动常用头文件介绍(转)
原文链接:http://blog.chinaunix.net/uid-22609852-id-3506475.html 驱动常用头文件介绍 #include <linux/***.h> 是 ...
- Linux文件 I/O 介绍
Linux文件 I/O 介绍 1. Linux系统调用 Linux系统调用(system call)是指操作系统提供给用户程序的一组"特殊接口",用户程序可以通过这组"特 ...
- Linux文件类型介绍
文件类型介绍: Linux系统不同于Windows系统,两者文件类型和文件扩展名也有很大的差异.Linux中的文件类型和Linux文件的文件扩展名所代表的意义和Windows系统完全不同.用户一般通过 ...
- Linux 文件内容查看工具介绍-cat,less,more,tail,head
Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat.more.less.head.tail等,把这些工具最常用的参数. ...
- 介绍两款Linux文件恢复工具,ext3grep与extundelete https://www.cnblogs.com/lazyfang/p/7699994.html
介绍两款Linux文件恢复工具,ext3grep与extundelete,可能在关键时刻会有所帮助.ext3grep仅对ext3文件系统有效,extundelete对ext3与ext4文件系统都有效 ...
- linux用户及组相关文件介绍
用户和组文件介绍 1.用户账号文件:passwd passwd命令用于设置用户的认证信息,包括用户密码.密码过期时间等.系统管理者则能用它管理系统用户的密码.只有管理者可以指定用户名称,一般用户只能变 ...
- Linux基础介绍【第五篇】
linux权限位 Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限.属组权限.其他用户权限. r:read可读权限,对应数字4: w:write可写权限,对应数字 ...
- Linux实战教学笔记08:Linux 文件的属性(上半部分)
第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...
随机推荐
- AWS使用教程
AWS使用教程 一.注册登录(https://portal.aws.amazon.com/billing/signup) 准备资料:信用卡(visa卡).电子邮箱.手机号 1.填写账号名和密码 2.填 ...
- sql server日志传送实践(基于server 2008 R2)
SQL Server 2008 R2 主从数据库同步 相关参考:http://blog.itpub.net/30126024/viewspace-2639526/ sql server日志传送(基于s ...
- WPF 动态添加控件以及样式字典的引用(Style introduction)
原文:WPF 动态添加控件以及样式字典的引用(Style introduction) 我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的 ...
- vue PC端页面引入vue-quill-editor富文本插件
项目需要:在添加新类别的弹框中,要在输入框中输入多条描述信息,不同的描述信息要换行输入,输入后点击确定传给后端,接口返回成功后点击查看刚添加的新类别时,描述框中展现多条换行的描述信息也要跟填写时一样( ...
- java nio socket实例
Server端代码: public class NioServer { //通道管理器 private Selector selector; //获取一个ServerSocket通道,并初始化通道 p ...
- testparm - 检查smb.conf配置文件的内部正确性
总览 testparm [-s] [-h] [-L servername] [configfilename] [hostname hostIP] 描述 此程序是samba套件的一部分. testpar ...
- Java的HashMap和Hashtable有什么区别HashSet和HashMap有什么区别?使用这些结构保存的数需要重载的方法是哪些?
HashMap与Hashtable实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用 两者的主要区别如下 1.Hashtable是早期JDK提供的接口,HashMap是新版J ...
- Qt 【Qlistview + delegate 为item重写个关闭按钮】
效果图是这样的. 实现的过程是listview + delegate 本身我想是用listwidget + delegate[网上查询到不可实现] 之前也试过在item中添加布局跟控件,但是在点击的时 ...
- k8s集群搭建之二:etcd集群的搭建
一 介绍 Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现. 简单:支持 curl 方式的用户 API (HTTP+JSON) 安全:可选 SSL 客户端证书认证 快速 ...
- vue项目base64转img
最近一个vue项目中,有个需求是, 发送消息是base64时,转换成图片预览发送出去. 输入框: <el-input class="input-box" ref=" ...