Anda di halaman 1dari 133

Linux 文件系统与文件 管理

基础内 容介绍 文
件 第
案例 一及其 相关 内容 系 三

案例 二及其 相关 内容
与 章
案例 三及其 相关 内容 文

课程 总结与 操作 实训 管
课后习 题 理
Linux 文件系统与文件 管理

本章教学目标:

掌握文 件、目 录的 操作命 令及 VI 的使 用


熟悉文 件系统 的相 关知识
了解 Linux 文件 系统
Linux 文件系统与文件 管理

重点:
Linux 文件系 统的 操作,
难点:
如何使 用 Linux 命令 来操 作 Linux 系统下 文件。
关键词:
 文件系 统 文件
Linux 文件系统与文件 管理

6-1 文件系统概述
1 、文件系统 类型的含义
文件系统类型是 指文件在存 储介质上
存放及存储的组 织方法和数 据结构

2 、 Linux 支持的文件 系统类型


Linux 采用虚拟文件 系统技术
( VFS )使 Linux 支持以下文 件系统
类型:
Linux 文件系统与文件 管理

• EXT2 二次扩 展
• EXT3 三次扩 展
• SWAP 交换文 件系统
• FAT 、 FAT32
• SYSV Unix 的文 件系统
• ISO9660 光盘文 件系 统
• NFS 网络文 件系统
• Minix
• ……
Linux 文件系统与文件 管理

 Linux 还支持 基于 Windows 和 Netware 的文


件系统 ,例如
UMSDOS 、 MSDOS 、 VFAT 、 HPFS 、 S
MB 和 NCPFS , NTFS 等。
Linux 文件系统与文件 管理

 说明 :每个实 际文件系统 类型和操作系 统


之间 通过虚拟文 件系统( VFS )来通
信。
VFS 的功能 :
 记录可用 的文 件系统 类型
 将设备与 对应 的文件 系统 类型联 系起来
 处理一些 面向 文件的 通用 操作
Linux 文件系统与文件 管理

ext3 文件 系统
 高可用性
不洁系 统关机发生时 ,每个系 统上挂载了的 ext2 文件系统 必须
使用 e2fsck 程序 来检查其 一致性。 由 ext3 文件系统提供的登记报
表方式意味着不洁关机后没有必要在进行此类文件系统检查。

 数据完好性
ext3 文件 系统在 发生了 不洁系 统关机 时提供 更强健 的数据 完
好性。 ext3 文件系统允许用户选择数据接受的保护类型和级
别。
 更快的速度
尽管 ext3 把数 据写入 不止一 次,它 的总处 理能力 在多数
情况下仍比 ext2 系统要高。
 简易转换
用户可以轻而易举地不经重新格式化而把 ext2 转换为
ext 3 系统,从 而获得 强健的 登记式 文件系 统的优 越性。
Linux 文件系统与文件 管理

6.1.3 文件系统 的挂 载与 卸载
 Linux 中无论是硬盘,还是软盘都必
须经过挂载才能进行文件存取操作。
所谓挂载就是将存储介质的内容映射
到指定的目录中,此目录即为该设备
的挂载点。对存储介质的访问就变成
对挂载点目录的访问。一个挂载点一
次只能挂载一个设备。
Linux 文件系统与文件 管理

6.1.3 文件系统 的挂 载与 卸载
 通常硬盘上的各个磁盘分区都会在
Linux 的启动过程自动挂载到指定的
目录,并在关机时自动卸载。而软盘
等移动存储介质既可以在启动时自动
挂载,也可以在需要时手动挂载 / 卸
载。
 /etc/fstab 决定分区启动时是否自动
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

6.1.4 逻辑 卷管 理器
 逻辑 卷管理器 LVM 本质上是建 立在硬盘
和分 区之上的一 个逻辑层, 用以提高磁 盘
分区 管理的灵活 性。通过 LVM 可轻松管
理磁 盘分区:将 若干个磁盘 分区连接为 一
个整 块的卷组, 然后在卷组上 可创建逻
辑卷 ,并进一步 在逻辑卷上 创建文件系
统。
Linux 文件系统与文件 管理

# free
功能:查看内 存使用 情况 ,包括 虚拟 内存、 物理
内存
和缓 冲区
格式: free [ 选项 ]
选项: -b 以字 节为单 位, 默认选 项
-k 以 KB 为单位 / -m 以 MB 为单 位
实例:
// 以 MB 为单 位,显 示内 存使用 情况
#free -m
Linux 文件系统与文件 管理

#du
功能 :显示 目录 中文件 的空 间大小
格式 : du [ 参数 ] [ 路径名 ]
参数 : -m 以 MB 为单位 ,统计 文件 的容量

(默 认为 KB )
实例 : #du 显示当 前路径 下文 件的容 量
#du /etc
Linux 文件系统与文件 管理

例子
du –abk /mnt

// 查看 /mnt 目录占用磁盘空间的情况
du
// 列出各目录所占的磁盘空间,但不详细列出每个文件所占空间
du –s /mnt
计算 /mnt 目录占用的总块数

