Linux文件系统的总体概况
一个关于UNIX系统的简单描述是这样的,也适用于Linux:
“在Unix系统中,一切皆文件;除此外就是进程”。
这一说法是正确的,虽然有些特殊的文件,不只是简简单单的文件(例如:管道、套接字),但是为了简变(keep it simple stupid),“一切皆文件”是可以接受的。作为列UNIX,Linux系统没有区分文件和目录,因为目录只是一个包含其他文件名的文件。程序、服务、文本、图像等等,都是文件。对于系统来说,输入输出设备和基本所有的设备都被认为是文件。
为了有序的管理这些文件,人们习惯认为它们在硬盘中是以有序的树状结构存储的,如我们知道的MS-DOS(磁盘操作系统)。大的分支包含更多的分支,而这些分支最后包含的是树的叶子节点或者普通文件。现在我们将使用树形存储结构,但是在以后我们会发现仅仅使用树形结构来描述文件的存储方式是不完全准确。
1.2 各种文件大多数文件只是文件,称为常规文件。它们包含正常的数据,例如文本文件、可执行文件和输入输出程序等等。
虽然把Liunx系统上的一切看做文件是相当安全的,但是也有一些例外。
目录:其他文件的列表(文件)。
特殊文件:用于输入/输出的设备。大多数特殊文件都在/dev目录中,我们稍后将讨论。
链接:对一个文件或目录,可以从系统文件树的多个部分都能访问(指向同一个文件或目录的文件);后面将详细的讨论它。
(域)套接字:一个特殊的文件类型,类似于TCP/IP 套接字,通过文件系统的访问控制提供进程间的网络保护。
命名管道:或多或少有点像套接字,没有未使用网络套接字而建立的一个进程之间相互通信的方式。
ls -l 的结果中,每行的第一个字母表示文件的类型:
jaime:~/Documents> ls -l total 80 -rw-rw-r-- 1 jaime jaime 31744 Feb 21 17:56 intro Linux.doc -rw-rw-r-- 1 jaime jaime 41472 Feb 21 17:56 Linux.doc drwxrwxr-x 2 jaime jaime 4096 Feb 25 11:50 course