文件系统
文件:存放一切数据化信息的仓库
文件系统:文件系统对文件的管理,如同国家对人民的管理一样
LINUX的文件分为:常规文件、目录文件、设备文件、管道文件、连接文件
文件的存取权限和文件模式
为了保护文件信息的安全,LINUX设置了文件保护机制,其中之一就是给文件都设定了一定得访问权限。当文件被访问时,系统首先检验访问者的权限,只有与文件的访问权限相符时才允许对文件进行访问。
LINUX中的每个文件都归一个特定的用户所有,而且一个用户一般总是与某个用户组相关.LINUX对文件的访问设定了三级权限:文件所有者、与文件所有者同组的用户、其他用户。对文件的访问主要有三种方式:读、写、执行。
LINUX系统中每个分区都是一个文件系统,都有自己的目录层次结构。LINUX会将这些分属不同分区的、单独的文件系统按一定得方式形成一个系统的总的目录层次结构。
虚拟文件系统
LINUX系统具有开放性,其中之一就是他必须包含各种不同的文件系统。为此,就必须将各种不同的文件系统的操作和管理纳入到一个统一的框架中,使用用户程序可以通过同一个文件系统界面,也就是同一组系统调用,能够对各种不同的文件系统以及文件进行操作。这样,用户程序就可以不关心各种不同文件系统的实现细节,而使用系统提供的统一、抽象、虚拟的文件系统界面。这种统一的框架就是所谓的虚拟文件系统。
虚拟文件系统所提供的抽象界面主要是由一组标准的、抽象的操作构成,例如read()、write().等,这些函数以系统调用的形式供用户程序调用。
VFS承担着管家的角色,那么他到底要管什么对象?虚拟文件系统中四个主要的对象:
(1)超级块对象:描述已安装的文件系统
(2)索引节点对象:描述一个文件
(3)目录项对象:描述一个目录项是路径的组成部分
(4)文件对象:描述由进程打开的文件
软连接和硬链接
连接命令ln对一个已存在的文件建立一个连接,而不是复制文件的内容。ln是将两个文件名连接在起来,使得用户无论使用哪一个文件名都可以访问到同一文件。连接有软连接和硬链接之分。
硬链接就是让一个文件对应一个或者多个文件名,这些文件名可以在同一目录下或者不同目录下。一个文件有几个目录名我们就说这个文件的连接数为几。
硬链接有两个限制:(1)不允许给目录创建硬链接(2)只有在同一文件系统中的文件直接才能建立连接
ln my.c myhlink.c
ls -i
my.c和myhlink.c有相同的索引结点号。
为何克服硬链接的两个限制,我们引入了符号连接,符号链接实际上是一种特殊的文件,这种文件包含了另一个文件的任一一个路径名。这个路径名指向位于任意一个文件系统的任意文件甚至可以指向一个不存在的文件。
ln -s my.c myslink.c
ls -li
my.c和myslink.c具有不同的索引结点号,myslink.c中存放的是my.c的路径名。于是在列目录中显示有myslink.c->my.c,表示myslink.c只是符号连接文件,指向的实际文件为my.c.