Linux——文件

Posted kelamoyujuzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——文件相关的知识,希望对你有一定的参考价值。

一切皆文件

在Linux下一切皆是文件,从应用层(应用程序层)看待底层机制时,皆以文件的方式来看待这些机制。但是不同的底层机制,毕竟是不同的,比如底层驱动程序,就分为字符设备驱动和块设备驱动,根据底层机制的不同,文件被分为了7种类型。

文件的7种类型

文件一共分为7类分别是- d c s p l b

注意:ls -F也可以查看文件,但这里的分类不全按照7种类型划分

以*结尾:可执行文件

以@结尾:软连接

以/结尾:目录

其他:普通文件

技术分享图片
[[email protected] 1360]# ls -F /dev/
agpgart          hugepages/  mem                 ram3    sg0       tty18  tty36  tty54    vcs
block/           hvc0        net/                ram4    sg1       tty19  tty37  tty55    vcs1
bsg/             input/      network_latency     ram5    shm/      tty2   tty38  tty56    vcs2
[email protected]           kmsg        network_throughput  ram6    snapshot  tty20  tty39  tty57    vcs3
[email protected]            log=        null                ram7    sr0       tty21  tty4   tty58    vcs4
char/            loop0       nvram               ram8    [email protected]   tty22  tty40  tty59    vcs5
console          loop1       oldmem              ram9    [email protected]    tty23  tty41  tty6     vcs6
[email protected]            loop2       port                random  [email protected]   tty24  tty42  tty60    vcsa
cpu/             loop3       ppp                 raw/    [email protected]   tty25  tty43  tty61    vcsa1
cpu_dma_latency  loop4       ptmx                [email protected]   tty       tty26  tty44  tty62    vcsa2
crash            loop5       pts/                [email protected]    tty0      tty27  tty45  tty63    vcsa3
disk/            loop6       ram0                rtc0    tty1      tty28  tty46  tty7     vcsa4
[email protected]             loop7       ram1                [email protected]   tty10     tty29  tty47  tty8     vcsa5
[email protected]           lp0         ram10               sda     tty11     tty3   tty48  tty9     vcsa6
[email protected]              lp1         ram11               sda1    tty12     tty30  tty49  ttyS0    vga_arbiter
fb0              lp2         ram12               sda2    tty13     tty31  tty5   ttyS1    zero
[email protected]              lp3         ram13               sda3    tty14     tty32  tty50  ttyS2
full             [email protected]    ram14               sda4    tty15     tty33  tty51  ttyS3
fuse             mapper/     ram15               sda5    tty16     tty34  tty52  urandom
hpet             mcelog      ram2                sda6    tty17     tty35  tty53  usbmon0
View Code

普通文件(regular file:-)

普通文件根据存放的内容的不同,又分为如下两种

①文本文件

存放的都是文字编码,文本编辑器打开后,会将这些文字编码翻译为文字图形,以供人识别。这种文件打开后你能看懂

②纯二进制文件(机器码)

比如经过编译后得到的可执行文件,里面放的是cpu执行的纯二进制机器码,由于文编编辑器只认识文字编码,所以用文本编辑器打开后,显示的内容无法是错乱的,无法辨识。这种文件打开后你看不懂。


但是,无论①还是②在计算机中存储时,其实都是以二进制形式存放的,因为计算机只认识0,1。对linux内核而言,这两种文件并无区别,至于文件中的数据如何解释,则由处理这些数据的应用程序(比如文本编辑器)来决定。

Linux针对文件操作提供的API函数,如read,write等,在使用这两种形式的文件时没有任何区别。

 

目录文件(director file:d)

目录是一种特殊的文件,专门用于管理其它文件。

参考:Linux磁盘管理——文件系统

 

字符设备文件(character special file:c)

典型设备:打印机

字符设备文件,就是字符设备驱动程序在上层的表现形式。当应用程序调用底层字符设备驱动程序,实现对某个字符设备进行读写时,上层就需要对接底层的字符驱动程序。类似于抗日剧里面,汉奸是日本人剥削老百姓的代言人一样,字符设备文件是底层字符设备驱动程序的代言人。我们通过open、read、write去读写字符设备文件,就实现了和底层字符设备驱动的交互。

 

块设备文件(block special file:b)



 

 

以上是关于Linux——文件的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段02

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

linux中怎么查看mysql数据库版本

VSCode自定义代码片段——.vue文件的模板

linux下c通过虚拟地址映射读写文件的代码

VSCode自定义代码片段2——.vue文件的模板