Linux中有一句话:一切皆是文件

1、普通文件( -       regular file )

(1)、文本文件

  文件中的内容是由文本构成的,文本指的是ASCII码字符。文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机本身只有0和1),而文本文件中的数字本身应该被理解为这个数字对应的ASCII码。常见的有.c文件、.h文件、.txt文件等都是文本文件。文本文件的好处就是可以被人轻松读懂和编写。所以说文本文件天生为人类发明的。

(2)、二进制文件

  二进制文件中存储的本质也是数字,只不过这些数字并不是文字的编码数字,而是真正的数字。常见的可执行文件(gcc编译生成的a.out,arm-linux-gcc编译链接生成的.bin)都是二进制文件。

(3)、从本质上看,文本文件和二进制文件并没有二进制文件。都是在一个文件里存放了数字。区别就是理解方式不同,如果把这些数字就当作数字处理则就是二进制文件,如果把这些数字按照某种编码格式去解码成文本字符,则就是文本文件。

(4)、我们如何知道一个文件是文本文件还是二进制文件呢?在Linux系统层面是不区分这两个的(譬如open、read、write等方法操作文本文件和二进制文件时一点区别都没有),所以我们无法从文件本身准确知道文件属于哪一种,我们只能本来就知道这个文件的类型然后用这个文件的用法去用他。有时候会用一些后缀名来人为的标记文件的类型。

(5)、使用文本文件时,常规用法就是用文本文件编辑器去打开它、编辑它。常见的文本文件编辑器如vim、gedit、notepad++、sourceinsight等,我们用这些文本文件编辑器去打开文件的时候,编辑器会read读出文件二进制数字内容,然后按照编码格式去解码将其还原成文字展现给我们。如果用文本文件编辑器去打开一个二进制文件会如何?这时候编辑器就以为这个二进制文件还是文本文件,然后试图去将其解码成文字,但是解码过程中很多数字并不对应有意义的文字所以成了乱码。

(6)、如果用二进制阅读工具去打开一个文本文件如何?得出的就是文本文件对应的二进制的编码。

2、目录文件( d   directory )

(1)、目录就是文件夹,文件夹在Linux中 也是一种文件,不过是特殊文件。用vi打开一个文件夹就能看到,文件夹其实就是一种特殊文件,里边存的内容包括这个文件的路径还有文件夹里边的文件列表。

(2)、但是文件夹这种文件比较特殊,本身并不适合用普通的方式来读写。Linux中是使用特殊的一些API来专门读写文件夹的。

3、设备文件

(1)、设备文件包括:

  字符设备文件(c   character)

块设备文件(b  block)。

(2)、设备文件对应的是硬件设备,也就是说这个文件虽然在文件系统中存在,但是并不是真正存在于硬盘上的一个文件,而是文件系统虚拟制造出来的(叫做虚拟文件系统,如/dev /sys /proc等)

(3)、虚拟文件系统中的文件大多数不能或者说是不用直接读写的,而是用一些特殊的API产生或者使用的。

4、管道文件(p  pipe)

(1)、管道在Linux中是一种通信手段,在通信的时候需要建立管道文件作为辅助。

5、套接字文件(s   socket)

(1)、在上网的时候需要建立套接字文件

6、符号链接文件(l  link)

(1)、类似于Windows中的快捷方式,包括硬链接、软连接等等。

Linux中的各种文件类型的更多相关文章

  1. Linux中用st_mode判断文件类型

    Linux中用st_mode判断文件类型 2012-12-11 12:41 14214人阅读 评论(4) 收藏 举报  分类: Linux(8)  C/C++(20)  版权声明:本文为博主原创文章, ...

  2. Linux中常用头文件的作用--转

    http://blog.sina.com.cn/s/blog_5c93b2ab0100q62k.html 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言 ...

  3. day59:Linux:编辑工具vim&文件类型&文件属性

    目录 1.Linux编辑工具vim 2.Linux文件类型 3.Linux文件属性 4.今日份Linux练习题 Linux编辑工具vim 1.什么是vim 文本文件的编辑工具,  和windows的n ...

  4. Linux中一切皆文件

    谈一谈Linux中一切皆文件 1. Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件. 普通文件是文件. 目录(在win下称为文件夹)是文件. 硬件设备(键盘.硬盘.打印机)是文件. 套 ...

  5. Linux中环境变量文件及配置

    Linux中环境变量文件及配置   一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统 ...

  6. linux中快速清空文件内容的几种方法

    这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > f ...

  7. reinstall_xbt: Linux中如何查看文件的最初创建时间

    Linux中如何查看文件的最初创建时间 与文件相关的几个时间: 1.访问时间,读一次这个文件的内容,这个时间就会更新.比如对这个文件使用more命令.ls.stat命令都不会修改文件的访问时间.   ...

  8. Linux中如何查看文件的最初创建时间

    查看 一个文件的 最初创建时间: Linux中如何查看文件的最初创建时间  linux     目前Linux没有直接查看创建文件的命令,你只能通过文件是否被修改过来进行判断. //查看代码stat  ...

  9. Linux中/etc/passwd文件与/etc/shadow文件解析.

    此文章转载自"慧可",用来学习. 1. /etc/passwd文件 1.1 /etc/passwd文件内容格式 用户名: 密码 : uid  : gid :用户描述:主目录:登陆s ...

随机推荐

  1. 在Centos安装redis-孙志奇

    最近在阿里云服务器上部署redis,遇到了很多的问题,经过不懈的努力终于配置成功, 按照下面的步骤一步一步来就好了 wget http://download.redis.io/releases/red ...

  2. windows2000 堆溢出 利用原理

    源于0day安全一书 1.堆的分配原理 申请堆空间   HANDLE address =  HeapCreate(0,0x1000,0x10000) address就是堆的地址 在address+0x ...

  3. 【Android】家庭记账本手机版开发报告四

    一.说在前面 昨天 对界面显示和逻辑结构进行完善 今天 1.添加菜单(查询.清除所有等) 2.使用滑动删除 问题 1.在做查询时获取SearchView时引 入包错误经过长时间的尝试后才修正 2.滑动 ...

  4. Fragment 知识巩固

    重新学习 Fragment 1.Fragment 的生命周期 想要熟练使用 Fragment,那么必须要弄懂它的生命周期. 我们可以先看一下 Fragment 生命周期和 Activity 生命周期的 ...

  5. 51nod 1287: 加农炮 好题啊好题

    1287 加农炮 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个长度为M的正整数数组A,表示从左向右的地形高度. ...

  6. SpringCloud学习之Sleuth服务链路跟踪(十二)

    一.为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很 ...

  7. pip2 install protobuf==2.6.1

    [libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.5.0 of the Pr ...

  8. VLOOKUP返回#N/A结果

    VLOOKUP返回#N/A结果 1.无目标值 使用control+f查找是否存在所要搜索的值. 2.位置错误 所要搜索区域,被搜索值必须在首列. 3.格式错误 搜索值和被搜索区域格式需一致. 4.特殊 ...

  9. LVS DR模式搭建、keepalived+LVS搭建介绍

    参考文献 http://blog.51cto.com/taoxie/2066993 疑问: 1.为什么要修改RealServer的返回arp响应和发送arp请求参数  echo "1&quo ...

  10. ubuntu 18.04 安装 Redis-server

    Redis 安装 Redis是一款内存键值存储,以其灵活性,性能和广泛的语言支持而闻名.本教程将演示如何在Ubuntu 18.04服务器上安装和配置Redis.主要内容包括: 安装 Redis Red ...