Linux 的文件通常分为 7 大类

文件类型                                  缩写      英文名称                                                 
普通文件 - Regular file
目录文件 D Directory file
块设备文件 B Block special file
字符设备文件 C Character special file
命名管道文件 F FIFO 或 named pipe
套接字文件 S Socket
符号链接文件 l Symbolic link

普通文件

普通文件是 Linux 系统中最常见的一类文件,其特点是不包含文件系统的结构信息,可包括图形文件、数据文件、文档文件、声音文件等;按照内部结构又可分为文本文件和二进制文件两种。

  • 文本文件

  文本文件是字符(ASCII码)组成的文件,以行为基本结构的信息存储文件,它的内容是用户可以直接读到的数据,例如数字、字母等。通常来说,Linux 的系统配置文件基本上都属于这种文件类型,可以使用 cat 命令直接查看。

  • 二进制文件

  二进制文件是按信息在内存中的格式表示的文件,通常不能直接查看,而必须使用相应的软件来查看。通常来说,Linux 中的可执行文件(脚本、文本方式的批处理文件不算)基本都属于这种文件类型,可以运行。

目录文件

Linux 中的目录也是以文件存在的,称为目录文件,其是文件系统中一个目录所包含的目录项组成的文件,用户可以读取但是不能修改该目录文件的内容,只允许系统进行修改。

设备文件

Linux 把设备(例如硬盘、串口等)也看做文件,具有相同的操作方法,这种文件被成文设备文件,是用于操作系统与 I/O 设备提供连接的一种文件,分为字符设备文件和块设备文件,这些文件通常存放在 dev 目录中。

字符设备文件

这是一个顺序的数据流设备文件,对这种文件的读写是按字符进行的,而且这些字符是连续地形成一个数据流。字符设备不具备缓冲区,所以对这种设备的读写是实时的,如串口终端、磁带机等。

块设备文件

这是一种具有一定结构的随即存取设备文件,对这种设备的读写是按块进行的,它使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备,或从设备中一次性读出放入到缓冲区,如磁盘和文件系统等。

命名管道文件

命名管道文件又被称为先进先出文件,其主要用于在 Linux 的进程间传递数据,是 Linux 进程间的一种通信机制。管道是进程间传递数据的“媒介”,一个进程将数据写入管道的一端,另一个进程从管道另一端读取数据。通常情况下,管道是建立在高速缓存中的。采用先进先出的规定处理其中的数据。管道文件又可以分为有名管道和无名管道两种。

套接字文件

套接字(Socket)文件主要用于不同计算机进程间的通信,其是操作系统内核中的一个数据结构,它是网络中的节点进行相互通信的门户。套接字有三种类型:流式套接字、数据报套接字和原始套接字。流式套接字也就是 TCP 套接字(或称面向连接的套接字),数据报套接字也就是 UDP 套接字(或称无连接的套接字),原始套接字用 “SOCK_RAW” 表示。

  • 流式套接字定义了一种可靠的面向连接服务,实现了无差错、无重复的顺序数据传输
  • 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的、并且不保证可靠、无差错
  • 原始套接字允许对低层协议,如 IP 或 ICMP 进行访问,主要用于对新的网络协议进行测试等

符号链接文件

又称链接文件,是一种特殊的文件,实际上是指向一个真实存在的文件链接。链接文件提供了共享文件的一种方法,在链接文件中不是通过文件名实现文件共享,而是通过链接文件所包含的指向文件的指针来实现对文件的访问。普通用户可以建立链接文件,并通过其指针访问它所指向的那个文件。使用链接文件可以访问普通文件,还可以访问目录文件和不具有普通文件形态的其它文件。也就是说,链接文件可以在不同的文件系统之间建立一种链接关系。根据链接对象的不同,可以分为硬链接文件和符号链接文件。

Linux 的文件是一个简单的字节数据序列,所以在 Linux 下对于文本文件、二进制文件的结构和访问方法都是相同的。Linux 的文件是由一系列块(block)组成,每个块可能含有 512、1024、2048 或 4096 个字节,具体由系统实现决定,在同一个文件系统中块大小是相同的。当使用较大块的时候,由于每次磁盘操作可以传输更多的数据,操作所花的事件较少,所以可以提高磁盘和内存间数据的传输率,但是相对的,由于块太大,存储的有效容量也会下降,也就是说会浪费一些存储空间。

Linux 使用文件描述符(File Descriptor)来标识一个进程正在访问的特定文件,当打开一个文件或创建一个文件时,Linux 将返回一个文件描述符,以供其它操作引用,通常来说文件描述符是一个小的非负整数。

