本节内容

  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. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

  2. Node、TS、Koa学习笔记

    这样定义可以轻松拿到gender属性 这样定义,函数内显示没有gender 这种方法能得到gender但是函数内部没有gender 这种方式能到gender 但是在函数里施symbel属性,外部不能访 ...

  3. SQL NOW() 函数

    NOW() 函数 NOW 函数返回当前的日期和时间. 提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间. SQL NOW() 语法 SELECT ...

  4. Java多线程之ReentrantLock与Condition

    一.ReentrantLock 1.ReentrantLock简介 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”.ReentrantLock 类实现了 Lock ,它拥有与 sy ...

  5. 线性回归和Logistic回归

    目录 线性回归 用线性回归模型拟合非线性关系 梯度下降法 最小二乘法 线性回归用于分类(logistic regression,LR) 目标函数 如何求解\(\theta\) LR处理多分类问题 线性 ...

  6. 早上一起来,就看到朋友圈发这个,慌的一 B

    早上一起来,就看到朋友圈发这个,慌的一 B,也不知道是真是假- 图中的 c 表示已被确认,大家可以看到各个大厂真的是在大幅度裁员. 不知道明年的情况会如何,网上看到过一句话:2019 年也许是这 10 ...

  7. Entity Framework Core系列之DbContext

    前言: EF Core DbContext表示与数据库的会话,并提供与数据库通信的API,具有以下功能: 数据库连接 数据操作,如查询和持久化 更改追踪 模型构建 数据映射 对象缓存 事务管理 数据库 ...

  8. AWT的应用

    AWT(Abstract Window TookIT)是java用于创建用户界面和绘制图形的所有类 AWT组件和容器 AWT包含了很多类和接口,用于java Application的GUI(图形用户界 ...

  9. ExaWizards 2019 English D - Modulo Operations(DP)

    Time Limit: 2 sec / Memory Limit: 1024 MB Score : 600600 points Problem Statement Snuke has a blackb ...

  10. P1836 【数页码_NOI导刊2011提高(04)】

    P1836 数页码_NOI导刊2011提高(04) 题目描述 一本书的页码是从1—n编号的连续整数:1,2,3,…,n.请你求出全部页码中所有单个数字的和,例如第123页,它的和就是1+2+3=6. ...