本节内容

  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、磁盘分区格式化文件系统后,会分为inodeblock两部分内容。
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的更多相关文章

  1. windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)

    摘要: 1.文件后缀名不可见,系统运维过程容易发生同名不同后缀的文件操作混淆的情况 2.windows系统默认是文件后缀名不可见 3.所以需要更改一下配置. 4.操作步骤如下图: (1)点击组织-文件 ...

  2. linux命令:文件类型和扩展名

    在linux系统中,一切皆是文件.Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.数据接口文件,符号链接文件,数据传送文件等. 1. 普通文件 用 ls -lh 来查看某个文 ...

  3. 每天一个linux命令(24):Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  4. Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  5. 【转】每天一个linux命令(24):Linux文件类型与扩展名

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/22/2781912.html Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概 ...

  6. linux 命令——24 Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  7. 每天一个linux命令(24)--Linux文件类型与扩展名

    linux 文件类型和Linux 文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如 file.txt  file.tar.gz.这些文件虽然要用不同的程序来打开,但放在Lin ...

  8. linux每日命令(25):Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  9. linux常用命令:Linux 文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

随机推荐

  1. Linux运维高级-核心知识提高

    一.Linux之定时任务crond 二.Linux之用户管理 三.Linux之初识磁盘 四.Linux之磁盘管理 五.Linux三剑客-SED 六.Linux三剑客-AWK 七.初识shell编程 八 ...

  2. [LeetCode] 15. 三数之和

    题目链接:https://leetcode-cn.com/problems/3sum/ 题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a ...

  3. 理解mysql执行多表联合查询

    阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql ...

  4. Redis详解(三)------ redis的五大数据类型详细用法

    我们说 Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据 ...

  5. 基于C#的socket编程的TCP异步实现

    一.摘要 本篇博文阐述基于TCP通信协议的异步实现. 二.实验平台 Visual Studio 2010 三.异步通信实现原理及常用方法 3.1 建立连接 在同步模式中,在服务器上使用Accept方法 ...

  6. 关于h5绘制canvas生成图片的注意点!

    1.第一个是关于移动端自适应的问题: 答:如果是最后只要一张canvas生成的图片,而不是要绘制的canvas的图形,则不需要考虑自适应,绘制canvas的时候的宽高,可以直接写成UI提供的图的大小, ...

  7. (poj 2502) Subway 最短路

    题目链接: 题意:在一个城市里有许多地铁,现在你知道每条地铁的起点  终点与停站点的坐标,知道我们的起始坐标与终点坐标,问加上走路最快到达终点的时间是多少? 方法:求出任意两点的车速时间与步行时间,再 ...

  8. re 模块 分组特别说明

    关于分组优先以及 " | " 的细致练习 from django.test import TestCase import re # Create your tests here. ...

  9. nginx的location配置root、alias用法和区别

    root & alias区别root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上root的处理结果是:root路径 ...

  10. jforum(1)--环境搭建

    JForum 是采用Java开发的功能强大且稳定的论坛系统.它提供了抽象的接口.高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制.多语言支持(包括中文).高性能.可自定义的用户接口.安全. ...