Linux 中,每个进程都可以拥有最多 1024 个文件描述符,并且有自己的文件描述符表,其中前三项对于一般的进程是固定的,且是由系统自动打开的:

  • 文件描述符 0:标准输入文件,通常对应键盘灯输入设备
  • 文件描述符 1:标准输出文件,通常对应显示设备
  • 文件描述符 2:标准错误输出文件,通常也是对应显示设备

对于以上三个文件描述符,用户程序不用执行文件打开操作就可直接使用,其在头文件中的定义部分如下:

 #define    STDIN_FILENO      0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2

Linux 的文件类型的更多相关文章

  1. Linux基本文件类型

    Linux基本文件类型 基本文件类型 - : 普通文件 d : 文件目录 p : 管道文件 l : 软连接文件 c : 字符设备文件 s : socket文件

  2. Linux的文件类型

    在Linux中,文件的颜色都是有含义的.其中, Linux中文件名颜色不同,代表文件类型不一样. 浅蓝色:表示链接文件: 灰色:表示其他文件: 绿色:表示可执行文件: 红色:表示压缩文件: 蓝色:表示 ...

  3. linux的文件类型和权限

    Linux下使用ll或ls -l查看文件的信息 (ll和ls-l的区别:ll会显示出当前目录下的隐藏文件,而ls -l不会)   文件信息分为:文件类型.权限.链接数.所属用户.所属用户组.文件大小. ...

  4. Linux 程序设计学习笔记----Linux下文件类型和属性管理

    转载请注明出处:http://blog.csdn.net/suool/article/details/38318225 部分内容整理自网络,在此感谢各位大神. Linux文件类型和权限 数据表示 文件 ...

  5. Linux基础文件类型

    一.文件时间 ls -l 文件名 仅看的是文件的修改时间 [root@linux ~]# ls -l /etc/passwd -rw-r--r-- root root 5月 : /etc/passwd ...

  6. 6、Linux基础--文件类型、属性信息、创建用户与用户组

    笔记 1.晨考 1.解析映射文件 /etc/hosts 2.磁盘挂载文件 /etc/fstab 3.设置开机自启动脚本的步骤 1.修改/etc/rc.local 2.设置可执行权限 chmod +x ...

  7. linux 修改文件类型

    :Unix及类Unix系统里,每行结尾只有换行“\n”,Windows系统里面,每行结尾是换行+回车“\n\r”. 利用Linux下的vim编辑器,可以方便的在dos文件.unix文件之间进行切换,且 ...

  8. Linux:文件类型和权限

    一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件.

  9. linux中的文件类型以及查看文件类型的方法

    Linux文件类型和文件的文件名所代表的意义是两个不同的概念,在linux中文件类型与文件扩展名没有关系.它不像Windows那样是依靠文件后缀名来区分文件类型的,在linux中文件名只是为了方便操作 ...

随机推荐

  1. mac使用pytesseract

    import locale locale.setlocale(locale.LC_ALL, 'C') import pytesseract import pathlib import tracebac ...

  2. linux 系统进程理解

    1.为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行.      不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样 ...

  3. 带jdk15类似的jar配置

    针对部分jar文件名带有jdk15结尾的依赖配置时,需要添加<classifier>标签进行区分 比如针对:json-lib-2.4-jdk15.jar的jar依赖配置 <depen ...

  4. Android获取本机号码及运营商

    import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log; ...

  5. Linux系统下安装pycharm

    在 linux下打开浏览器,搜索pycharm,点击download. 下载好的文件的名称可能是 ‘pycharm-professional-2018.3.5.tar.gz’. 打开终端界面,输入命令 ...

  6. 前端----css 选择器

      css 为了修饰页面作用, 让页面好看 ⑴ css的引入方式1,行内样式body里面2,内接样式在html里面的 style 里面3,外接样式两种:①链接式: <link rel=" ...

  7. python创建tcp服务端和客户端

    1.tcp服务端server from socket import * from time import ctime HOST = '' PORT = 9999 BUFSIZ = 1024 ADDR ...

  8. disk2vhd-----将windows系统转换成虚拟镜像格式

    工具介绍 下载url:http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx disk2vhd是一个非常小的P2V转换工具,可以将你 ...

  9. 04 if条件判断 流程控制

    条件判断 if 语法一: if 条件: # 条件成立时执行的子代码块 代码1 代码2 代码3 示例: sex='female' age=18 is_beautiful=True if sex == ' ...

  10. python-re模块和subprocess模块

    一.re模块 re中文为正则表达式,是字符串处理的常用工具,通常用来检索和替换符合某个模式的文本. 注:要搜索的模式和字符串都可以是unicode字符串(str)和8位字符串(bytes),但是不能将 ...