Centos 06 文件类型和扩展名&索引节点inode和存储块block
本节内容
1、文件类型
2、文件扩展名
3、索引节点inode和block块
首先需要申明一点,
1、在linux里面文件扩展名和文件类型是没有关系的
2、为了容易区分和兼容用户使用windows的习惯,在linux里面也会用扩展名来表示文件类型
3、在linux里面需要提起一个概念“一切皆文件”。
文件类型
文件类型分为:普通文件、目录、字符设备文件、符号链接文件、块设备文件、套接口文件、管道
之前我们通过find命令查找过文件,所以可以查看一下find命令里面的规定,man find然后/type,输入n来往下查找
下面大概讲解下(如果没提到,真的是没必要了解了)
输入ll命令可以查看到如下,最前面一列代表权限,最前面一列第一个字符代表文件类别
1、普通文件 -或者f
其中普通文件有分为三种类型
、纯文本文件ASCII,绝大多数文件几乎是这种类型
、二进制文件binary,可执行文件基本都是,比如文件命令cat、ls
、数据格式文件data,具有特定格式的文件
可以通过file + 文件路径 查看
2、目录文件 d
通过命令查看本身类型
ls -F 查看当前目录的各个文件及属性(也可以用ls -p命令)
dandy* ==> 文件
dddd/ ==> 目录
3、字符设备(tty) c
比如串行端口的接口设备,通过mknod 文件名 c 5 1实现
4、块设备文件(/dev/sda) b
比如硬盘,光驱
5、套接口文件(sock) s
用于网络间进行数据连接的文件
6、符号链接文件 l
创建软链接:ln -s 源文件名 新文件名
7、管道文件(FIFO) p
创建
mkfifo filename
文件扩展名
基本上,Linux的文件是没有所谓的『扩展名』的,我们刚刚就谈过,一个Linux文件能不能被执行,与x有关,与文件名根本一点关系也没有。这个观念跟Windows 的情况不相同!在Windows 底下,能被执行的档案扩展名通常是 .com .exe .bat 等,而在Linux底下,只要你的权限当中具有 x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行!
但是能执行与能执行成功是不同的。虽然扩展名不起作用但是我们还是希望可以由扩展名了解此文件是什么东西。所以。。。
、tat;tar.gz;tgz;zip;tar.gz 表示压缩文件,创建tar;gzip
、sh 表示shell脚本文件
、pl 表示perl语言文件
、py 表示python语言文件
、html;htm;php;jsp;do 表示语言开发的程序
、conf 表示系统服务的配置文件
、rpm 表示rpm安装包的文件
索引节点inode和block块
首先看一个命令
i inode 文件索引号
h human 人类可读的大小格式,K、M、G
第一个红色框就是代表文件的inode号,即文件索引号。
第二个红框就是带h参数的效果,带着单位便于阅读,如果不加是一串文件大小的数字。
第三个红框是硬链接的个数。
inode概述
1、磁盘分区格式化文件系统后,会分为inode和block两部分内容。
2、inode存放文件的属性以及指向文件实体的指针,文件名不在inode里,一般在上级目录的block
3、block是用来存储实际数据用的;
inode除了记录文件属性的信息外,还会为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,即通过inode的值最快的找到对应的文件实体block,可以对应多个block(block的大小是1、2、4k)。
centos5 inode默认大小是128字节;6默认大小是256字节;inode的大小在文件系统被格式化之后就无法更改了,格式化前可以指定inode大小,但是一般工作环境没有这个需求
查看inode&block的大小和数量
查看inode的大小:dumpe2fs -h /dev/sda2 | grep "Inode size"
查看inode的数量:dumpe2fs -h /dev/sda2 | grep "Inode count"
查看block的大小:dumpe2fs -h /dev/sda2 | grep "block size"
查看block的数量:dumpe2fs -h /dev/sda2 | grep "block count"
报错dumpe2fs: Bad magic number in super-block 当尝试打开 /dev/sda2 时,找不到有效的文件系统超级块。这种是因为文件系统的类型是xfs而不是ext造成的,怎么解决,暂时没找到。。
查看inode的总量跟使用量 df -i
查看磁盘大小 df -h(也可以当作human来理解)
小结
一个文件至少占用一个inode和一个block。
ext3/ext4文件系统的block大小一般有1,,4k,centos6正常大小是4k
有关block大小
磁盘读取数据是按block为单位读取的。
一个block只能存放一个文件的内容。所以block并非越大越好。block块越大对于单个的小文件多(.5k)的业务,会非常浪费空间。
因为一个文件无论多大,至少占用一个inode和一个block。但是对于大文件,可以提升读取效率,因为block太小,就要读取多个block,这样就消耗磁盘IO
生产环境:block大小如何处理?
如果是大文件业务,block尽量大一点。小文件业务,block就给小一点。 ext3/ext4最大只能4k,而工作中几乎就没有小于4k的文件,所以以后只要建立ext3/ext4文件系统,block都分配4k。
如果真的是存放大文件的可以搜一下使用更大的文件系统,比如分布式的文件系统。
mkfs -I 2048 -b 2048 /dev/sda1 更改分区的inode跟block,这需要在分区格式化的时候操作
常识:
一般分区情况下,block的数量要大于inode的数量
补命令
less a.log 查看文件,按屏查看
小结
、磁盘分区格式化文件系统后,会分为inode和block两部分内容。
、inode存放文件的属性以及指向文件实体的指针,文件名不在inode里,一般在上级目录的block
、访问文件,通过文件名找到inode,再根据inode找到一个或多个block
、inode一般情况默认大小是256字节,block大小1,,4k,一般默认是4k,引导分区等特殊分区除外
、通过df -i查看inode的数量及使用情况,dumpe2fs/dev/sda3查看inode及block的大小和数量
、一个文件至少要占用一个inode及一个block,其中多个文件可以占用同一个inode(硬链接)
、一个block只能被一个文件使用,block太大浪费,无法继续被其他文件使用
、block不是越大越好,要根据业务的文件大小进行选择,一般就是默认4k
、可以在格式化的时候改变inode及block的大小
Centos 06 文件类型和扩展名&索引节点inode和存储块block的更多相关文章
- windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)
摘要: 1.文件后缀名不可见,系统运维过程容易发生同名不同后缀的文件操作混淆的情况 2.windows系统默认是文件后缀名不可见 3.所以需要更改一下配置. 4.操作步骤如下图: (1)点击组织-文件 ...
- linux命令:文件类型和扩展名
在linux系统中,一切皆是文件.Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.数据接口文件,符号链接文件,数据传送文件等. 1. 普通文件 用 ls -lh 来查看某个文 ...
- 每天一个linux命令(24):Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- 【转】每天一个linux命令(24):Linux文件类型与扩展名
原文网址:http://www.cnblogs.com/peida/archive/2012/11/22/2781912.html Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概 ...
- linux 命令——24 Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- 每天一个linux命令(24)--Linux文件类型与扩展名
linux 文件类型和Linux 文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如 file.txt file.tar.gz.这些文件虽然要用不同的程序来打开,但放在Lin ...
- linux每日命令(25):Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- linux常用命令:Linux 文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
随机推荐
- MySQL之初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- Qt License 解读
对于桌面和移动平台应用 官方说明如下 Qt for Application Development lets you create applications for desktop and mobil ...
- 基于SpringMVC拦截器和注解实现controller中访问权限控制
SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...
- Linux内核入门到放弃-页缓存和块缓存-《深入Linux内核架构》笔记
内核为块设备提供了两种通用的缓存方案. 页缓存(page cache) 块缓存(buffer cache) 页缓存的结构 在页缓存中搜索一页所花费的时间必须最小化,以确保缓存失效的代价尽可能低廉,因为 ...
- C# 使用DES对字符串进行加密
1.DES加密是属于对称加密,加密和解密使用的密钥必须要保持一致,且必须为8位,使用前首先添加引用: 2.逻辑实现代码如下:
- Linux Hung Task分析
关键词:khungtaskd.TASK_UNINTERRUPTIBLE.nvcsw.nivcsw.last_switch_count等等. 经常会遇到内核打印“INFO: task xxx:xxx b ...
- TypeError: 'Item' object has no attribute '__getitem__'
Error Msg: Traceback (most recent call last): File "start.py", line 8, in <module> E ...
- jeecg字典表—普通表
创建普通表 同步数据库(创建对应的表) 验证功能效果 添加用户表,并添加对应的级别属性 同步用户表 字典功能测试 然后生成最新代码,添加到菜单即可
- Django标签和过滤器
过滤器格式{{ }} 标签格式{% %} 模板中过滤器filter只能使用一个参数,自定义标签中则可以使用多个参数!!! 过滤器能够采用链式的方式使用,例如:{{ text | escape | ...
- 【apache】No input file specified
默认的 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]规则在apache fastcgi模式下会导致No input file specified. 修改成 Re ...