如果您是Linux的新手,或者已经使用了几个月,那么你必须听说过或读过诸如“ 在Linux中,一切都是文件 ”之类的陈述。
在 Unix系统或者说是Linux 系统及其衍生出来的系统,一切都可以看做文件。
Linux 系统中文件和目录没有什么不同,但目录还有一个重要的功能,那就是有结构性的分组存储其它文件,以方便查找访问。所有的硬件组件都表示为文件,系统使用这些文件来与硬件通信。
“一切都是文件”这种说法,定义了Linux操作系统的体系结构。这意味着系统中的所有过程(从进程,文件,目录,套接字,管道等)都由一个Linux内核中虚拟文件系统中抽象出来的叫做文件描述符的表示。虚拟文件系统是Linux内核提供的一个接口。
因此,“一切都是文件描述符”这样的描述要更准确些。Linus大神( Linux内核创始人)他又更精确地纠正了这一点:“一切都是字节流”。
是不是不好理解啊?
不管怎么说,我们需要知道的就是:此种体系结构的优点就是,可以在各种资源上使用相同的工具、软件和API。
不过虽都是文件,但是还是有文件类型类型之分。
Linux 系统中有三种基本的文件类型:
-
普通/常规文件 -
特殊文件 -
目录文件
-
可读文件(文本文件,代码文件) -
二进制文件(程序文件) -
图像文件 -
视频文件 -
压缩文件等
ls -l /dev | grep "^b"

ls -l /dev | grep "^c"

ls -l /dev/ | grep "^l"

touch /tmp/file1.txt
ln -s /tmp/file1.txt /home/bruce/file1.txt [创建符号链接文件]
ls -l /home/bruce/ | grep "^l" [列出符号链接文件]
ls -l | grep "^p"

mkfifo pipe1
echo "This is named pipe1" > pipe1
while read line ;do echo "This was passed-'$line' "; done < pipe1
ls -l /run | grep "^s"

ls -l / | grep "^d"