du –ab /root/mail

列出所有文件和目录所占用的空间,并以字节为单位来计算大小
Linux 文件系统与文件 管理

#df
功能 :统计 分区 的使用 情况
格式: #df [ 参数 ] [ 分区号 / 装载点 ]
参数 :
-m 以 MB 为单 位,统 计使 用情况
实例:
#df 显示 当前所 有已 装载的 分区 使用情 况
#df /home 显示 /home 分区的 使用情 况
Linux 文件系统与文件 管理

给出案 例
案例一
1. 查看 本机里 面有 几块硬 盘, 各有几 个分 区;分
别是 如何表 示;
 对里 面的一 块主 硬盘的 剩余 空间再 划分 两个逻
辑分 区 hda5 与 hda6 ,容 量平均 分;
 把 hda5 的文件 系统 创建为 ext2 ,把 hda6 的
文件 系统创 建为 ext3 并进 行格式 化;
 把 hda5 挂载到 /hard1 ,把 hda6 以只 读的 方
式挂 载到 /hard2;
Linux 文件系统与文件 管理

与案例有关的内容分析
6-2 磁盘的 分区
1 、 Linux 自带的分区工 具:
• fdisk
• parted
Linux 文件系统与文件 管理

fdisk 是一个交互式程序:按下 m 键会显示出它的所有命令。

主要用到的命令:

 n 或 new 创建一个新分区
 t 或 type 改变分区的类型

 p 或 print 打印分配表

 w 或者 write 把分区表写入硬盘
Linux 文件系统与文件 管理

使用 fdisk 工具进行磁 盘分区


分区过 程:
(1) 先通过 p 参数 来显示 硬盘 分区表 信息

(2) 若要 改变磁 盘格 式,通 过参 数 d 删除 存在的 磁盘 分区

(3) 通过参 数 new 来新 建分 区


(4) 选择分 区类型 ,是 主分区 p 还是扩展 分区 e

(5) 保存并 退出, 按下 w ,放弃保 存而 退出按 下 q


Linux 文件系统与文件 管理

2 、 Fdisk 分区
# fdisk 设备文 件名 ( 分区 )
# fdisk –l (查 看)
实例 :
# fdisk /dev/hda
Command(m for help):
Linux 文件系统与文件 管理

Fdisk 子命令 详解 :
 m: 获取 帮助
 n: 新建 分区
 p: 显示 分区
 d: 删除 分区
 t: 改变 分区 的系统 ID
 l: 显示 fdisk 所支持 的文件 系统 及
ID
 v: 检验 分区
 w: 写入 分区
 q: 退出
Linux 文件系统与文件 管理

• 实例:
( 1 )创建 分区
 要求 : 将一个 接在 IDE 接口主 盘位置 上 20G
的空闲 硬盘 划分一 个容 量为 6G ,文件 系统
为 ext3 的主 分区、 两个 容量分 别为 7G ,
文件系 统为 ext3 的逻辑 分区
 具体步 骤如 下:
# fdisk /dev/hda
Command (m for help): n
First cylinder:
Linux 文件系统与文件 管理

Last cylinder:
注意:此 处有
四种表 示法

( 1 )柱面数

( 2 ) +1024000

( 3 ) +2048M

( 4 ) +2048000K

Command (m for help):w


Linux 文件系统与文件 管理

( 2 )删除分区:
 要求 :删除 3 号分 区
 # fdisk /dev/hda
Command ( m for help ): d
Partition number ( 1-n ): 3

Command ( m for help ): w


Linux 文件系统与文件 管理

( 3 )显示分区表
 # fdisk /dev/hda
Command ( m for help ): p

Command ( m for help ) : q

 注:
① 第一个 逻辑区 的分 区号为 5
② 前 4 个为 主分 区,其 中第 4 个为 扩展分

Linux 文件系统与文件 管理

6-3 文件系统的管 理
1. 文件 系统的 建立
格式: # mkfs [ 参数 ] < 分区
名称 >
功能: 建立文 件系 统并格 式化
分区
参数:
-t 文件 系统 类型 // 设定文 件类 型
-c // 检查分 区有无 坏道
-v // 显示详 细信息
Linux 文件系统与文件 管理

实例:
# mkfs /dev/hda5
# mkfs -t ext3 /dev/hda6
# mkfs -c /dev/hda6
Linux 文件系统与文件 管理

2. 查看各 分区文件系 统类型:


格式: # parted
… …
(parted): p
Linux 文件系统与文件 管理

3. 装载文件系统
( 1 )手 动命令 装载
格式 : mount [ 参数 ] < 设备名 > < 装载
点>
功能 :装载 文件 系统到 指定 的目录
参数 :
-t 文件系统 类型 // 指定 文件类

-o ro // 只读方 式
rw // 读写方 式
iocharset=gb2312 // 显示中 文
Linux 文件系统与文件 管理

实例:
# mount /dev/cdrom /mnt/cdrom
# mount -t ext3 /dev/hda5
/mnt/hard5
# mount -o ro /dev/hda6
/mnt/hard6
Linux 文件系统与文件 管理

 挂载 光盘
