570 likes | 774 Views
第五章 文件系统与文件管理. 刘淑蓉. 5-1 文件系统概述. Linux 的基本文件系统 Linux 中保存数据的磁盘分区通常采用 ext2 或 ext3 文件系统,实现虚拟存储的 Swap 分区则采用 swap 文件系统 ext 文件系统继承了 UNIX 文件系统的主要特色,采用三级索引结构和目录树型结构,并将设备作为特别文件处理。 Linux 支持的文件系统 Linux 采用虚拟文件系统技术,可支持多种常见的文件系统,如: msdos vfat sys V nfs iso9660. 文件系统的挂载与卸载.
E N D
第五章 文件系统与文件管理 刘淑蓉
5-1文件系统概述 • Linux的基本文件系统 Linux中保存数据的磁盘分区通常采用ext2或ext3文件系统,实现虚拟存储的Swap分区则采用swap文件系统 ext文件系统继承了UNIX文件系统的主要特色,采用三级索引结构和目录树型结构,并将设备作为特别文件处理。 • Linux支持的文件系统 Linux采用虚拟文件系统技术,可支持多种常见的文件系统,如:msdos vfat sys V nfs iso9660
文件系统的挂载与卸载 • 挂载:将存储介质的内容映射到指定的目录中,此目录即为该设备的挂载点。对存储介质的访问就变成对挂载点目录的访问。一个挂载点只能挂载一个设备。 • 通常硬盘上的各个磁盘分区教会在Linux的启动过程中自动挂载到指定的目录,并在关机时自动卸载。而移动介质可以在需要时手动挂载,且使用完后必须经过正确的卸载后才能取出。 • 移动存储介质是否在启动时自动挂载,取决于/etc/fstab文件的内容。
fstab文件 fstab文件中一行表示一个文件系统,每个文件系统的信息用六个字段表示。 • 设备逻辑名 “LABEL=磁盘分区名”表示硬盘上的磁盘分区,通常分区名与挂载点目录保持一致。根分区一定挂载到根目录,否则无法启动计算机。 • 挂载点 指定文件系统在系统中的挂载位置,其中Swap分区不需要指定挂载点。
fstab文件 • 文件系统类型 指定每个文件系统所采用的文件系统类型,如果设置为auto则表示按照文件系统本身的类型进行挂载。 • 命令选项: defaults:按缺省值挂载,即自动挂载,且可读可写 noauto:手动挂载 auto:自动挂载 ro:只读 rw:可读可写
光盘(软盘)的使用 • 所有的外存,在使用前一定要“挂载”到Linux系统里,对可移动存储起来说,在使用前要被挂载到某一个目录里面。 • 设备在使用完成后要取出,就必须先卸载,也就是“取消挂载”
mount命令 mount 装载一个文件系统 常用命令格式: • mount -t fstype 设备名 挂载路径 例如: • 1、将光驱挂载:mount /dev/cdrom (默认将挂载到/mnt/cdrom目录) • 2、将软驱挂载:mount /dev/fd(默认将挂载到/mnt/floppy目录) • 3、将fat格式的 /dev/hda5挂载到 /mnt/c目录下:mount -t vfat /dev/hda5 /mnt/c
umount命令 umount 卸载一个文件系统 常用命令格式: • umount 设备名|目录 注意:卸载之前要保证准备卸载的设备中的文件没有被使用,并且当前工作目录不在其挂载的目录中 例如: • 1、卸载cdrom光驱:umount /dev/cdrom • 2、卸载 /dev/hda5分区: umount /dev/hda5
磁盘空间检查命令 硬盘空间检查: • df –k 命令 • fdisk –l 命令 内存空间检查: • free命令
df命令 • 格式: df [选项] • 功能:显示文件系统的相关信息 • 主要选项: -a (all) 显示全部文件系统的使用情况 -t (type) 仅显示指定文件系统类型的使用情况 -x (except) 反显,显示除指定文件系统类型外的其它文件系统使用情况 -h (human) 以易读的方式显示文件系统的使用情况
mkfs 命令 • 格式:mkfs [选项] 设备 • 功能:在磁盘上建立文件系统,也就是进行磁盘格式 化 • 主要选项: -t 文件系统类型(type) 建立指定的文件类型,默认值为ext2 -c (check) 建立文件系统前首先检查磁盘
fsck 命令 • 格式: fsck 设备 • 功能: 检查并修复文件系统
5-3 文件系统的配额管理 • 文件系统配额是一种磁盘空间的管理机制。使用文件系统配额可限制用户或组群在某个特定文件系统中所能使用的最大空间。 • 根据限制对象的不同,可分为用户级和组群级的配额管理。配额管理文件保存于实施配额管理的那个文件系统挂载的目录中,其中aquota.user文件保存用户级配额的内容,aquota.group文件保存组群级配额的内容. • 根据配额特性的不同,可分为硬配额和软配额。 • 硬配额是用户和组群可使用空间的最大值,用户在操作过程中一旦超出硬配额的界限,系统就发出警告信息,并立即结束写入操作
软配额也定义用户和组群的可使用空间,但系统允许软配额在过渡期内被超过(过渡期默认为7天),过渡期到期后,若用户使用的空间仍超过软配额,那么用户就不能写入更多文件。软配额也定义用户和组群的可使用空间,但系统允许软配额在过渡期内被超过(过渡期默认为7天),过渡期到期后,若用户使用的空间仍超过软配额,那么用户就不能写入更多文件。 • 说明: 1、通常硬配额大于软配额; 2、只有采用Linux文件系统的磁盘分区才能进行配额管理; 3、通常对/、/boot、/mnt/cdrom等文件系统不进行配额管理。
设置文件系统配额 • 编辑/etc/fstab文件,指定实施配额管理的文件系统及期实施何种配额管理; • 执行quotacheck命令检查进行配额管理的文件系统,并创建配额管理文件; • 利用edquota命令编辑配额管理文件 • 启动配额管理。
配额管理命令 • quotacheck命令 • edquota命令 • quota命令 • quotaon 命令
5-4 文件概述 • /bin bin是Binary的缩写。这个目录存放着最经常使用的命令。 • /boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。 • /dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 • /etc这个目录用来存放所有的系统管理所需要的配置文件和子目录。 • /home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 • /lib这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 • /mnt在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。 • /proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。 • /root该目录为系统管理员,也称作超级权限者的用户主目录 • /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 • /tmp这个目录是用来存放一些临时文件的。
我们要用到的很多应用程序和文件几乎都存放在usr目录下。具体来说: • /usr/X11R6存放X-Windows的目录; • /usr/games存放着XteamLinux自带的小游戏; • /usr/bin存放着许多应用程序; • /usr/sbin存放root超级用户使用的管理程序; • /usr/doc Linux技术文档; • /usr/include用来存放Linux下开发和编译应用程序所需要的头文件; • /usr/lib存放一些常用的动态链接共享库和静态档案库; • /usr/local这是提供给一般用户的/usr目录,在这里安装一般的应用软件; • /usr/man帮助文档所在的目录; • /usr/src Linux开放的源代码,就存在这个目录。 • /var这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
5-4-2 文件分类 • Linux支持的文件类型主要包括一下7类,箭头右面的字符就是相应的文件类型位标志:1、普通文件========>-2、目录文件========>d3、符号连接========>l4、字符设备文件====>c5、块设备文件======>b6、命名管道FIFO7、套接口socket
文件类型: 1、普通文件:用户最常用的文件,分为二进制文件和文本文件。二进制文件一般存储图形、图像、声音和可执行程序。 比如用‘vi myfile’建立的myfile就是普通文件,比如可执行二进制代码文件、ASCII文本文件、数据文件、配置文件2、目录文件:目录可以理解成放其它文件和/或其它目录的容器,是一种特殊文件,其内容由目录项组成,每个目录项主要包括两部分内容:文件名name和索引节点号inode 3、链接文件4、设备文件: 存放I/O设备信息的文件
Linux下的设备文件分为三大类:字符设备、块设备和网络设备Linux下的设备文件分为三大类:字符设备、块设备和网络设备 • 字符设备是直接读取的,不使用缓冲区,像串行口、终端等; • 块设备都是通过缓冲区进行读取的,并且每次只能读取一定数量的块,比如磁盘每次至少要读取一个扇区(如512字节),块设备可以实现随机读写; • 网络设备即前面提到的socket
5-4-3 文件名 • 文件名是一个文件的标识。从这个角度来说,文件名的规则与Windows 9x下的是基本上相同的。它同样是由字母、数字、下划线、圆点组成,最 大的长度是255个字符。 • 扩展名:Linux不强调扩展名的作用,以文件内容判别文件类型,文件可以没有扩展名。 • 系统文件:.rpm .conf .cfg .deb .lock • 压缩文件:.zip .tar .gz .bz2 • 程序和脚本文件:.c .cpp .o .so .sh • 多媒体文件:.gif .jpg .png .htm .html .wav
5-5 文件权限 • 基本权限: • r (read):浏览文件 / 目录中内容 • w (write):修改文件内容 / 删除、添加或重命名目录内文件 • x (execute):执行文件 / 进入目录 • 三种用户对象: • 文件所有者(user/owner):文件的所有者,一般是建立文件或目录的用户 • 组用户(group):文件所属组群中的所有用户 • 其他用户(other):除了文件所有者和组用户之外的其他用户
访问权限的表示法 • 字母表示法 lrwxr-xr-x 1 zyd users 15 Oct 23 10:40 sym_link->/tmp/sym_target • 数字表示法 LINUX用一个3位二进制数对应着文件的3种权限(1表示有该权限,0表示无): 第1位 读 r 100 4 第2位 写 w 010 2 第3位 执行 x 001 1
常见权限 -rw------- (600) 只有所有者才有读和写的权限 -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 -rwx------ (700) 只有所有者才有读,写,执行的权限 -rwxr-xr-x (751) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 -rw-rw-rw- (666) 每个人都有读写的权限 -rwxrwxrwx (777) 每个人都有读写和执行的权限,最大权限
权限设置 • chmod命令 • 设置文件/目录的权限>> • chown命令 • 改变文件和目录的所有权>> • chgrp命令 • 改变文件和目录的组用户>>
文件的权限设置 • 一个文件的权限属性表示一般为: 组用户权限 其他 用户权限 所有者权限
chmod命令 语法格式: • chmod[选项] 文件和目录列表 • 两种方法: • (1)使用字符串设置权限 如:chmod a[u|o|g]+x file1 • (2)使用八进制数设置权限三位八进制数字分别代表:u(user:用户)、g(group:组用户)、o(other:其他用户)的权限。可读权限、可写权限和可执行权限所对应的数值分别是4,2和1。 • 若要rwx属性则4+2+1=7; • 若要rw-属性则4+2=6; • 若要r-x属性则4+1=5 • 如:chmod 755 file1
chown和chgrp命令 • 语法格式: • chown[选项] 用户 文件和目录列表 • 作用:改变文件和目录的所有权 • chgrp [选项] 组名 文件和目录列表 • 作用:改变文件和目录的组用户 • 注意:三个权限命令都可以使用“-R”参数实现目录权限递归的设置。
文件打包命令tar tar可以对文件和目录进行打包。利用tar,用户可以对某一特定文件进行打包(一般用作备份文件),也可以在包中改变文件,或者向包中加入新的文件。 命令格式: tar [主选项+辅选项] 压缩包名称 【文件或者目录】
tar命令的主选项的常用选项 • -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 • -x 从档案文件中释放文件。 • -r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。 • -t 列出档案文件的内容,查看已经备份了哪些文件。 • -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
文件打包命令tar tar命令的辅助选项的常用选项 • f 使用档案文件或设备,这个选项通常是必选的。 • v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。 • K 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。 • m 在还原文件时,把所有文件的修改时间设定为现在。 • M 创建多卷的档案文件,以便在几个磁盘中存放。 • z 用gzip来压缩/解压缩文件 • j 用bzip2来压缩/解压缩文件
常用tar命令组合 1、将 /sec 目录打包到文件sec.tar: • tar cvf sec.tar /sec 2、将sec.tar解压缩(注意,解压缩将会将压缩文件的目录变为相对目录后释放到当前目录下) • tar xvf sec.tar 3、提取部分文件: • tar xvf sec.tar sec/tmp1 //提取/sec目录下的tmp1文件 4、将 /sec 目录打包并使用gzip压缩到文件sec.tar.gz: • tar cvzf sec.tar.gz /sec
gzip命令 • 格式: gzip [选项] 文件|目录 • 功能: 压缩/解压缩文件,压缩后产生.gz的压缩文件,并删除源文件。 • 选项: -d (decompress) 解压缩文件 -r(recursive) 按目录结构递归压缩 -v 显示文件的压缩比例
gzip 与 gunzip命令 • 语法格式gzip [选项] 压缩(解压缩)的文件名 • gzip默认将源文件压缩为.gz文件,并删除源文件 • 常用选项-d 对压缩文件进行解压缩,相当于使用gunzip命令。-l 对每个压缩文件,显示字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字-r 递归式查找指定目录,并压缩或者解压缩其中的所有文件。-t 检查压缩文件是否完整-v 对每个压缩和解压缩的文件,显示文件名和压缩比-num 用指定的数字num设置压缩比,-1或-fast表示最低压缩比,-9或-best表示最高压缩比。系统默认值是6 。
例如:将当前目录下,wpc.bmp压缩,命令如下:gzip -v wpc.bmp • 例如:将当前目录下wpc.bmp.gz解压缩,命令如下:gunzip -d wpc.bmp.gz命令结果:wpc.bmp.gz被解压缩,并被删除,出现wpc.bmp
bzip2 • 语法格式bzip2 [选项][-压缩等级] 压缩文件名 • 功能:压缩/解压缩文件,压缩后产生扩展名为.bz2的压缩文件,并删除源文件,没有归档功能。 • 常用选项-d 或 --decompress 执行解压缩-v 或 --verbose 压缩或解压缩文件时,显示详细的信息 • 例如:使用bzip2压缩当前目录下的归档文件wpc.tar,命令如下bzip2 wpc.tar • 例如:解压缩当前目录下wpc.tar.bz2,命令如下:bzip2 -d wpc.tar.bz2 • 注:bunzip2和bzip2 -d效果相同
zip命令 • 格式: zip [选项] 压缩文件 文件列表 • 功能:可将多个文件归档后压缩,默认显示压缩比例,不删除源文件 • 主要选项: -m 压缩完成后删除源文件 -r 按目录结构递归压缩目录中的所有文件 • 例如:将当前目录下,wpc子目录下面的所有内容压缩成wpc.zip,命令如下:zip wpc.zip wpc/*
unzip语法格式unzip [选项] 压缩文件名.zip • 常用选项-v 查看压缩文件目录,但不解压-t 测试文件有无损坏,但不解压-d 目录 把压缩文件解压到指定目录下-n 不覆盖已经存在的文件-o 覆盖已存在的文件且不要求用户确认-j 不重建文档的目录结构,把所有文件解压到同一目录下 • 例如:将当前目录下wpc.zip解压缩,命令如下:unzip wpc.zip
RPM RPM(Red Hat Package Manager)是Red Hat公司定义的一种软件包的安装和管理程序。打包为RPM包的软件可以不用编译,直接以Binary格式进行安装。 RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 命令格式: rpm 选项 [软件包路径/名称]
一、 安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括 软件包的名称(foo),版本号(1.0),发行号(1), 和 硬件平台(i386)。安装一个软件包只需简单的键入以下命令: $ rpm -ivh foo-1.0-1.i386.rpm foo #################################### RPM安装完毕后会打印出软件包的名字(并不一定与文件名相同), 而后打印一连串的#号以表示安装进度。
一、 安装RPM包 • 格式: rpm –i[选项] 软件包文件 • 功能:安装rpm软件包 • 主要选项: -v 显示安装过程 -h 用 “#”符号来反映安装进度 --replacepkgs 重复安装软件包
二、安装RPM包-软件包已被安装 如果的软件包已被安装, 将会出现以下信息: $ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed 如果仍旧要安装该软件包,可以在命令行上使用--replacepkgs 选项,RPM将忽略该错误信息强行安装。 $ rpm -ivh foo-1.0-1.i386.rpm --replacepkgs
三、安装RPM包-文件冲突 如果要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息: # rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed 要想让RPM 忽略该错误信息, 请使用--replacefiles 命令行选项。 # rpm -ivh foo-1.0-1.i386.rpm --replacefiles
四、安装RPM包-未解决依赖关系 RPM软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。如果在您安装某个软件包时存在这种未解决的依赖关系。会产生以下信息: $ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1 必须安装完所依赖的软件包,才能解决这个问题。如果想强制安装(安装后的软件包未必能正常运行), 请使用--nodeps 命令行选项。 $ rpm -ivh bar-1.0-1.i386.rpm --nodeps
五、卸载RPM包 命令: $ rpm -e foo 注意这里使用软件名称name `foo`, 而不是软件包文件的名字file `foo-1.0-1.i386.rpm`。如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1 若让RPM忽略这个错误继续卸载(依赖于该软件包的程序可能无法运行),请使用--nodeps 命令行选项。
六、升级RPM包 升级软件包命令:. # rpm -Uvh foo-2.0-1.i386.rpm foo #################################### RPM将自动卸载已安装的老板本的foo 软件包,不会看到有关信息。事实上您可能总是使用 -U 来安装软件包,也能正常运行。因为RPM执行智能化的软件包升级,自动处理配置文件,系统可能提示: saving /etc/foo.conf as /etc/foo.conf.rpmsave 。这表示对配置文件的修改不一定能向上兼容。 因此,RPM 会先备份老文件再安装新文件。 另一个可能碰到的问题是:当使用旧版本的软件包来升级新版本的软件时,RPM会产生以下错误信息: # rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed 如果确有需要将该软件包降级,加入 --oldpackage 命令选项就可以了。
七、查询已安装的软件包 可以使用命令:rpm -q来查询已安装软件包的数据库。 格式: rpm -q[选项] 软件包 选项: -l 查询已安装软件包所含的所有文件 -i 查询已安装软件包的详细信息 简单的使用命令 rpm -q foo 会打印出foo软件包的包名,版本号和发行号: # rpm -q foo foo-2.0-1 除了指定软件包名以外,还可以使用以下选项来指明要查询哪些软件包的信息。 这些选项被称之为“软件包指定选项”。格式: rpm -q[选项] • -a 查询所有已安装的软件包
八、验证RPM软件包 • 格式: rpm –V 软件包 或 rpm –V[选项] • 功能:验证软件包是否正常 • 主要选项: -a 验证所有已安装的软件包 -f 验证指定文件所属的软件包