Red Hat Enterprise Linux 6.4网络操作系统详解
上QQ阅读APP看书,第一时间看更新

5.1 任务1 全面理解文件系统与目录

文件系统(File System)是磁盘上有特定格式的一片区域,操作系统利用文件系统保存和管理文件。

5.1.1 子任务1 认识文件系统

不同的操作系统需要使用不同的文件系统,为了与其他操作系统兼容,通常操作系统都支持很多种类型的文件系统。例如,Windows 2003操作系统推荐使用的文件系统是NTFS,但同时兼容FAT等其他文件系统。

Linux系统使用ext2/ext3文件系统。在Linux系统中,存储数据的各种设备都属于块设备。对于磁盘设备,通常在0磁道第一个扇区上存放引导信息,称为主引导记录(MBR),该扇区不属于任何一个分区,每个分区包含许多数据块,可以认为是一系列块组的集合。在磁盘分区上建立ext2/ext3文件系统后,每个块组的结构如图5-1所示。

图5-1 ext文件系统中块组的结构

ext文件系统结构的核心组成部分是超级块、索引节点表和数据块。超级块和块组描述符中包含关于该块组的整体信息,例如索引节点的总数和使用情况、数据块的总数和使用情况以及文件系统状态等。每一个索引节点都有一个唯一编号,并且对应一个文件,它包含了针对某个具体文件的几乎全部信息,例如,文件的存取权限、拥有者、建立时间以及对应的数据块地址等,但不包含文件名称。在目录文件中包含文件名称以及此文件的索引节点号。索引节点指向特定的数据块,数据块是真正存储文件内容的地方。

Red Hat Linux是一种兼容性很强的操作系统,它能够支持多种文件系统,要想了解其支持的文件系统类型,在Red Hat Enterprise Linux 6.4中通过“ls/lib/modules/2.6.32-358.el6.x86_64/kernel/fs”命令可以查看Linux系统所支持的文件系统类型。注意,上面命令中“2.6.32-358.el6”根据不同版本会略有不同。下面介绍几种常用的文件系统。

1.ext文件系统

ext文件系统在1992年4月完成。称为扩展文件系统,是第一个专门针对Linux操作系统的文件系统。ext文件系统对Linux的发展发挥了重要作用,但是在性能和兼容性方面有很多缺陷,现在已很少使用。

2.ext2、ext3文件系统

ext2文件系统是为解决ext文件系统的缺陷而设计的可扩展的高性能文件系统,也被称为二级扩展文件系统。ext2文件系统是在1993年发布的,设计者是Rey Card。它在速度和CPU利用率上都有突出优势,是GNU/Linux系统中标准的文件系统,支持256个字节的长文件名,文件存取性能很好。

ext3是ext2的升级版本,兼容ext2。ext3文件系统在ext2的基础上增加了文件系统日志记录功能,被称为日志式文件系统。该文件系统在系统因出现异常断电等事件而停机重启后,操作系统会根据文件系统的日志快速检测并恢复文件系统到正常的状态,可以加快系统的恢复时间,提高数据的安全性。

ext3其实只是在ext2的基础上增加了一个日志功能,而ext4的变化可以说是翻天覆地的,比如向下兼容ext3、有最大1EB的文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。

从Red Hat Linux 7.2版本开始,默认使用的文件系统格式就是ext3。日志文件系统是目前Linux文件系统发展的方向,除了ext3之外,还有reiserfs和jfs等常用的日志文件系统。从2.6.28版本开始,Linux Kernel开始正式支持新的文件系统ext4,在ext3的基础上增加了大量新功能和特性,并能提供更佳的性能和可靠性。

3.swap文件系统

swap文件系统是Linux的交换分区所采用的文件系统。在Linux中使用交换分区管理内存的虚拟交换空间。一般交换分区的大小设置为系统物理内存的2倍。在安装Linux操作系统时,必须建立交换分区,并且其文件系统类型必须为swap。交换分区由操作系统自行管理。

4.vfat文件系统

vfat文件系统是Linux下对DOS、Windows操作系统下的FAT16和FAT32文件系统的统称。Red Hat Linux支持FAT16和FAT32格式的分区,也可以创建和管理FAT分区。

5.NFS文件系统

NFS即网络文件系统,用于UNIX系统间通过网络进行文件共享,用户可以把网络中NFS服务器提供的共享目录挂载到本地目录下,可以像访问本地文件系统中的内容一样访问NFS文件系统中的内容。

6.ISO 9660文件系统

ISO 9660是光盘所使用的标准文件系统,Linux系统对该文件系统有很好的支持,不仅能读取光盘中的内容,而且还可以支持光盘刻录功能。

5.1.2 子任务2 理解Linux文件系统的目录结构

Linux的文件系统是采用阶层式的树状目录结构,在该结构中的最上层是根目录“/”,然后在根目录下再建立其他的目录。虽然目录的名称可以定制,但是有某些特殊的目录名称包含重要的功能,因此不能随便将它们改名,以免造成系统的错误。

在Linux安装时,系统会建立一些默认的目录,而每个目录都有其特殊的功能,表5-1是这些目录的简介。

表5-1 Linux中的默认目录功能

5.1.3 子任务3 理解绝对路径与相对路径

了解绝对路径与相对路径的概念。

• 绝对路径:由根目录(/)开始写起的文件名或目录名称,例如,/home/dmtsai/basher。

• 相对路径:相对于目前路径的文件名写法。例如,“./home/dmtsai”或“../../home/dmtsai/”等。

技巧:开头不是“/”的就属于相对路径的写法。

相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在/home这个目录下,如果想要进入/var/log这个目录时,应怎么写呢?有两种方法。

• cd /var/log(绝对路径)

• cd ../var/log(相对路径)

因为你目前在/home目录下,所以要回到上—层(../)之后,才能进入/var/log目录。特别注意两个特殊的目录。

•.:代表当前的目录,也可以使用./来表示。

•..:代表上—层目录,也可以用../来代表。

这个“.”和“..”目录的概念是很重要的,你常常看到的“cd..”或“./command”之类的指令表达方式,就是代表上一层与目前所在目录的工作状态。