1、windows 和linux文件类型的区别

windows 里是通过扩展名来区分文件类型的;linux里文件扩展名和文件类型没有关系,为了容易区分和箭筒用户使用的windows的习惯,我们也会用扩展名来表示linux文件类型,linux 系统中,一切皆文件。

2、linux系统查看文件类型

[root@backup ~]# ls  -l
总用量 72556
-rw-------. 1 root root     1104 7月   6 00:51 anaconda-ks.cfg
-rw-r--r--  1 root root     1083 5月  15 2015 epel-6.repo
-rw-r--r--. 1 root root    22179 7月   6 00:51 install.log
-rw-r--r--. 1 root root     5890 7月   6 00:50 install.log.syslog

其中-rw-r--r--  开头的第一个“-”表示文件的类型

3、文件权限位介绍

的文件或目录的权限和用户及用户组的关系很大,linux系统中每个文件或目录都有一组共9个基础权限位,每三个字符被分为一组,分别是属主权限位,属组权限位和其他用户权限位。

下边的图可以很直接的介绍出九个权限位。

linux 文件或目录的权限和属性_目录

3、linux中常见的系统文件类型

linux 文件或目录的权限和属性_linux_02

4、inode节点与block介绍

磁盘==》分区==》格式化(创建文件系统)==》挂载    只用经过这四个步骤硬盘才可以正常使用

磁盘在进行分区格式化的是,会生成两部分,一部分是inode节点(很多个),另一部分是block(很多个)

inode:

inode 就是用来储存这些数据属性信息的(ls –l 的结果),inode包含的文件属性信息有大小、数组、归属的用户组、读写权限、文件类型和修改时间,还包含指向文件实体的指针的功能(inode 节点—block 的对应关系)等,但是inode唯独不包含文件名,inode 存储空间: 256字节/每个

block:

block就是存储空间,是存储真正存放数据的,例如:照片,视频等普通文件数据。

inode 相当于目录,block 相当于书的内容,整本书相当于磁盘。

inode 除了记录文件属性以外,还会为每个文件建立信息索引,所以就有了inode数值。操作系统根据指令,即可通过inode的值最快的找到相对应的文件实体,文件、inode、block之间的关系可以用下图来表示:

linux 文件或目录的权限和属性_目录_03

5、查看inode节点和block信息

使用dumpefs 查看:

1、查看inode节点
[root@oldboy ~]# dumpe2fs /dev/sda3 | grep -i "blocksize" 
dumpe2fs 1.41.12 (17-May-2010)
Block size:               4096
[root@oldboy ~]# dumpe2fs /dev/sda3 |grep -i "inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:               256

使用df 查看:
[root@oldboy ~]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      593344 55847 537497   10% /
tmpfs          125596     1 125595   1% /dev/shm
/dev/sda1       51200   38  51162    1% /boot

查看inode节点号
[root@backup ~]# ls -lhi
总用量 71M
927186 -rw-------. 1 root root 1.1K 7月   6 00:51 anaconda-ks.cfg
915719 -rw-r--r--  1 root root 1.1K 5月  15 2015 epel-6.repo
915714 -rw-r--r--. 1 root root  22K 7月   6 00:51 install.log
915715 -rw-r--r--. 1 root root 5.8K 7月   6 00:50 install.log.syslog

2、查看block 的大小
[root@oldboy~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3       8.8G 1.5G  7.0G  17% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M  36M  145M  20% /boot

inode小结:

1)磁盘分区格式化ext4文件系统后会生成一定数量的inodeblock

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

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

4inode是一块存储空间,C6非启动分区inode默认大小256字节。C5128字节

5inode是一串数字,不同的文件对用的inode(一串数字)在文件系统里是唯一的

6inode相同的文件,互为硬链接文件(一个文件的两个入口)

7)一个文件被创建后至少要占用一个inode和一个block

8block的大小一般有1k,2k,4k几种。其中引导分区等为1K,其他普通分区为4k(C6)

9)如果一个文件很大,可能占多个block,如果文件很小,至少占一个block,并且剩余空间浪费了。

10)inode大小和总量查看

[root@oldboy/]# dumpe2fs  /dev/sda3|egrep -i"block size|Inode size"

[root@oldboy/]# dumpe2fs  /dev/sda3|egrep -i"block count|Inode count"   

11) 查看inode的总量和使用量命令

df -i

12)如何生成及指定inode大小

格式化命令:mkfs.ext4 -b 2048 -I 256 /dev/sdb

block小结:

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

2)一个文件可能占用多个block,没读取一个block就会消耗一次IO

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

4)一个block只能该存放一个文件的内容,无论内容有多少,如果block 4K,那存放1K的文件,就剩余3K浪费了

5block 并非越大越好,block太大对于小文件存放就会浪费磁盘空间。例如:1000K的文件,block4K,占用250blockblock1K,占用1000block,访问效率谁更高,消耗IO分为为250次和1000

6)根据也无需求,确定默认的block大小,如果是大文件(大于16K )一般设置block大一点,小文件(小于1k)一般设置block小一点

7block太大,例如4K,文件都是1K的,大大的浪费了磁盘空间,但是访问性能高

8block太小,例如:1K,文件都是100K,消耗大量的IO

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

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

11ext3/ext4 文件系统(centos 5 6 ),一般都设置为4K