1 、 先建立目录
#mkdir /media/cd
2 、挂载光盘
# mount –t iso9660 /dev/cdrom
/media/cd
Linux 文件系统与文件 管理

 挂载 U 盘
1 、 先建立目录
#mkdir /media/usb
2 、挂载 U 盘
# mount –t vfat /dev/sda1 /media/usb
 查看挂载的 所有文件 系统
#mount
Linux 文件系统与文件 管理

( 2 )自 动装载
格式: # vi /etc/fstab
功能:系 统启动时自动 装载
说明: fstab 文件结 构
卷标 装 载点 类型 装载 选项
备份选 项 检 查顺 序
/dev/hda5 /abc ext3 defaults 0 1
Linux 文件系统与文件 管理

说明
卷标:系统分区的表示
装载选项 : defaults // 默认启动时自动
装载
noauto // 设定启动时不装载
rw // 读写 方式 装载
ro // 只读方式装载
usrquota // 设定用户配额
grpquota // 设定组配额
备份选 项:针对 ext2, 默认值是 0 ,表示
不备份
检查顺序:指 fsck 检查顺序 , 0 表示不检
查;
Linux 文件系统与文件 管理

实例 :
把 /dev/hda5 在系统 启动时 自动 装载到 目

/abc 下 , 且备 份频 率为 0 ,检 查顺序 为 1
步骤 :
# vi /etc/fstab
添加 如下内 容:
/dev/hda5 /abc ext2 defaults 0 1
Linux 文件系统与文件 管理

注:
一个 设备可 以同 时被装 载到 不同的 目录 中,一 个
目录也 可以同 时装 载到不 同的 设备; 一个 目录
一旦被 装载, 该目 录下原 有的 内容将 被全 部隐
藏,如 果取消 装载 ,文件 又会 重现;

/etc/mtab 用于 记录系 统已 经装载 的文 件系统 ;


Linux 文件系统与文件 管理

4. 卸载文 件系统 umount


  格式: # umount [ 参数 ]   < 装载点 >
 功 能:
 参 数:
   -t 文件系 统类型 // 指定 文件系 统类 型
实例 :
# umount /mnt/cdrom
Linux 文件系统与文件 管理

5. 检测文件系统 fsck
格式 : # fsck [ 参数 ] < 设备文
件名 >
功能:
参数:
-p // 自动修 复检测 到的 错误
实例:
# fsck -p /dev/hda5
Linux 文件系统与文件 管理

分组操作
…………………………

点评、操作演示:
………………………………………..
Linux 文件系统与文件 管理

案例二
 把 hda5 分区挂 载在 /abc 下,对 该分区 做磁 盘配
额;
 建立 ah 用户与 xh 用户;
 设定 ah 用户在 /abc 下只允 许使用 空间 为 5M ,
使用 的节点 数为 5 ;
 设定 xh 用户在 /abc 下只允 许使用 空间 为 10M ,
使用 的节点 数为 4 ;
5. 分别 用两个 用户 登录, 来进 行测试 ;
Linux 文件系统与文件 管理

与案例有关的内容分析
6-4 磁盘配额
1. 磁盘 配额概 述 :
从所用 空间 大小和 拥有 的文件 数目 两方

限定用 户或 用户组 的磁 盘使用 空间 .

三要素 :用 户( user )
磁盘( /dev/sda5)
空间大 小(? MB/ ?文
件)
Linux 文件系统与文件 管理

2. 配额 方式 :
软配额 : 当用户 使用达 到限 额时, 在一 定的

限内 仍可以 使用 磁盘空 间
(默认 7 天)
硬配额 : 当用户 使用达 到限 额时, 立刻 停止
使
用磁 盘空间

注:如 果同时 硬配 额和软 配额 ,权限 取严 ,即


取硬配 额
单位: 块 ( block ) = 1kb
节点数 ( inodes ) = 文件数
Linux 文件系统与文件 管理

3. 配置步骤:
( 1 )检查 quota 软件包 是否安 装
# rpm –q quota
quota-3.06-9
( 2 )如 果未安 装, 先安装 quota 软
件包
插入 CD2
# mount /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS
# rpm –ivh quota………
Linux 文件系统与文件 管理

相关文 件:
/sbin/quotacheck 生成配额文 件
/sbin/quotaon 启动磁盘配 额
/sbin/quotaoff 关闭磁盘配 额
/usr/sbin/edquota 设定 用户 / 组配额
/usr/bin/quota 显示用户 / 组的配额
信息
Linux 文件系统与文件 管理

( 3 ) . 修改 fstab 文件
目的: 给相应 的磁 盘分区 设定 限额信 息,
即在
装载选 项中加 入 usrquota 或
者 grpquota
参数。
例如:
/dev/hda5 /abc ext2 defaults,usrquota 0 1
Linux 文件系统与文件 管理

( 4 ) . 重新启 动系统使 fstab 更改


生效
相当于 :
# umount –a
# mount -a
Linux 文件系统与文件 管理

( 5 ) . 在实行配 额限制的 磁盘分区的挂 载


