目录
1、文件结构
1.2文件的组成
无论文件是一个程序、一个文档、一个数据库,还是一个目录(文件是Linux操作系统处理信息的基本单位,所有软件都组织成文件。“一切皆文件”)操作系统都会赋予它如下结构:
①索引结点:又称为I结点,是文件系统结构中包含相应文件信息的一个记录。这些信息包括文件权限、文件大小等。
②数据:指文件的实际内容,可以是空,也可以非常大,并且有自己的结构。
1.2文件命名规则
1.Linux的文件名由ASCII字符构成、长度最多可达255个字符。
2.除了“/”和空字符,因为这两个字符被核心当作表示路径名的特殊字符来解释。
3.应避免使用;| < > ` " ' $ ! % & * ? \ ( ) [ ]这几个字符,因为对系统的shell来说,他们有特殊的含义,此外,要避免使用空格、制表符或其他控制字符。
4.同类文件应使用同样的后缀或拓展名。
5、Linux系统区分文件名的大小写。
6.以 “.”开头的是隐含文件,在默认情况下,使用 ls 命令并不能把它们显示出来。
2、文件类型
2.1普通文件
普通文件的内容包含了各种长度的字符串。核心对这些数据没有进行结构化,只是作为有序的字符序列把他提交给应用程序。通常有以下几种类型:
①文本文件:由ASCII字符构成。例如,信件、报告和称为脚本(Script)的命令文本,后者由shell解释执行。
②数据文件:由数字型和文本型数据构成,例如,电子表格,数据库及字处理文档。
③可执行的二进制文件:由机械指令和数据构成,例如一些系统命令。命令文本文件也是可以执行的。
可以使用file命令来指定文件的类型。使用格式:file 文件名 [文件名……]
2.2目录文件
目录文件可以构成文件系统的分层树形结构。和普通文件一样,目录文件也包含数据,但是与普通文件不同的是:核心对这些数据进行了结构化处理,即它是由成对的“I结点号/文件名”构成的列表。(I节点号是检索I结点表的下标,可查看本文章第1部分“文件结构',进一步了解I结点)
每个目录的第一项都表示目录本身,并以 “.” 作为它的文件名。每个目录的第二项的文件名是 “..” ,表示该目录的父目录。
注意:以“.”开头的文件名是隐含文件,可以使用 ls -a 命令列出它们。
当把文件添加的目录中时,该目录的大小会增加。当删除文件时,目录的大小并不减少,而是由核心对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。ls 命令不会列出这些未被使用的项。
2.3设备文件
设备文件除了在其文件I结点中存放属性信息,它不包含任何数据,系统利用该类文件来标记各设备驱动器,核心使用它们与硬件设备通信,通常设备文件存放在/dev目录下。
设备文件有两种类型,分别对应不同类型的设备驱动器:
①字符设备:允许I/O传输任意大小的数据,大小取决于设备本身的容量。使用这种接口的设备包括终端、打印机及鼠标。
②块设备:利用核心缓冲区的自动缓存机制。缓冲区进行I/O传输时使用kb为单位。使用这种接口的设备包括硬盘、软盘、RAM盘。
tty命令可以显示当前正在使用的终端文件。
2.4符号链接文件
符号链接文件提供对其他文件的参照。它们存放的数据是文件系统中通向文件的文件路径。当使用符号链接文件时,核心会自动访问所保存的这个路径。