3.1 Linux文件系统
3.1.1 Linux 常用文件系统介绍
随着Linux的不断发展,其所能支持的文件系统格式也在迅速扩充。特别是Linux 2.4内核正式推出以后,出现了大量新的文件系统,如日志文件系统ext3、XFS和其他文件系统。Linux系统核心可支持十多种文件系统类型:ext、ext2、ext3、ext4、Minix、ISO9660、NFS、MSDOS、NTFS、smb、SysV等。其中较为普遍的为如下几种。
1)Minux是Linux支持的第一个文件系统,对用户有很多限制,性能低下,有些没有时间标记,文件名最长为14个字符。其最大缺点是只能使用64MB的硬盘分区,所以目前已经没有人使用这个文件系统。
2)ISO 9660标准CDROM文件系统,允许长文件名。
3)NFS(Network File System)是原Sun公司推出的网络文件系统,允许在多台计算机之间共享同一文件系统,易于从所有计算机上存取文件。
4)SysV是System V在Linux平台上的文件系统。
5)ext(Extended Filesystem,扩展文件系统)是随着Linux的不断成熟而引入的,它包含了几个重要的扩展,但提供的性能不令人满意。1994年引入了第二扩展文件系统(Second Extended Filesystem,ext2)。
6)ext3(Third Extended Filesystem)在Red Hat Linux 7.2才开始支持的文件系统,同时也是目前Red Hat Linux默认的文件系统,是ext2的加强版本,在原ext2文件系统上加上了日志功能,它具有以下优点。
●有效性。在系统不正常关机时,早期的ext2文件系统必须先运行ext2fsck程序,才能重新安装文件系统。而ext3文件系统遇到不正常关机时,并不需要运行文件系统检测,这是因为数据在写入ext3文件系统时使用日志功能来维护数据的一致性。
●数据存取速度快。ext3文件系统的数据存取速度高于ext2的主要原因是ext3具有的日志功能可使硬盘读写端的移动达到最佳化。
●易于转移。原有的ext2文件系统可以轻易转移到ext3来获得日志功能,而不需要重新格式化文件系统。
7)ext4是Linux文件系统的一次革命,ext4相对于ext3的进步远远超过ext3相对于ext2的进步。ext3相对于ext2的改进主要在于日志方面,而ext4相对于ext3的的改进是文件系统数据结构方面的优化。它是高效的、优秀的、可靠的文件系统,具有如下特点:
●兼容性强:任何ext3文件系统都可以轻松地迁移到ext4文件系统,可以不格式化硬盘、不重装操作系统、不重装软件环境,只需要几个命令就能够升级到ext4文件系统。
●更大的文件系统:ext3支持最大16TB的文件系统、2TB的文件大小;ext4支持最大1EB的文件系统、16TB的文件大小。
●子目录可扩展性:目前的ext3中,单个目录下的子目录数目的上限是32000个;而在ext4中打破了这种限制,可以创建无限多个子目录。
●多块分配:在ext4中,使用了“多块分配器”,即一次调用可以分配多个数据块,不仅提高了系统的性能,而且使得分配器有了充足的优化空间。
●更快速的FSCK: ex饵不同于ext3,它维护一个未使用的“i节点”表,在进行fsck操作时,会跳过表中节点,只检查正在使用中的i节点。这种机制使得fsck的效率大大提高。
●日志校验:ext4提供校验日志数据的功能,可以查看其潜在错误。而且,ext4还会将ext3日志机制中的“两阶段提交”动作合并为一个步骤,这种改进使ext4在日志机制方面可靠度和性能双重提升。
●在线磁盘整理:ext4将支持在线磁盘整理,e4defrag工具也被用来支持更智能的磁盘碎片整理功能。
8) NTFS是由Windows 2000/XP/2003操作系统支持,特别为网络和磁盘配额、文件加密等安全特性设计的一种磁盘格式。
3.1.2 Linux文件介绍
本节详细介绍了Linux文件系统中文件的定义、文件名的规定以及文件的类型。
1.文件和文件名
文件指具有符号名和在逻辑上具有完整意义的信息集合;文件名是文件的标识,是由字母、数字、下画线和圆点组成的字符串。用户应该选择有意义的文件名,以方便识别和记忆。Linux要求文件名的长度限制在255个字符之内。
为了便于管理和识别,用户可以把扩展名作为文件名的一部分。圆点用于区分文件名和扩展名。以下例子给出一些有效的Linux文件名:
2.文件的类型
Linux系统中有3种基本的文件类型:普通文件、目录文件和设备文件。
(1)普通文件
普通文件是用户最经常使用和熟悉的文件,它又分为文本文件和二进制文件两种。
1)文本文件:这类文件以文本的ASCII码形式存储在计算机中,是以“行”为基本结构的一种信息组织和存储方式。可以编辑也可以修改。
2)二进制文件:这类文件以文本二进制形式存储在计算机中。用户一般不能直接查看它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等。
(2)目录文件
目录文件的主要作用是管理和组织系统中大量的文件,它存储一组相关文件的位置、大小和与文件有关的信息。目录文件一般简称为目录。存放的内容是目录中的文件名和子目录名。
(3)设备文件
Linux系统把每一个I/O设备都看成一个文件,即Linux把对设备的I/O作为普通文件的读取/写入操作,内核提供了对设备处理和对文件处理的统一接口。与普通文件一样处理,可以使文件和设备的操作尽可能统一。从用户的角度来看,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。设备文件又分为块设备文件和字符设备文件,对应于字符设备和块设备。前者是以字符块为单位存取的,后者是以单个字符为单位存取。每一种I/O设备对应一个设备文件,存放在/dev目录中。常用的字符设备有键盘、鼠标;块设备有硬盘、光驱。
(4)链接文件
1)软链接文件。符号链接,仅仅是符号;相当于Windows下的快捷方式图标,源文件与链接文件可以跨越索引点。
2)硬链接文件。符号和内容;链接同一索引点中的文件。
(5)管道文件
前一个命令的输出作为后一个命令的输入。
3.Linux系统中文件颜色的区别
●黑色:普通文件。
●红色:压缩文件。
●蓝色:目录文件。
●浅蓝色:链接文件(软)。
●黄色:设备文件盘(/dev)。
●青绿色:可执行文件(/bin,/sbin)。
●粉红色:图片文件。
3.1.3 Linux目录结构
本节详细介绍Linux系统中树形目录结构、工作目录、用户主目录等主要概念。
1.树形目录结构
计算机中存有大量的文件,有效地组织和管理它们,并为用户提供一个使用方便的接口是文件系统的主要任务。Linux系统是以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树结构组织起来。整个文件系统有一个“根”Root),然后在根上分“杈”(Directory),任何一个分杈上都可以再分杈,杈上也可以长出“叶子”。“根”或“杈”在Linux中被称为“目录”或“文件夹”,而“叶子”则是文件。
实际上,每个目录结点之下都会有一些文件和目录,并且系统在建立每一个目录时,都会自动为它设定两个目录文件,一个是“.”,代表该目录自己;另一个则是“..”,代表该目录的父目录。提示:
对于根目录,“.”和“..”都代表其自身。
Linux目录提供管理文件的一个方便途径。每个目录中都包含文件。用户可以为自己的文件创建自己的目录,也可以把一个目录下的文件移动或复制到另一个目录下,而且能移动整个目录,与系统中的其他用户共享目录和文件。图3-1所示为Linux的树形目录结构。
图3-1 Linux树形目录结构
●/:根目录。Linux系统把所有文件都放在一个目录树里面,/是唯一的根目录。
●/bin,/sbin:这里存放着启动时所需要的普通程序和系统程序。很多程序在启动以后也很有用,它们放在这个目录下是因为它们经常被其他程序调用。
●/dev:这个目录下保存着所有的设备文件。里面有一些是由Linux内核创建的用来控制硬件设备的特殊文件。
●/home:一般用户的主目录都会放在这个目录下。在Linux下,可以通过“cd ~”来进入用户自己的主目录。
●/usr:这是一个很复杂的、庞大的目录。除了上述目录之外,几乎所有的文件都放在这个目录下面。表3-1列举了一些重要的子目录。
表3-1 /usr中一些需要的子目录
●/lib:启动时所需要的库文件都放在这个目录下。非启动用的库文件都会放在/usr/lib下。
●/etc:这个目录下保存着绝大部分的系统配置文件。例如,/etc/init.d这个目录保存着启动描述文件,包括各种模块和服务的加载描述。所以如果不清楚的话,千万不要删除其中的文件,这里存放的文件都是系统自动进行配置的,不需要用户配置。
2.路径
路径是指从树形目录中的某个目录层次到某个文件的一条道路。路径的主要构成是目录名称。Linux使用两种方法来表示文件或目录的位置:绝对路径和相对路径。
绝对路径是从根目录开始依次指出各层目录的名字,它们之间用“/”分隔,如/home/faculty/sarwar/courses/ee446就是一个绝对路径。
相对路径是从当前目录开始(或者用户主目录开始),指定其下层各个文件及目录的方法。如图3-1中,当sarwar登录时,首先进入到它的主目录/home/faculty/sarwar下。在主目录下,用户可以用相对路径./courses/ee446/exams/mid1或者courses/ee446/exams/mid1表示文件mid1。
在树形目录结构中到某一确定文件的绝对路径和相对路径均只有一条。绝对路径是确定不变的,而相对路径则随着用户工作目录的变化而变化。