点下 创建空的配 额信息文件
# cd /abc
# touch aquota.user
# touch aquota.group
Linux 文件系统与文件 管理

( 6 ) . 生成标准 的配额信 息文件


格式: # quotacheck [ 参数 ] [ 装载点 ]
参数:
-a // 所有实 行配额 的文 件系统
-u // 生成 用户配 额文 件 , 创建
aquota.user
-g // 生成 组配额 文件 创建
aquota.group
-v // 显示详 细信息
实例:
# quotacheck -uv /abc
Linux 文件系统与文件 管理

7. 设定用 户或组的配 额限制


格式: # edquota [ 参数 ] < 用户名 /
组名 >
参数:
-u ( user )
-g (group)
实例:
# edquota -u user1
设定说 明:
Linux 文件系统与文件 管理

Filesystem blocks soft hard inodes soft hard

文 已 软 硬 已 软 硬
件 用 配 配 用 配 配
系 块 额 额 节 额 额
统 点 接 接
( 数 空 空 数 点 点
分 间 间 数 数
区 大 大
) 小 小
Linux 文件系统与文件 管理

实例:
# edquota -u user1
显示:
/dev/hda5 2 1024 1026 3 0 0
Linux 文件系统与文件 管理

8. 启用 用户或 组配 额限制
格式 : # quotaon [ 参数 ] [ 挂载 点 ]
参数 :
-a (all)
-u (user)
-g (group)
-v (verbose)
实例 :
# quotaon -u /abc
Linux 文件系统与文件 管理

9. 其他 相关 命令
# quotaoff [ 参数 ] [ 挂载 点 ]
// 关闭 磁盘配 额限 制,参 数同 quotaon
#quotaoff –uv /home
#quota < 用户 名 / -g 组名 >
// 查看 指定用 户或 组的磁 盘配 额信息
#quota u1( 显示 U1 用户 的使用 情况 )
# quota (显示 当前 用户使 用情 况)
Linux 文件系统与文件 管理

9. 见实例 6-10 6-11


Linux 文件系统与文件 管理





Linux 文件系统与文件 管理

6-4 文件概述
6.4.1 、文件的含 义
• 文件指具 有符 号名和 在逻 辑上具 有完
整意义的 信息 集合;
• 文件两要 素:
 符号 名: 文件名
 信息 : 内容
Linux 文件系统与文件 管理

Linux 文件介绍
 文件
在 Linux 中文件是 存储 信息的 基本 结
构,是 被命名 的存 储在某 种介 质上的 一组 信息
的集合 。
 文件名
Linux 的文 件名可 以由 字母、 数字 、下划 线和
圆点组 成。文 件名 的第一 个字 符不能 是数 字。
短划线 和星号 等其 他特殊 符号 由系统 用作 特殊
字符, 不能用 在文 件名中 。
注意:扩 展名
Linux 文件系统与文件 管理

 Linux 下文件的命名规则

在 Linux 下可以用很长的一个字符 串 ( 一般不超过 255


个 ) 来作文件名。

例如: This_is.a.VERY_long.filename

注: Linux 应用程序和文件区分大小写!
Linux 文件系统与文件 管理

一些应用 程序 常用的 扩展名


Linux 文件系统与文件 管理

6.4.2 、文件 的分 类 ( 按性 质划分 )


• 普通文 件
 文本文 件:采 用 ASCII 编码方式 ,可 编辑可 修
改;
二进制 文件 :不可 查看 ,不 可修改 ;(所 有的
命令等)
• 目录文 件 (特 殊的文 件)
存放的 内容 是目录 中的 文件 名和子 目录名 ;

• 设备文 件
用于用 户访 问物理 设备 所用 ,分为 块设备 和字
符设备文 件; ( /dev/…… )
字符设 备:键 盘、 鼠标;
块设备 :硬盘 、光 驱;
Linux 文件系统与文件 管理

设备文件
 用于与 I/O 设备提供连接 的
一种文件(也就 是将所有
的设备都用文件 表示),
分为字符设备文 件和块设
备文件,对应于 字符设备
和块设备。
 Linux 把对 设备的 I/O 做为
普通文 件的读 取 / 写入操
作,内 核提供 了对 设备处
理和对 文件处 理的 统一接
口。
 每一种 I/O 设备 对应一 个
设备文 件,存 放在 /dev 目
Linux 文件系统与文件 管理

块设备 和字符设 备
块设备 : 如 /dev/had 。系统能够从这些
设备的内容中进行随机读取。这种设备
以块为最小单位,不能从块设备里仅仅
读写一个字符。读写的最小数据量为一
块。块的大小不一样,一般应将块定义
为 1KB 。
字符设备 :例如 /dev/lp1 。系统能够从
字符设备读入字符串,字符设备按顺序
一个一个地传递字符。字符设备有终端
和串行口两种。
Linux 文件系统与文件 管理

• 链接文 件 (链 接 ---- 给文 件起的 另外 一个


名字)
 软链 接文 件:符 号链 接,仅 仅是 符号;
相当于
WINDOWS 下的快捷 方式 -- 图标
源文件 与链接 文
件可 以跨 越索引 点;
 硬链 接文 件:符 号 + 内容; 链接 同一索 引点中 的

件;

• 管道文 件 |
前一个命 令的 输出作 为后 一个命 令的 输入
Linux 文件系统与文件 管理

链接文件
 又称符号链接文 件,它提供 了共享文件的
一种方法。在链 接文件中 不是通过文 件名
实现文件共享, 是通过链 接文件中包 含的
指向文件的指针 来实现对 文件的访问 。
Linux 文件系统与文件 管理

管道 文件
 主要 用于在进程 间传递数据 。管道是进 程
间传 递数据的“ 媒介”。某 进程数据写 入
管道 的一端,另 一个进程从 管道另一端 读
取数 据。
 Linux 对管道的操作与 文件操作相 同,它
把管 道做为文件 进行处理。 管道文件又 称
先进 先出 (FIFO) 文件。
Linux 文件系统与文件 管理

给出案 例
案例 三:
• 查看 /etc/ 目录中 所有的 文件 中包含 有 sys 字母的 文件 ;
• 查看 /etc/ 目录中 文件包 含有 conf 的前两个 文件是 什
么;
• 把 file 文件压缩 到 /test1 下,名 称为 file.gz
• 把 file1 文件在当 前目 录打包 为 file.tar.gz ,并解包 至
/test 中。
Linux 文件系统与文件 管理

与案例有关的内容分析

6-4 文件操作命令
1 、 ls
• 功能:显 示目 录中的 文件
• 格式: ls [ 参数 ] [ 目录 名 ]
Linux 文件系统与文件 管理

2 查找文件
( 1 ) find
• 格式: find [ 路径 ] [ 参数 ] [ 文件名 ]
• 参数:
 -name “ 文件名 ” // 表示 查找指 定名 称文

 -lname “ 文件名 ” // 查找 指定文 件所 有的
链接文 件
 -user 用户 名 // 查找 指定用 户拥 有的
文件
 -group 组名 // 查找 指定组 拥有 的文件
Linux 文件系统与文件 管理

 实例:
 # find / -name “named*”
 # find / -user root
 find –name ‘tmp’ –xtype c –user ‘inin’
// 查找文件 名为 tmp 文件类型 为 c 用户名 为 inin 的
文件
 find –name ‘tmp’ –o -name ‘mina*’
// 查找文 件名为 tmp 或匹配 mina* 的所有 文件
 find ! –name ‘tmp’
// 查询文 件名不 是 tmp 的所有 文件
Linux 文件系统与文件 管理

3 、文件内容查询命令:
grep 、 egrep 、 fgrep
正则表达式
通过一系列 规则,用一 个字符串来匹
配多个字符串。 它通常由普 通字符 ( 例如
字母 a 到 z) 和特殊字符 ( 称为元字符 ,如
/ 、 * 、?等 ) 构成。
正则表达式操作符以及Linux对它们的支持
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

文件内容查询命令:
grep 、 egrep 、 fgrep
该组命令以指定的查找模式搜
索文件,通知用户在什么文件中搜索到与
指定的模式匹配的字符串,并且打印出所
有包含该字符串的文本行,在该文本行的
最前面是该行所在的文件名。
Linux 文件系统与文件 管理

文件内容查询命令:
grep 、 egrep 、 fgrep
grep 命令只能 搜索一 个指 定的模 式;
egrep 命令检索 扩展 的正则 表达 式;
fgrep 命令检 索固定 字符 串,并 不识 别正 则表达 式, 是一
种更为 快速 的搜索 命令 。
命令 的使 用方式 :
grep [ 选项 ][ 查找模 式 ][ 文件 名 1 ,文件 名 2 ,文件 名
3 ,…… ]
egrep [ 选项 ][ 查找模 式 ][ 文件名 1 ,文件 名 2 ,文件 名
3 ,…… ]
fgrep [ 选项 ][ 查找模 式 ][ 文件 名 1 ,文件 名 2 ,文件 名
3 ,…… ]
Linux 文件系统与文件 管理

文件内容查询命令: grep 、 egrep 、 fgrep

常用选 项:
不带 选项表 示查 找并输 出所 有包含 目标 字符串
的行。
-i 查找时忽 略字 母的大 小写
-l 仅输出包 含该 目标字 符串 文件的 文件 名
-v 输出不包 含目 标字符 串的 行
-n 输出每 个含 有目标 字符 串的行 及其 行号
Linux 文件系统与文件 管理

例子
(1) grep ‘Lyle Strand’ test-g
// 单引号 指示 shell 不要解 释引号内 的任何字
符。在 test-g 中查找人 名 Lyle Strand
(2) grep Lyle Strand test-g
// 在文件 Strand 和 test-g 中查找 Lyle
(3)grep –n ‘ab’ test-g
// 在 test-g 中查找 ab 并输 出相应的行 号和该行
内容
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

例子
(4)grep ‘^a’ test-g
// 选中 所有 以字母 a 开始 的行 。文件 test-g 中的以 ^a 开头
的行是 不会 被选中 的
(5)grep ‘\^a’ test-g
// 以 ^a 开头的行 被选 中输出
(6)grep ‘t$’ test-g
// 以 t 结尾的行 被选 中并输 出
(7)grep –n ‘^…$’ test-g
// 输出 从行 的开始 到行 的结尾 只有 三个任 意字符 的行 及其
行号。
(8)grep –n ‘^$’
// 输出所有 带行 号的空 行
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

 kj
Linux 文件系统与文件 管理

6.5 归档与压 缩文 件
1 、 Linux 下的常用压缩工具
gzip/gunzip :后缀名为 .gz
zip/unzip :后缀名为 .zip
bzip2/bunzip2 :后缀名为 .bz2
Compress/uncompress: 后缀名为 .z
Lha: 后缀名为 .lzh

压缩文件的目的有二:一是可以减少存储空间,二是通过
网络传输文件时,可以减少网络开销。
Linux 文件系统与文件 管理

2 、 gzip 压缩工具
Linux 文件系统与文件 管理

举例 说明
(1) 压缩文件: gzip –v *
// 压缩当前目录下的所有文件 ( 对单个文件进行压
缩)

(2) 解压文件: gzip –dv *


// 解压当前目录下的所有压缩文件,并显示
# gzip -dv /abc.txt.gz
// 解压 /abc.txt.gz 文件,并显示
(3) 显示压缩文件的内容信息: gzip –l *
// 显示文件内容不真实解压缩

(4) 在 tar 命令中嵌入压缩命令: tar -cvfz gong.tar.gz


// 在当前目录下所有文件打包之后压缩成 gong.tar.gz 并
显示处理进度
Linux 文件系统与文件 管理

• 实例:
 # gzip /abc.txt
 # gzip -c /abc.txt > aaa.gz
// 压缩到 其他文 件, 并保留 原文 件。
 # gzip -d /abc.txt.gz
 # gzip -dv /abc.txt.gz
 # gzip -tv /abc.txt.gz
Linux 文件系统与文件 管理

说明
 该命令 只能对单个 文件压缩, Linux
提供
了 tar 命令,用 于将多个 文件打包成一 个文
件,然 后再压缩成 一个 .gz 文件。
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

3 、 zip/unzip 命令
zip 程序位于 /usr/bin 目录中,可将文件压缩成 .zip 文件以节省
硬盘空间,而当需要的时候又将压缩文件解压。 unzip 用于将
文件解压。

zip 命令格式 :
zip [ 选项 ] 压缩后文 件名 待 压缩文 件名 或文件 夹

相关参数的说明,可以通过 man zip 获得。

zip 命令可以将许多文件压缩成一个文件,这是它
与 gzip 的区别之处。
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

3 、 bzip2 命令
bzip2 是一个无损压缩软件,具有高质量的数据压缩能力。它
能将文件压缩到原来的 10 %到 15 %,而且压缩速度和解压速度
都非常快,应用广泛。

bzip2 从命令行读入文件名和参数,每个文件都被命名为“原始文
件名 .bz2” 的压缩文件替换。每个压缩文件具有与原文件相同的
修改时间和权限。
bzip2 命令参数选项
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

举例
 用 bzip2 命令压 缩文件
bzip2 *
// 用 bzip2 压缩当 前目录 下所 有文件
 用 bunzip2 命令 解压缩 文件
bunzip2 *
// 用 bunzip2 解压缩 当前目 录下 所有文 件
Linux 文件系统与文件 管理

6.6 TAR 包管理


tar(tape archiving program) ,最早是一个磁盘归档程序。 tar 命
令用于文件的打包,可以 将若 干文件 或者 目录打 包成 一个文
件,既利于文件管理,也方便压缩和文件的网络传输。

tar 可以为文件和目录创建档案。利用 tar ,用户可以为某一特


定文件创建档案 ( 备份文件 ) ,也可以在档案中改变文件,或者
向档案中加入新的文件。
Linux 文件系统与文件 管理

命令格 式: tar 命令格式及主要 参数选项


tar 主选项 [ 辅助选项 ] 文件或目录
常用主 选项 :
-A , --catenate , --concatenate :将若干 tar 文件合成一个 tar
文件
-c , --create :创建一个新的 tar 文件
-d , --diff , --compare :比较 tar 文件或文件系统的不同之
处。
--delete :从 tar 文件中删除文件,但不能把磁带文件删除
-r , --append :在 tar 文件尾部追加文件。
-t , --list :显示 tar 文件内容
-u , --update :更新 tar 文件。
-x , --extra , --get :从 tar 文件中取出文件。
-z :使用 gzip 压缩 / 解压缩文件
Linux 文件系统与文件 管理
创建、显示 tar 文件以 及从 tar 中提取文
件、向 tar 中添加文件
1 tar -cfv gone.tar ./*
//c 创建 tar f 指明创建文件 v 显示处理详细过程

2 tar -tf gone.tar


// 显示 gone.tar 中包含那些文件

3 tar -xvf gone.tar


//x 从 tar 文件中提取文件
4 tar -rf gone.tar myfile
// 在 tar 文件尾部追加文件
Linux 文件系统与文件 管理

• 实例:
 # tar -cvf aaa.tar /aaa/
 # tar -czvf aaa.tar.gz /aaa/
 # tar -xvf aaa.tar
 # tar -zxvf aaa.tar.gz
 # tar -zxvf aaa.tar.gz -C /home/aaa/
 把压 缩文 件解压 到指 定的目 录。
 # tar –cf archive.tar foo bar
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理
创建、显 示 tar 文件以及从 tar 中提取
Linux 文件系统与文件 管理 文
件、向 tar 中添加文件
Linux 文件系统与文件 管理

6.8 RPM 软件包的管理


 现如今,大多数 Linux 的发行版本都是某种打包系统。软
件包可以用来发布应用软件,有时还可以发布配置文件。
它比传统结构的 .tar.gz 存档文件有几个优势。如它们能让
安装过程尽可能成为不可分割的原子操作。
 软件包的安装程序会备份它们改动过的文件。如果发 现
新安装的软件包破坏了系统上的什么地方,可以卸载它,
恢复系统原本的状态。
 软件打包系统定义了一种依赖型模型,这能让软件包的维
护程序确保其应用软件依赖的所有库和支持设施都已经正
确安装好了
Linux 文件系统与文件 管理

6.8 RPM 软件包管理

1 、软件的打 包方式
• RPM 方式
• 源代码压 缩包 方式
• 二进制文 件压 缩包方 式
Linux 文件系统与文件 管理

2 、 RPM 包安装方式
( 1 ) RPM 概述
• RPM ( RedHat package manger )由 于
RH 公司发 行的一 种的 包管理 方法 。
• RPM 包的 名称格 式
 软件 名称 - 版本号 - 发行号. 安装的 平台 类
型. rpm
 实例 :
• foo-1.0-1.i386.rpm
该文件名包括名称 foo 、版本号 (1.0) 、发行号 (1) 和硬件平台
(i386) 。其安装简单之极,登录为根用户,然后在 shell 下执行
下面相关命令即可。
Linux 文件系统与文件 管理

( 2 ) RPM 包的 安装
• 格式: #rpm –ivh [详 细选项 ]  软件包 名

• 说明: -ivh 表示 安装 rpm 包且 显示安 装进 度
• 详细选 项:
• 详细选 项:
 --test // 表示测 试安装 并不 实际安 装
 --prefix= 路径   // 指定安装 路径
 --nodeps    // 忽略包之 间的 依赖关

Linux 文件系统与文件 管理

• 实例:
 #rpm –ivh foo-1.0-1.i386.rpm
 #rpm –ivh --nodeps bind-9.0-8.i386.rpm
Linux 文件系统与文件 管理
Linux 文件系统与文件 管理

RPM 包的安 装方式


普通 安装 使用最多的安装方式,采用一般的安装参数。
安装当前目录下的 xplns-elm-3.3.1-1.i386.rpm
#rpm –ivh xplns-elm-3.3.1-1.i386.rpm
(-i 安装 v 显示附加信息 h 用 # 显示安装进度 )

测试安装 用户对安装不很确定时可以先使用该种安装方式
测试安装,不真正安装。若无错误信息显示再真正安装。
#rpm –i --test xplns-elm-3.3.1-1.i386.rpm

强制 安装 强制安装软件,忽略软件包依赖性以及文件的冲
突。若对软件包的依赖性很清楚,而且确实要忽视文件的冲
突,可以选择强制安装。初来乍到请勿模仿。
#rpm –ivh --force xplns-elm-3.3.1-1.i386.rpm
Linux 文件系统与文件 管理

安装中可能 出现的问题
1 重复安 装
#rpm –ivh xplns-elm-3.3.1-1.i386.rpm
提示已经安装,报错。若想忽略错误信息,继续安装,可以
使用如下命令
#rpm –ivh --replacepkgs xplns-elm-3.3.1-1.i386.rpm
2 文件冲突
若用户要安装的软件包中有一个文件已经在安装其他软件
包时安装,会出现冲突信息。
#rpm –ivh xplns-elm-3.3.1-1.i386.rpm
提示与已安装文件冲突,报错。若想忽略错误信息,继续安
装,可以使用如下命令
#rpm –ivh --replacefiles xplns-elm-3.3.1-1.i386.rpm
Linux 文件系统与文件 管理

安装中可 能出现的问 题
3 依赖关系
RPM 软件包可能依赖于其他软件包,即要求在安装了特定的
软件包之后才能安装该软件包。如果在用户安装某个软件包
时存在这种未解决的依赖关系,会产生错误信息:失败的依赖
#rpm –ivh bar-1.0-1.i386.rpm
failed dependencies : foo is needed by bar-1.0-1
可以使用
#rpm –ivh --nodeps bar-1.0-1.i386.rpm
即使这样做了,安装后的软件也不一定就可以使用
Linux 文件系统与文件 管理

(3) 升级安装
• 格式: #rpm –Uvh  [详 细选 细]软 件包
名称
• 说明: -Uvh 表示升 级安装 且显 示安装 进度
(U一 定要大 写, Linux 下严 格区分 大小 问
题); 升级安 装详 细选细 与安 装的相 同
• 实例:
可以 #rpm
使用 -U 来安 装软–Uvh
件包 bind-10.1-1.i386.rpm
软件 包的 升级是 执行 卸载旧 版本 软件和 安装新 版本
软件 两个 过程。 RPM 会先备 份老 文件再 安装新 文件。
Linux 文件系统与文件 管理

( 4 )卸载 RPM 包
• 格式: #rpm -e [详细 选项]  软 件名称
• 说明: -e 表示卸 载软件 包
• 实例:
 #rpm –e bind
 #rpm –e nfs-utils
Linux 文件系统与文件 管理

( 5 )查询 RPM 包
• 格式: #rpm –q[ 其它 选项 ] [详细选 项]
[软件 名称]
• 其它选 项:
 a   // 表示显 示当 前系统 中安 装的 所有 RPM 包
 f  文 件名 (全路 径) // 表示查 找指定 文件
所属 的 RPM 包
 i 软件包名 称  // 表示显示 包的 用途
 l 软件包名 称  // 表示显示 RPM 包文 件
Linux 文件系统与文件 管理

RPM 软件包查 询命令参数 集合


Linux 文件系统与文件 管理

• 实例:
 #rpm –q bind
 #rpm –qa
 #rpm –qf /etc/named.conf
 #rpm –qi bind
 #rpm –ql bind
Linux 文件系统与文件 管理

RPM 软件包 的验 证
验证软件包是通过比较已安装的文件和软件包中的原始文
件信息来进行的,验证文件的尺寸、 MD5 校验码、文件权
限、类型、属主和用户组等。
命令格式:
验证单个包: rpm –V package-name
验证包含特定文件的包: rpm –Vf /bin/vi
验证所有已安装的软件包: rpm –Va
根据 RPM 文件来验证软件包 ( 用户用户担心 RPM 数据库

被破坏 ) :
rpm –Vp xplns-elm-3.3.1-1.i386.rpm
Linux 文件系统与文件 管理

 1. 安装一 个包
# rpm -ivh
2. 升级一 个包
# rpm -Uvh
3. 移走一 个包
# rpm -e
4. 安装参 数
--force 即使 覆盖属 于其 它包的 文件 也强迫 安装

--nodeps 如果该 RPM 包的安 装依赖 其它 包,


即使其 它包没 装, 也强迫 安装 。
5. 查询一 个包 是否被 安装
# rpm -q < rpm package name>
Linux 文件系统与文件 管理
Red Hat Linux 添加删 除应用程 序
Red Hat Linux9 添加删除
Linux 文件系统与文件 应用程
管理


Red Hat Linux9 添加删
Linux 除应用程
文件系统与文件 管理


Red Hat Linux9 添加删除 应用程
Linux 文件系统与文件 管理

Linux 文件系统与文件 管理
课后习题
1 、光盘 的文 件系统 是  D
A 、 Ext2 B 、 ext3 C 、 vfat
2、D linux
、 iso9660
中可自动加载文件系统的是 C
A 、 /etc/inittab B 、 /etc/profile
C 、 /etc/fstab D 、 /etc/nameconf
3 、卸载文件系统的命令为  A
A 、 umount B 、 unmount C 、 eject
4、D、 exit 中 inode 是限制用户的 D
quota
A 、块 B 、目录 C 、字节 D 、文件
5 、磁盘属于那种设备  B
A 、字符设备 B 、块设备 C 、网络设备
D 、终端设备
Linux 文件系统与文件 管理
6 、我们 一般 用什么 工具 来建 立分区 上的 文件系  统D
A 、 mknod B 、 fdisk C 、 format D 、 mkfs
7 、我们将逻辑分区建立在哪个分区上  B
A 、从分区 B 、扩展分区 C 、主分区
D 、第二分区
8 、在使用 edquota 配置组用户磁盘定额内容时,我们需要加上
什么参数。 D
A. -u B. –t C. –a D. -g
9 、我们登录后希望重新加载 fstab 文件中的所有条目,我
们可以以 root 身份执行什么命令。
 C
A. mount -d B. mount -c
C. mount –a D. mount –b
Linux 文件系统与文件 管理

10 、在 shell 中 , 使用什 么命令 可显 示磁盘空间 AB


A 、 df B 、 du C 、 dir
D 、 tar
11 、在 /etc/fstab 文件中,我们可以看到以下信息 A B D
A 、文件系统名 B 、文件系统类型
C 、文件系统大小 D 、文件系统在系统中被 fsck 检查的
顺序
12 、与磁盘定额服务有关的命令包括  A B C D
A 、 quotaon B 、 quotaoff C 、 quotacheck
F 、 edquota
13 、为了能够把新建立的文件系统 mount 到系统目录中,
我们还需要指定该文件系统的在整个目录结构中的位置,
或称为  B
A. 子目录 B. 加载点 C. 新分区
D. 目录树