为何linux一切皆文件

1 引言

· 本文作为linux文件的基础介绍,是linux文件系列的开篇,主要面向想深入学习linux的小伙伴,最后的延伸学习部分给出了学习建议。
· 首先开门见山,给出结论:因为linux将文件作为一切可用资源的使用接口.“一切资源”包括内存、磁盘、其他各种设备、进程间的通信,还有网络通信。这是一种简化的思想,把一切资源都简化为文件展示出来,将这些对资源的操作简化为对文件的操作。
· 下面探究这个结论如何得出:

2.文件类型

通过linux文件有如下几种类型,在Linux下可用ls –al来查看:

文件描述符 解释
-rw-r—r— 指明了该文件是一个普通文件,以”-“开头的都是普通文件,而以”d”开头的是目录文件
brw-rw---- 指明了/dev/sda1是一个块设备(Block Device)文件。以”b”开头的文件都是块设备文件。
crw-rw---- 指明了/dev/ttyS0是一个字符设备(Chartacter Device)文件,以”c”开头的文件都是字符设备文件。
srwxrwxrwx 指明了这是一个socket文件。以””开头的文件都是指明了socket文件
prwxr—r– 指明了了该文件是一个管道文件。管道文件的一个属性是”p”。
lrwxrwxrwx 指明了该文件是一个软链接文件(或称符号链接文件),该文件指向了另一个文件。以”l”开头的文件是软链接文件。
-rw-r—r— 该文件看上去是个普通文件,但它实际上是一个硬链接文件
-rwsr-xr-x 指明了该文件是一个setUid可执行文件,这是根据第四个字符”s”判断的。
-rwxr-sr-x 指明了该文件是一个setGid可执行文件,这是根据第七个字符中的”s”判断的。

上述文件中,普通文件和硬链接文件并无什么区别,软连接文件只是指向了一个普通文件,所以把这些都认为是普通文件了;而块设备文件和字符设备文件统称为设备文件;socket文件和管道文件都是用作进程间通信的,只不过socket文件可以用在不同系统间的两个进程来通信,统称为通信文件。而最后两个是可以影响用户执行权限的文件,只是在普通文件上做了标记,这里不做深究,想了解的见 Linux 文件特殊权限详解[suid/sgid/t]

3.文件解析图

· 这里将文件的操作简化成一个图来描述:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值