哲学——一切皆文件

一切皆文件

“一切皆是文件”是 Unix/Linux 的基本哲学之一,它是指 Linux 系统中的所有的一切都可以通过文件的方式访问、管理,即使不是文件,也以文件的形式来管理。例如硬件设备、进程、套接字等都抽象成文件,使用统一的用户接口,虽然文件类型各不相同,但是对其提供的却是同一套操作。
这里的一切是单向的,也即所有的东西都单向通过文件系统呈现,反向不一定可行。比如通过新建文件的方式来创建磁盘设备是行不通的。
提示
不准确但是形象的例子
Linux 系统把硬件设备映射成文件,例如将摄像头映射为 /dev/video,然后就可以使用基本的函数操作它。用 open() 函数连接设备,再用 read() 函数读取图像,最后用 write() 函数保存图像。
而在声卡设备中,read() 函数会变为录音功能,write() 函数变为播放功能。
在 Linux 中共有 7 种类型的文件,分为 3 大类:
  1. 普通文件,包括文本文件和二进制文件
  1. 目录文件(文件夹文件)
  1. 特殊文件链接文件字符设备文件套接字(Socket)文件,用于网络通讯,一般由应用程序创建命名管道文件块文件

查看文件类型

ls 命令

使用 ls -l 命令查看文件时,第一位的符号说明:
符号
意义
普通文件
d
目录文件
l
链接文件
c
字符设备文件
s
套接字(Socket)文件
p
命名管道文件
b
块文件
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP