我要学Linux操作系统第4章Linux文件和磁盘系统4.1Linux文件系统概述4.2文件的基本操作4.3文件权限管理4.4文件操作的图形工具4.5即插即用设备的使用本章概述文件系统是操作系统的重要组成部分,通过对文件系统的管理,操作系统可以方便地存取所需的数据。Linux系统中所有的程序、语言库、系统文件和用户文件都是存放在文件系统之上的,可靠性和安全性是文件系统的重要因素。本章围绕与文件系统管理有关的各个方面展开叙述,分别介绍磁盘分区的管理,Linux文件系统的建立、挂载与管理、文件的基本操作,以及文件存取权限的管理等方面的内容。第4章Linux文件和磁盘系统系统上所有数据的基础。Linux系统是一种兼容性很强的系统,它支持多种文件系统,包括vfat、NTFS、ext2、ext3等。其中vfat文件系统支持读写操作,而NTFS文件系统仅支持读操作。RedhatLinux9默认使用ext3文件系统。第4章Linux文件和磁盘系统4.1Linux文件系统概述文件系统简介文件系统是操作系统设计所需解决的一个重要的问题,下面将介绍文件系统的相关概念。1.什么是文件系统文件系统是操作系统在硬盘或者分区上保持文件信息的方法和数据结构,也就是文件在硬盘或分区上的组织结构方式,也指用于存储文件的磁盘、分区或文件系统种类。简单地讲,文件系统是指按照一定规则组织的文件结构,用于管理机器上的文件和目录,使之能够被有效地存取。在操作系统中,每个文件和目录都被指定了一个文件名,用户按文件名存取文件,而实际上,文件和目录在磁盘中是按照柱面、磁道等物理位置存放的,文件系统能够将操作系统对文件的按名存取转化成按磁盘的物理位置进行读写。4.1Linux文件系统概述4.1.1文件系统简介.常见的文件系统不同的操作系统文件系统的类型一般也不尽相同,常见的有如下几种文件系统:(1)vfat文件系统:分为FAT和FAT32两种,是微软Windows9x/2000/XP/Vista及NT操作系统常用的文件系统,该文件系统对DOS文件系统进行了扩展,提供了对长文件名的支持。(2)NTFS文件系统:是微软WindowsNT起开始使用的文件系统,Windows2000/WindowsXP/Windows2003和Vista都推荐使用这种文件系统。它除了支持文件权限、压缩、加密以及磁盘限额等功能外,还增加了对文件系统日志的支持,能够在操作系统出现故障时,通过日志恢复用户存储在文件系统中的数据,从而最大程度地保证用户数据的安全。在RHL9中,可以通过重新编译内核的方式提供对NTFS文件系统的支持,但目前只支持对该文件系统的只读访问。4.1Linux文件系统概述4.1.1文件系统简介(3)ext2文件系统:是一种高效的文件系统,支持长达255个字符的长文件名。由于它不支持文件系统的日志,而且内存数据在回写到文件系统时通常都存在延时,所以使用这种文件系统时,需要及时在内存和磁盘之间进行数据的同步操作,否则容易造成用户数据的丢失。该系统可以很方便地升级为ext3文件系统。(4)ext3文件系统:是ext2文件系统的增进版本,ext3文件系统继承了ext2系统的高效性,增加了文件系统的日志功能,保证了文件系统的可用性,增加了对文件的完整性保护。在操作系统意外断电或崩溃时,ext3能够利用日志功能快速恢复系统数据。ext3是现在大部分Linux系统默认的文件系统类型,也是RHL9默认使用的文件系统。Linux系统是一种对文件系统兼容性很强的操作系统,它能够支持多种文件系统,支持对FAT、FAT32读写访问,支持对NTFS的只读访问,4.1Linux文件系统概述4.1.1文件系统简介操作系统类似,所有Linux的数据都是由文件系统按照树型目录结构管理的。而且Linux操作系统同样要区分文件的类型,判断文件的存取属性和可执行属性。下面将介绍Linux的文件系统结构以及Linux文件系统的建立、挂载与管理等相关知识。1.Linux的文件系统结构在Windows操作系统中,主分区与逻辑分区被称为驱动器,会被分配一个驱动器盘符(如C盘、D盘、E盘),每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示。4.1Linux文件系统概述4.1.2Linux文件系统Windows文件系统结构相类似,Linux也采用了树状结构的文件系统,它由目录和目录下的文件一起构成。但Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示。4.1Linux文件系统概述4.1.2Linux文件系统Linux文件系统结构其中,“/”目录也称为根目录,位于Linux文件系统目录结构的顶层,必须使用ext文件系统。如果还有其它分区,必须挂载到“/”目录下某个位置。系统目录如下:/:Linux系统的根目录,包含Linux系统的所有目录和文件。/etc:有关系统设备与管理的配置文件。/sbin:存放系统启动时所需的运行程序。/bin:该目录中含有常用的命令文件,不能包含子目录。/boot:操作系统启动时的核心文件。/usr/local:存放用户后期安装的应用程序文件。/root:超级用户主目录。/dev:接口设备文件目录,保存外围设备代号。/mnt:设备文件的挂接点,默认有/mnt/cdrom和/mnt/floppy两个目录,分别用于挂载光驱和软驱。/home:用户的宿主目录,通常将其设置在独立的分区。4.1Linux文件系统概述4.1.2Linux文件系统设备,可能是磁盘,也可能是CD/DVD设备。在Linux中,对于IDE磁盘,使用“hd”表示,并且在“hd”之后使用小写字母表示磁盘编号,磁盘编号之后是分区编号,使用阿拉伯数字表示。主分区的编号依次是1~4,而扩展分区上的逻辑分区编号从5开始。而SATA和SCSI磁盘共同使用“sd”表示。常用存储设备的名称表示如表所示。存储设备设备文件IDE1的主盘/dev/hdaIDE1的从盘/dev/hdbIDE2的主盘/dev/hdcIDE2的从盘/dev/hddIDE1的主盘第一分区/dev/hda1IDE1的从盘第一逻辑分区/dev/hdb5系统的第一个SCSI硬盘/dev/sda软盘驱动器/dev/fd0光盘驱动器/dev/cdrom.管理磁盘分区在安装RHL9的过程中可以使用图形化的DiskDruid工具对磁盘进行分区,系统安装完成后,用户也可以对磁盘分区进行管理。常用的磁盘分区管理工具有fdisk和parted,它们都可以进行创建分区、删除分区、查看分区信息等基本操作,此外parted还可以调整已有分区的尺寸。下面以fdisk为例,讲解磁盘分区方法。以超级用户登录系统,在shell提示符下输入命令启动fdisk:[root@myhostroot]#fdisk/dev/sda其中,/dev/sda是用户要进行分区的磁盘设备名。进入后可在Command(mforhelp)后输入命令m以查看该命令的使用方法,执行结果如图所示。4.1Linux文件系统概述4.1.2Linux文件系统工具运行后,可以通过按下相应的命令键查看磁盘状态,并进行分区的删除和建立等操作。4.1Linux文件系统概述4.1.2Linux文件系统fdisk命令执行结果工具中常用的命令及含义如表所示。命令键含义a设置活动分区d删除一个分区l列出已知的分区类型m显示帮助信息n建立一个新分区o清空分区表p列出现有的分区表信息q退出fdisk命令且不保存更改v校验分区表w保持更改并退出fdisk常用的命令及含义.文件系统的建立要想在分区上存储数据,首先需要建立文件系统。常用的建立文件系统的工具有mkdosfs、mkfs.vfat和mkfs命令来实现。1)mkdosfs命令该命令用于在磁盘或分区中建立dos文件系统,即FAT文件系统,其格式如下:mkdosfs[选项]磁盘设备文件名常用参数及含义表所示。参数含义-c检查磁盘是否存在坏道-lf_name从文件f_name中读初始化的坏块表-nvol_name指定分区的卷标-V输出完整信息文件系统,同时检测磁盘的是否存在坏道,并设置卷标为data。在在终端提示符下使用如下命令:[root@myhostroot]#mkdosfs–c–ndata/dev/sda24.1Linux文件系统概述4.1.2Linux文件系统)mkfs.vfat命令该命令用于在磁盘或分区中建立FAT32文件系统,其基本使用格式如下:mkfs.vfat[选项]磁盘设备文件名常用参数及含义表所示。参数含义-c检查磁盘是否存在坏道-lf_name从文件f_name中读初始化的坏块表-V输出完整信息mkfs.vfat常用参数及含义)mkfs命令该命令允许根据用户的选择建立相应的文件系统,同mkdosfs、mkfs.vfat等命令类似,但功能更强大。其格式如下:mkfs[选项]磁盘设备文件名[块大小]常用参数及含义如表所示。参数含义-V输出完整信息-tfs_type指定创建的文件系统类型,默认的是ext2-c检查磁盘是否存在坏道-lf_name从文件f_name中读初始化的坏块表mkfs常用参数及含义在分区/dev/sda3上建立ext3文件系统。在终端提示符下输入如下命令:[root@myhostroot]#mkfs–c-V–text3/dev/sda3该命令,在建立文件系统的同时,还进行了磁盘坏道的检查。5.文件系统的挂载与卸载在Windows下,文件系统创建后,就可以通过系统分配的盘符来使用该磁盘。但在Linux系统中,文件系统创建后,还需将其安装到Linux目录树的某个位置上才能使用,这个过程称为挂载,文件系统所挂载到的目录称为挂载点。文件系统使用完毕,还可对其进行卸载。)挂载文件系统在Linux系统中,磁盘设备被挂接到一个已存在的目录上,以后的磁盘的存取就变成了对该挂接目录的读写访问。通常选择已存在的空目录作为挂接目录,因为如果挂接目录已经包含文件,在挂接操作完成后,原文件将临时被挂接磁盘中的文件覆盖,直到从系统中卸载该磁盘为止。文件系统的挂载,可以在系统引导过程中自动加载,也可以使用命令手工挂载。文件系统使用命令手工挂载挂载文件系统的命令为mount,该命令语法如下:mount[选项][设备文件名][挂接点]常用参数及含义如表所示。参数含义-tfs_type指定需挂接的磁盘的文件系统类型-ooption用于指明挂载的某些具体选项,常用的option有ro:以只读方式挂载