linux文件分为7大类,如下表所示:
文件类型 | 缩写 | 英文名称 |
---|---|---|
普通文件 | - | Regular file |
目录文件 | D | Directory file |
块设备文件 | B | Block file |
字符文件 | C | Character file |
命名管道文件 | F | FIFO或name pipe |
套接字文件 | S | Socket |
符号链接文件 | l | Symbolic link |
1.普通文件
(1)文本文件
文本文件是字符组成的文件,以行为基本结构的信息存储文件,它的内容是用户可以直接读到的数据
(2)二进制文件
二进制文件是按信息在内存中的格式表示的文件,通常不能直接查看,需要使用相应的软件查看.
2.目录文件
linux中目录也是以文件存在的,成为目录文件.是文件系统中一个目录所包含的目录项组成的文件,用户只具有读权限.
目录文件在文件名和索引结点之间的转换起桥梁的作用,是文件系统树形文件结构的关键,由文件名和索引节点号构成.
linux文件系统对文件的管理是通过索引结点来进行的.当用户访问某个文件时,系统需要找到它所对应的索引节点.目录文件建立了文件名和索引节点号之间路径路线.
3.字符设备文件和块设备文件
linux把设备也看成文件,这类文件称为设备文件,用于操作系统与I/O设备提供链接的一种文件,分为字符设备文件和块设备文件,分别对应于字符设备和块设备.
(1)字符设备文件(鼠标,磁带)
数据流设备文件,读写是按照字符进行的,这些字符是连续地形成一个数据流.字符设备不具备缓冲区,读写是实时的
(2)块设备文件
具有一定结构的随机存取设备文件,读写是按照块进行的,使用缓冲区来存放暂时的数据,待满足一定条件后,从缓存一次性写入设备,或从设备一次性读入缓冲区
4.命名管道文件
又称先进先出文件,主要用于linux进程间传递数据,是进程间的一种通信机制.一个进程将输入数据写入管道的一端,另一个进程从管道的另一端读取数据.采用先进先出的规定处理数据
5.套接字文件
用于不同计算机进程间的通信,是操作系统内核中的一个数据结构,是网络节点间进行互相通信的门户.分为三种类型:
- 流式套接字
又称TCP套接字,定义了一种可靠的面向链接的服务,实现无差错,无重复的顺序数据传输数据套接字
又称UDP套接字,定义了一种不可靠的,面向无连接的服务,数据通过独立的报文进行传输是无序的原始套接字
允许对低层协议,例如IP或ICMP进行直接访问,主要用于对网络协议进行测试
6.符号链接文件
又称链接文件,是一个指向真实文件的链接,提供了共享文件的一种方法,通过链接所包含的指向文件的指针来实现对文件的访问.
文件描述符
标识一个进程正在访问的特定文件,当打开或创建一个文件时,linux会返回一个文件描述符供其他操作引用,文件操作符通常是一个小非负整数.