第 7 章 文 件 管 理 操 作

Linux 在 文 件 管 理 和 目 录 管 理 上 有 几 个 特 征 , 你 可 以 找 到 文 件 的 详 细 信 息 , 如它 们 最 近 何 时 被 修 改 过 和 它 们 拥 有 的 连 接 数 。 你 可 以 控 制 对 文 件 的 访 问 。 Linux 中 的 每 一 个 文 件 都 有 许 可 , 它 确 定 谁 有 权 对 之 访 问 ,以 及 何 种 访 问 。 你 可 以 允 许 其它 用 户 访 问 指 定 的 文 件 或 者 限 制 为 只 由 你 自 己 访 问 。

文 件 存 在 于 诸 如 CD-ROMS 或 软 盘 等 物 理 设 备 上 。 每 一 设 备 上 的 文 件 都 被组 织 成 为 一 个 文 件 系 统 。 要 访 问 一 个 设 备 上 的 文 件 , 你 便 将 它 的 文 件 系 统 连 到 一个 特 别 的 目 录 中 。 这 被 称 作 装 卸 文 件 系 统 。 例 如 ,要 访 问 软 盘 上 的 文 件 ,如 何 可 以访 问 CD-ROMS , 软 盘 和 硬 盘 分 区 。 你 甚 至 可 以 访 问 MS-DOS 的 硬 盘 分 区 和 软盘 ,以 及 一 个 远 程 服 务 器 上 的 文 件 系 统 。

你 也 可 以 将 你 的 文 件 备 份 到 一 个 档 案 中 ,以 备 以 后 读 取 ,你 也 可 以 把 它 们 组 合成 为 一 个 档 案 文 件 已 通 过 网 络 传 到 另 一 系 统 中 。 你 也 可 以 将 文 件 压 缩 以 进 行 更有 效 的 传 送 或 只 是 为 了 占 用 更 少 的 空 间 。 档 案 和 压 缩 是 在 线 软 件 包 经 常 使 用 的方 法 。 你 可 以 下 载 一 个 压 缩 并 存 档 的 软 件 包 ,然 后 将 之 解 压 并 将 档 案 扩 展 开 。 然后 你 便 可 以 把 新 的 软 件 包 安 装 在 你 的 系 统 上 了 。 这 是 一 种 取 得 Linux 软 件 的 常用 方 法 。

显 示 文 件 信 息 :ls -l

如 图 7-1 所 示 ,ls -l 命 令 显 示 文 件 的 详 细 信 息 。 首 先 显 示 的 是 许 可 , 其 次 是 连接 数 ,文 件 的 所 有 者 ,用 户 所 属 的 组 名 ,以 byte 度 量 的 文 件 大 小 ,文 件 最 后 被 修 改 的日 期 和 时 间 ,以 及 文 件 的 名 字 。 组 名 指 的 是 有 组 许 可 的 组 群 。 在 图 7-1 中 ,文 件mydata 的 类 型 是 一 个 普 通 文 件 。 只 有 一 个 连 接 ,即 文 件 没 有 其 它 的 名 字 。 所 有者 的 名 字 是 Chris ,与 登 录 名 相 同 ,组 名 是 W eather 可 能 还 有 些 属 于 Weather 组的 其 它 的 用 户 。 文 件 的 大 小 是 207bytes, 它 最 后 一 个 被 修 改 是 在 February 20, 在上 午 11:55 分 。 文 件 名 是 mydata 。

第 7 章 文 件 管 理 操 作 - 图1

图 7-1 用 ls 和 -l 选项显示的文件信息

如 果 你 想 显 示 一 个 目 录 中 有 文 件 的 详 细 信 息 , 只 要 用 ls-l 命 令 即 可 , 无 须 加 任

何 参 数 。

$ls-l

-rw-r--r--1Chrisweather207Feb 2011:55mydata

-rw-r--r--1Chrisweather568Feb 1410:30otday

-rw-r--r--1Chrisweather308Feb 1712:40monday

文 件 和 目 录 许 可 :Chmod

Linux 系 统 中 的 每 个 文 件 和 目 录 都 有 一 许 可 来 确 定 谁 可 以 通 过 何 种 方 式 对 文件 和 系 统 加 以 访 问 ,你 可 以 设 置 许 可 将 记 问 限 制 在 三 种 方 法 之 内 :你 可 以 只 限 由 自己 进 行 记 问 ; 你 可 以 允 许 一 个 预 先 指 定 的 组 中 的 用 户 记 问 权 , 或 者 你 可 以 允 许 系统 上 的 任 何 一 个 人 记 问 ,你 也 可 以 控 制 一 个 文 件 和 目 录 如 何 被 记 问 。 一 个 文 件 和目 录 可 能 有 读 , 写 和 执 行 许 可 , 当 文 件 被 创 建 时 , 文 件 所 有 者 自 动 拥 有 读 和 写 权 限 , 以 例 将 文 件 显 示 和 修 改 。 你 可 把 许 可 改 为 你 想 要 的 任 何 组 合 。 一 个 文 件 可 以 有只 读 许 可 ,禁 示 任 何 的 更 改 操 作 。 它 可 以 有 执 行 许 可 ,允 许 它 作 为 一 个 程 序 执 行 。

有 三 种 不 同 类 型 的 用 户 可 对 目 录 和 文 件 加 以 记 问 : 文 件 所 有 者 , 组 、 或 其 它人 。 所 有 者 是 文 件 的 创 建 者 。 你 创 建 了 任 何 文 件 ,你 使 是 它 的 拥 有 者 。 你 也 可 以允 许 你 的 组 群 有 权 访 问 文 件 的 权 限 。 用 户 被 分 为 组 。 例 如 , 某 一 班 或 一 个 工 程 的所 有 用 户 被 系 统 管 理 员 分 为 组 。 一 个 用 户 有 可 能 将 文 件 的 高 问 权 限 赋 予 组 中 的其 它 用 户 。 最 后 ,你 还 可 以 将 文 件 的 记 问 权 赋 予 系 统 中 所 有 其 它 的 用 户 。 在 这 种情 况 下 , 系 统 中 每 一 位 用 户 可 能 都 能 访 问 你 的 某 一 文 件 或 目 录 。 在 这 种 意 义 上 , 系

统 中 的 任 何 其 它 用 户 都 构 成 了 ” 其 它 ” 这 一 类 。

每 一 类 用 户 都 有 自 己 的 一 套 读 、 写 和 执 行 许 可 。 第 一 套 许 可 控 制 用 户 对 自己 文 件 的 访 问 — — 所 有 者 的 访 问 。 第 二 套 控 制 组 对 一 个 用 户 文 件 的 访 问 。 第 三个 控 制 着 所 有 其 它 用 户 对 用 户 文 件 的 访 问 。 这 三 类 一 所 有 者 , 组 和 其 它 的 三 种读 、 写 、 执 行 许 可 能 成 了 九 种 类 型 的 许 可 。

正 如 你 在 上 节 中 所 知 ,ls 命 令 和 -l 选 项 列 出 了 文 件 的 详 细 信 息 ,包 括 许 可 。 在下 一 个 例 子 中 ,最 右 边 的 一 套 字 符 就 是 为 文 件 mydata 设 定 的 许 可 。

$ls-l mydata

-rw-r--r--l Chris weather 207 Feb 20 11:55 mydata

横 线 代 表 的 是 空 许 可 。 r 代 表 的 是 读 许 可 ,w 代 表 写 ,执 行 许 可 由 x 代 表 。 注意 这 里 共 有 10 个 位 置 。 第 一 个 字 符 指 定 了 文 件 类 型 。 在 通 常 意 义 上 , 一 个 目 录可 被 认 为 是 一 个 文 件 。 如 果 第 一 个 字 符 是 横 线 ,那 么 列 出 的 是 一 个 文 件 。 如 果 是d ,那 么 列 出 的 是 一 个 目 录 。

第 7 章 文 件 管 理 操 作 - 图2

图 7-2 属主 , 组和其它文件许可 :r 表示读许可 ,w 表示写 ,x 表示执行 , 横线表示无权限

后 面 的 九 个 字 符 是 按 不 同 的 用 户 类 型 安 排 的 。 第 一 套 三 个 字 符 是 用 户 自 己的 文 件 许 可 。 第 二 组 三 个 字 符 是 组 的 文 件 许 可 。 最 后 三 个 字 符 是 其 它 用 户 的 文件 许 可 。 在 图 7-2 中 ,文 件 mydata 的 所 有 者 有 读 和 写 许 可 ,组 类 只 有 读 许 可 ,其 它用 户 类 也 只 有 读 许 可 。 这 意 味 着 , 尽 管 组 中 的 其 它 用 户 或 系 统 中 任 意 其 它 用 户 都可 以 进 行 读 操 作 ,只 有 所 有 者 可 对 文 件 修 改 。

你 可 以 使 用 Chmod 命 令 来 创 建 不 同 的 许 可 设 置 。 Chmod 的 参 数 是 两 个 列表 : 许 可 变 更 和 文 件 名 。 你 可 用 两 种 不 同 方 法 指 定 许 可 列 表 。 一 种 方 法 是 使 用 许可 符 号 , 它 被 叫 作 符 号 方 法 (symbol method) 。 另 一 种 方 法 利 用 被 称 作 二 进 制 屏蔽 , 它 被 叫 作 绝 对 或 相 对 方 法 。 两 种 方 法 中 , 符 是 法 更 简 单 , 因 此 会 首 先 介 绍 它 。在 本 章 最 后 的 表 7-1 。 列 出 了 Chmod 命 令 的 选 项 。

设 置 许 可 : 许 可 符 号

正 如 你 所 预 料 的 , 设 置 许 可 的 符 号 方 法 使 用 字 符 r、 w 和 x 来 各 自 代 表 读 , 写和 执 行 。 每 一 项 许 可 都 可 以 进 行 添 加 或 删 除 。 加 入 一 个 许 可 的 符 号 是 加 号 , 十 、删 除 许 可 的 符 号 是 减 号 ,一 o 在 下 一 个 例 子 中 ,Chmod 命 令 加 入 文 件 mydata 的执 行 许 可 并 删 除 了 写 许 可 。 读 许 可 没 有 变 动 。

$ chmod +x-w mydata

还 有 用 于 标 识 每 种 用 户 类 型 的 许 可 符 号 。 所 有 者 、 组 和 其 它 用 户 分 别 由 字符 u 、 g 和 o 代 表 。 注 意 所 有 者 这 一 类 是 由 u 代 表 ,可 认 为 它 是 代 表 用 户 。 类 别字 符 是 放 在 写 、 读 和 执 行 许 可 前 面 的 。 如 果 未 使 用 类 别 字 符 , 那 第 就 认 为 是 所 有的 类 , 设 定 的 许 可 适 用 于 用 户 所 有 者 , 组 和 其 它 用 户 。 下 例 及 图 7-3 中 , 第 一 个Chmod 命 令 将 组 许 可 设 为 读 和 写 。 第 二 个 Chmod 命 令 将 其 它 用 户 许 可 设 为 读 。注 意 在 许 可 和 类 别 之 间 没 有 空 格 、 许 可 列 表 也 是 一 个 长 短 语 ,中 间 没 有 空 格 。

第 7 章 文 件 管 理 操 作 - 图3

图 7-3 用许可符号来设置权限

$ chmod g+rw mydata

$ chmod o+r mydata

用 户 可 以 同 添 加 许 可 一 样 删 除 许 可 。 在 下 一 个 例 子 中 ,其 它 用 户 被 设 置 了 读

许 可 ,而 写 必 执 行 许 可 被 删 除 了 。

$ chmod o+r-wx mydata

还 有 一 个 类 别 符 号 ,a ,它 代 表 所 有 的 类 别 。 符 号 a 是 缺 省 的 ,在 下 一 个 例 子 中 , 两 个 命 令 是 等 价 的 。显 式 地 利 用 了 符 号 a 来 指 定 所 有 类 型 的 用 户 :其 它 ,组 和 用 户 , 并 为 它 们 设 置 了 读 许 可 。

$

chmod

a+r

mydata

$

chmod

+r

mydata

一 个 最 常 用 的 许 可 操 作 是 设 定 一 个 文 件 的 执 行 许 可 。 这 通 常 是 在 Shell 程 序文 件 的 情 况 中 执 行 的 ,这 将 在 第 8 和 16 章 讨 论 。 执 行 许 可 表 明 一 个 文 件 中 包 含着 可 执 行 的 指 令 并 可 直 接 由 系 统 运 行 。 在 下 一 个 例 子 中 ,文 件 lsc 被 设 定 了 可 执行 许 可 后 被 执 行 。

$ Chmod u+x lsc

$ lsc

main,c lib,c

$

除 读 / 写 / 执 行 许 可 外 , 你 也 可 以 设 置 可 执 行 文 件 所 有 者 属 性 。 正 常 情 况 下 , 运行 程 序 的 用 户 在 程 序 运 行 期 间 拥 有 该 程 序 ,尽 管 程 序 文 件 本 身 可 能 是 另 一 用 户 所拥 有 的 。 用 户 ID 许 可 允 许 一 个 程 序 的 所 有 者 总 是 拥 的 这 一 程 序 ,即 使 其 它 用 户正 在 运 行 这 一 程 序 。 例 如 , 在 系 统 中 的 大 部 分 软 件 都 是 由 根 用 户 的 所 拥 有 而 被 普通 用 户 所 运 行 。 在 这 种 情 况 下 , 根 用 户 应 在 普 通 用 户 运 行 程 序 时 仍 然 对 程 序 有 所有 权 , 以 便 程 序 有 修 改 根 用 户 所 有 文 件 修 改 的 许 可 。 组 ID 许 可 是 为 组 设 定 执 行上 述 功 能 的 许 可 。 一 个 组 所 拥 有 的 程 序 在 另 一 个 组 的 用 户 运 行 程 序 时 仍 然 有 所

有 权 。 这 样 程 序 便 可 修 改 组 的 文 件 。

用 s 选 项 可 以 加 入 用 户 ID 和 组 ID 对 文 件 许 可 。 下 一 例 子 将 用 户 ID 许 可 赋予 了 pppd 程 序 ,它 是 由 根 用 户 所 拥 有 的 。 当 普 通 用 户 远 行 pppd 时 ,根 用 户 仍 保留 所 有 仅 ,使 pppd 程 序 可 修 改 根 用 户 文 件 。

# Chmod +s /usr/sbin/pppd

用 户 ID 和组 ID 许 可 在 所 有 者 和 组 段 的 执 行 位 置 上 以 S 代 表 。 用 户 ID 和 组

ID 是 执 行 许 可 ,x 的 一 个 变 形 。 读 、 写 和 用 户 ID 许 可 是 rws 而 不 是 rwx 。# ls -l /usr/sbin/pppd

-rwsr-sr-x 1 root root 84604 Aag 14 1996

/usr/sbin/pppd

另 一 个 特 殊 许 可 允 许 程 序 的 有 效 利 用 。 粘 着 置 位 指 示 系 统 在 一 个 程 序 执 行完 后 仍 将 之 留 在 内 存 中 。 这 对 那 些 用 户 频 繁 使 用 的 小 程 序 是 很 有 用 的 。 粘 着 置位 许 可 是 t。 粘 着 置 位 在 其 它 用 户 许 可 的 执 行 部 分 以 t 表 示 。 一 个 有 读 、 执 行 和粘 着 置 位 的 程 序 的 许 可 将 显 示 为 r-t。

# Chmod +t /usr/X11 R6/bin/xtetris # ls -l /usr/X11 R6/bin/xtetris

-rwxr-xr-t 1 root oot 27482 Nov19 1996

/usr/X11 R6/bin/xtetris

绝 对 许 可 : 二 进 制 屏 蔽

许 多 用 户 发 现 利 用 绝 对 方 法 更 方 便 , 而 不 是 使 用 许 可 符 号 。 绝 对 方 法 一 次 可

变 更 ,所 有 的 许 可 ,而 不 是 一 项 加 以 指 定 。 它 使 用 了 一 种 二 进 制 屏 蔽 来 引 用 每 类 中的 所 用 许 可 。 三 类 ,每 类 有 三 种 许 可 , 构 成 了 总 数 为 八 的 二 进 制 数 , 每 进 制 数 都 以八 为 基 础 结 构 的 ,将 变 成 二 进 制 数 时 ,每 一 个 八 以 内 的 数 都 成 为 三 位 二 进 制 数 。 二进 制 数 是 0 或 1 的 集 合 。 一 个 数 字 中 的 三 个 八 进 制 数 可 变 为 三 套 二 进 制 数 ,加 起来 总 共 是 九 ,即 文 件 许 可 的 确 切 数 目 。

你 可 以 利 用 八 进 制 数 作 屏 蔽 来 设 置 不 同 的 文 件 许 可 。 每 一 个 八 进 制 数 适 用于 用 户 类 型 的 一 种 。 你 可 以 认 为 这 些 数 与 从 左 到 右 排 列 的 许 可 类 型 相 匹 配 , 最 左端 是 所 有 者 类 型 。 第 一 个 八 进 制 数 适 用 于 所 有 者 类 型 ,第 二 个 适 用 于 组 ,第 三 个 适用 于 其 它 类 型 。

你 所 选 择 的 实 际 的 八 进 制 数 将 确 定 每 类 的 读 、 写 和 执 行 属 性 。 这 时 ,你 需 要知 道 八 进 制 数 字 如 何 转 换 成 为 相 应 的 二 进 制 数 字 。 下 面 的 表 中 列 出 了 八 进 制 数0 ~ 7 如 何 转 换 成 为 有 三 个 数 字 的 相 应 二 进 制 数 字 。 你 可 以 认 为 八 进 制 数 首 先 转换 成 为 二 进 制 数 ,然 后 二 进 制 数 中 的 三 个 数 字 再 分 别 设 置 读 、 写 和 执 行 属 性 。 每一 个 二 进 制 的 数 字 都 与 一 个 相 应 的 属 性 相 匹 配 ,也 是 从 左 到 右 。 如 果 二 进 制 数 字是 0 ,那 么 许 可 被 禁 止 。 如 果 二 进 制 数 为 1 ,那 么 许 可 被 允 许 。 第 一 个 数 字 设 置 读的 许 可 为 允 许 或 禁 止 , 第 二 个 设 置 写 的 许 可 ,第 三 个 设 置 执 行 许 可 , 例 如 , 八 进 制 数

6 转 换 为 二 进 制 数 110 ,这 将 把 读 、 写 许 可 设 为 允 许 ,而 将 执 行 许 可 标 止 。

Octal Binary 0 000

1 001

2 010

3 011

4

100

5

101

6

110

7

111

第 7 章 文 件 管 理 操 作 - 图4

图 7-4 用八进制来设置权限

当 使 用 二 进 制 屏 蔽 时 , 你 需 要 为 三 个 种 类 的 三 种 许 可 确 定 三 个 数 字 。 这 使 得它 比 符 号 许 可 显 得 要 死 板 。 要 设 置 所 有 者 对 文 件 mydata 的 执 行 许 可 为 允 许 , 及写 许 可 禁 止 ,并 且 保 留 读 许 可 , 你 要 使 用 二 进 数 5(101), 同 时 还 要 指 定 组 和 其 它 用户 记 问 的 数 字 。 如 果 这 几 类 要 保 留 读 许 可 , 你 需 要 为 每 类 指 定 4(100), 这 样 你 有三 个 八 个 八 进 制 数 ,544, 转 换 为 二 进 制 数 为 ,101 100 100 。 在 图 7-4 中 , 为 文件 mydata 设 置 了 这 些 许 可 。

$ Chmod 544 mydata

无 须 十 分 费 力 地 完 成 由 八 进 制 到 二 进 制 的 转 换 以 确 定 你 应 使 用 哪 个 数 字 , 有一 种 十 分 简 单 的 方 法 。 读 、 写 和 执 行 许 可 分 别 与 数 字 4,2,1 相 联 系 。 ( 见 下 表 )。要 确 定 为 某 类 应 使 用 哪 个 数 字 ,只 需 将 4 ( 读 ) 和 2( 写 ) 加 起 业 即 为 6 。 这 就 是 你 所需 的 八 进 制 数 。 要 给 一 类 读 和 执 行 许 可 , 只 要 将 4 ( 读 ) 和 1( 执 行 ) 相 加 得 5 。 要 想设 置 所 有 的 许 可 ,你 要 将 4( 读 )2 (写 ) 和 1 ( 执行 ) 相 加 得 7 ,它 等 于 二 进 制 为 111 。 下一 个 例 子 用 这 种 方 法 来 计 算 上 例 中 所 使 用 的 许 可 。 所 有 者 有 读 和 执 行 许 可 , 而 组和 其 它 用 户 只 有 读 许 可 。

Owner rx 4+1=5

group r 4 4

others r 4 4

544 101 100 100

$ Chmod 544 mydata

例 如 , 要 给 你 组 中 的 成 员 读 和 写 的 许 可 ,而 系 统 中 其 它 用 户 设 有 许 可 ,你 需 要 给组 数 字 6(110), 给 其 它 用 户 0, 给 所 有 者 6 保 存 了 所 有 者 的 读 写 许 可 。 你 可 以 通 过把 4 ( 读 )和 2( 写 ) 相 加 得 6 来 计 算 读 ,写 许 可 。 即 然 ,你 不 想 , 任 何 其 它 用 户 拥 有 许可 ,你 可 以 给 它 们 0 ,你 现 在 得 到 数 字 660 , 等 于 二 进 制 数 110 110 000 ,注 意八 进 制 数 将 利 用 二 进 制 的 000 来 把 所 有 的 许 可 设 为 禁 止 。

$ Chmod 660 mydata

许 可 数 字 二 进 制 数

r 4 100

w

2 010

x

1 001

二 进 制 屏 蔽 的 最 通 常 的 用 法 是 来 设 置 执 行 许 可 。 如 第 8 章 中 将 要 介 绍 的 ,你可 以 创 建 包 含 Linux 命 令 的 文 件 。 这 些 文 件 都 称 为 Shell scripts ,要 执 行 Shell scripts 中 的 命 令 ,你 必 须 首 先 指 明 这 一 文 件 是 可 执 行 的 — — 它 包 含 着 系 统 可 以 执行 的 命 令 。 可 以 有 几 种 方 法 完 成 上 述 工 作 , 其 中 之 一 是 设 置 Shell script 文 件 的可 执 行 许 可 。 假 定 你 刚 完 成 了 一 个 Shell scripts 文 件 并 给 予 它 执 行 许 可 以 例 将之 运 行 , 同 时 你 想 保 留 读 和 写 许 可 ,包 括 执 行 许 可 ( 你 也 可 以 将 4 读 ,2- 写 ,和 1 - 执 行相 加 得 7)。 给 组 和 其 它 用 记 许 可 赋 0 将 禁 止 他 们 的 记 问 。 你 得 到 数 字 700 , 与 之相 等 的 二 进 制 数 是 111 000 000 , 在 下 一 个 例 子 中 ,文 件 myprog 的 所 有 者 的 许可 被 设 置 的 包 含 执 行 许 可 。

$ Chmod 700 myprog

如 果 你 希 望 其 它 的 用 户 可 以 执 行 并 读 文 件 ,但 不 能 修 改 ,你 可 以 用 数 字 5(101) 来 设 置 读 和 执 行 许 可 为 允 许 , 并 禁 止 写 许 可 。 在 这 种 情 况 下 , 你 要 使 用 八 进 制 数755 ,即 二 进 制 的 11 101 101 。

$ Chmod 755 myprog

对 于 所 有 权 和 粘 着 置 位 许 可 ,你 可 在 八 进 制 数 的 前 面 再 加 一 个 八 进 制 数 。 用户 ID 许 的 可 八 进 制 许 可 是 4(100); 组 ID 为 2(010 ); 对 于 粘 着 置 位 是 1(001)。在 下 一 个 例 子 中 设 置 了 程 序 pppd 的 用 户 ID 许 可 , 同 时 设 定 了 所 有 者 、 组 和 其 它用 户 的 读 、 写 许 可 。

# Chmod 4555 /usr/sbin/pppd

下 面 的 例 子 设 置 了 程 序 xtetris 的 粘 着 置 位 。

# Chmod 1755 /usr/X11R6/bin/xtetris

下 一 个 例 子 将 设 置 程 序 XMan 的 粘 着 置 位 和 用 户 ID 许 可 。 许 可 5755

的 二 进 制 数 为 101

11 101 101 。

# chmod 5755 /usr/X11R/bin/xman # ls -l /usr/X11R6/bin/xman

-rwsr-xr-t 1 root root 44364 Mar 26 04:28

/usr/X11R6/bin/xman

目 录 许 可

你 也 可 以 设 置 目 录 许 可 。 一 个 目 录 的 读 许 可 可 以 使 用 户 显 示 目 录 中 的 文 件 。执 行 许 可 使 用 户 可 进 入 该 目 录 。 写 许 可 允 许 用 户 在 该 目 录 中 创 建 或 删 除 自 己 的文 件 。 如 果 你 允 许 其 它 用 户 对 一 个 目 录 有 写 许 可 ,用 户 便 可 在 目 录 中 添 加 自 己 的文 件 。 当 你 创 建 一 个 目 录 时 , 它 主 动 给 所 有 者 读 、 写 和 执 行 许 可 。 你 可 例 出 目 录中 的 文 件 ,进 入 该 目 录 ,可 在 其 中 创 建 文 件 。

同 文 件 相 同 ,目 录 也 有 所 有 者 ,组 和 其 它 用 户 的 一 套 许 可 。 通 常 ,你 可 能 希 望 用户 可 以 进 入 你 的 一 个 目 录 并 对 目 录 中 文 件 进 行 列 表 , 但 不 希 望 他 们 在 目 录 中 添 加文 件 。 这 种 情 况 下 ,你 应 设 置 目 录 的 读 和 执 行 许 可 ,而 禁 止 写 许 可 。 这 会 使 用 户 可以 进 入 目 录 并 对 文 件 列 表 , 但 不 能 的 创 建 新 文 件 或 将 自 己 的 文 件 拷 贝 入 目 录 。 下一 个 例 子 设 置 了 目 录 thankyou 的 组 的 读 和 执 行 许 可 , 但 没 有 写 许 可 。 组 中 的 成员 可 以 进 入 thankyou 目 录 并 对 文 件 列 表 ,但 不 能 创 建 新 文 件 。

# Chmod g+rx-w letters/thankyou

如 同 文 件 一 样 , 你 也 可 利 用 八 进 制 数 来 设 置 目 录 许 可 。 要 设 置 与 上 例 中 相 同

的 许 可 , 你 要 使 用 八 进 制 数

750 , 即 二 进 制 的 11

101

000 。

$ Chmod 750

letters/thankyou

正 如 你 所 知 的 ,ls 命 令 加 上 -l 先 项 可 例 出 一 个 目 录 中 所 有 的 文 件 。 要 卢 只 列出 目 录 的 消 息 ,可 加 入 d 修 改 符 。 在 下 一 个 例 子 中 ,命 ls-ld 列 出 了 目 录 thankyou 的 信 息 。 注 意 在 许 可 例 表 中 的 第 一 个 字 符 是 d ,代 表 它 是 一 个 目 录 。

$ ls -cd thankyou

drwxr-x--- 2 chris 512 Feb10 04:30 thankyou

如 果 你 有 一 个 希 望 其 它 用 户 记 问 的 文 件 ,你 不 仅 要 对 文 件 设 置 许 可 , 而 且 还 要保 证 对 文 件 所 在 的 目 录 。 这 一 点 也 适 用 于 一 个 目 录 的 父 目 录 。 尽 管 一 个 目 录 允许 其 它 用 户 访 问 ,但 其 父 目 录 未 设 定 访 问 许 可 , 那 么 这 一 目 录 仍 是 不 可 访 问 的 。 在这 一 点 上 , 你 必 须 对 目 录 树 多 加 注 意 。 要 提 供 一 个 目 录 的 记 问 权 ,目 录 树 中 在 此 目录 上 面 的 所 有 父 目 录 也 必 须 是 可 以 访 问 的 。

在 图 7-5 中 ,用 户 树 中 在 此 目 录 上 面 的 所 有 父 目 录 也 必 须 是 可 以 访 问 的 。 需要 进 入 Chris 和 Letters 目 录 才 能 进 行 问 。 将 ( 每 个 目 录 ) 其 它 用 户 类 的 执 行 许 可设 为 允 许 即 可 做 到 这 一 点 。 注 意 只 须 设 定 执 行 许 可 , 而 设 有 读 和 写 许 可 。 其 它 用户 不 允 许 在 目 录 Chris 和 letters 中 进 行 文 件 列 表 和 增 加 文 件 。 他 们 只 能 进 入 这一 目 录 并 引 用 其 子 目 录 。

第 7 章 文 件 管 理 操 作 - 图5

图 7-5 要打开一个其它用户可以访问的目录 , 你必须也让该目录的所有父目录可被访问

改 变 一 个 文 件 的 所 有 者 或 组 :Chown 和 Chgrp

尽 管 其 它 用 户 有 可 能 对 文 件 访 问 ,但 只 有 文 件 所 有 者 才 能 修 改 许 可 。 如 果 , 你

想 赋 予 其 它 某 个 用 户 对 你 某 个 文 件 许 可 的 控 制 ,你 需 要 将 文 件 的 所 有 者 由 你 改 为那 个 用 户 。 Chown 命 令 将 一 个 文 件 的 控 制 权 移 交 给 另 一 个 用 户 。 这 一 命 令 以 另一 个 用 户 名 作 为 第 一 个 参 数 。 在 用 户 名 后 ,你 可 列 出 想 移 交 的 文 件 名 。 在 下 一 个例 子 中 , 用 户 将 文 件 mydata 的 控 制 权 移 交 给 Robent.

$ Chown robert mydata

$ ls

-l

m ydata

-rw-r--r--

1

robert

weather

207

Feb

20

11:15

mydata

只 要 你 愿 意 ,你 也 可 以 用 Chgrp 命 令 来 改 变 一 个 文 件 的 组 。 Chgrp 把 文 件 新的 组 名 作 为 第 一 个 参 数 。 在 新 组 名 后 ,你 可 以 列 出 想 变 更 到 那 一 组 去 的 文 件 名 。在 下 一 个 例 子 中 ,用 户 将 文 件 today 和 welkend 的 组 改 到 forecast 组 中 。 ls -l 命令 反 映 出 了 组 的 改 变 。

$ Chgrp forecast today welkend

$ ls -l

-rw-r--r-- 1

Chris

weather

207

Feb

20

11:55

mydata

-rw-r--r--

1

Chris

forecast

568

Feb

14

10:30

today

-rw-r--r--

1

Chris

forecast

308

Feb

17

12:40

welkend

文 件 系 统 : 安 装 和 卸 载

尽 管 你 的 Linux 系 统 中 所 有 的 文 件 都 被 连 接 入 一 个 总 的 目 录 树 中 ,文 件 本 身位 于 一 些 诸 如 硬 盘 和 CD-ROM 之 类 的 存 贮 设 备 中 。 在 某 一 存 贮 设 备 上 的 文 件 被

组 织 成 为 一 种 文 件 系 统 。 你 的 Linux 目 录 树 可 能 包 含 几 个 文 件 系 统 ,每 一 个 在 不同 的 存 贮 设 备 上 。 文 件 本 身 被 组 织 成 为 根 目 录 开 始 的 无 缝 隙 的 目 录 树 。 尽 管 你的 根 目 录 可 能 位 于 硬 盘 分 区 的 文 件 系 统 中 , 但 在 CD-ROM 上 的 文 件 仍 然 有 一 条直 接 的 路 径 名 。

在 一 个 文 件 系 统 中 的 文 件 与 你 的 目 录 树 是 相 分 离 的 , 除 非 你 专 门 将 文 件 联 入目 录 树 。 一 个 文 件 系 统 将 文 件 组 织 成 自 己 的 目 录 树 。 你 可 以 把 它 想 象 成 为 必 须被 连 入 主 目 录 树 的 一 颗 子 目 录 树 。 例 如 , 一 个 有 Linux 文 件 的 软 盘 有 自 己 的 目 录树 。 你 需 要 把 这 棵 子 树 与 你 硬 盘 分 区 上 的 主 目 录 树 相 连 。 在 它 们 相 连 之 前 , 你 是无 法 访 问 软 盘 上 的 文 件 的 。

将 一 种 存 贮 设 备 上 的 文 件 系 统 连 接 到 主 目 录 树 上 被 称 为 安 装 设 备 。 这 是 由mount 命 令 来 完 成 的 。 要 访 问 CD-ROM 上 的 文 件 ,你 首 先 要 安 装 CD-ROM 。 安装 操 作 将 把 存 贮 设 备 的 目 录 树 连 接 到 你 指 定 的 目 录 中 去 。 它 是 一 种 系 统 管 理 的任 务 ,不 能 由 普 通 的 用 户 来 完 成 。 要 安 装 一 个 文 件 系 统 ,一 定 要 作 为 根 用 户 登 录 。表 7-2 列 出 了 mount 命 令 的 不 同 选 项 。

mount 命 令 有 两 个 参 数 :Linux 系 统 要 访 问 文 件 系 统 的 存 贮 设 备 ,新 的 文 件 系统 将 要 被 连 入 的 文 件 结 构 中 的 目 录 。 mount 点 是 你 希 望 存 贮 设 备 上 文 件 连 入 系统 的 主 目 录 中 的 目 录 。 device 是 将 你 的 系 统 与 硬 件 设 备 相 连 的 特 殊 的 设 备 文 件 。mount 命 令 的 语 法 如 下 :

# mount device moantpoint

设 备 文 件 目 录 /dev 中 ,它 们 通 常 有 一 些 以 设 备 数 结 尾 的 缩 略 名 。 例 如 ,fd0 可能 指 联 入 你 的 系 统 的 第 一 个 软 驱 。在 PC 操 作 Linux 系 统 中 ,硬 盘 分 区 有 一 个 hd 的 前 缀 , 后 面 是 一 个 字 母 表 中 字 符 以 标 明 硬 盘 , 最 后 是 分 区 号 。 例 如 ,hda2 指 第 一

硬 盘 中 的 第 二 个 分 区 。 在 多 数 情 况 下 ,你 可 以 利 用 有 前 缀 的 man 命 令 来 获 取 与设 备 有 关 的 更 多 的 详 细 信 息 。 例 如 ,mansd 显 示 了 SCSI 设 备 的 man 页 数 。

一 个 文 件 系 统 要 是 可 访 问 的 ,它 首 先 要 被 安 装 。 甚 至 你 的 硬 盘 分 区 上 的 文 件系 统 也 要 由 mount 命 令 加 以 安 装 。然而 ,当 你 装 Linux 系 统 并 在 硬 盘 上 开 辟 Linux 分 区 时 , 你 的 系 统 一 旦 开 始 便 被 设 置 为 自 动 安 装 你 的 主 文 件 系 统 。 软 驱 和 光 驱 则需 要 显 式 地 安 装 。 下 例 将 第 一 个 软 盘 驱 动 设 备 的 软 盘 (fd0 )安 装 到 目 录 /mydir 中 。

# mount /dev/fd0/mydir

在 你 关 闭 系 统 之 前 , 所 有 你 安 装 的 文 件 系 统 都 必 须 被 卸 载 。 你 的 主 文 件 系 统是 主 动 卸 载 的 。 然 而 ,如 果 你 想 用 一 个 文 件 系 统 来 代 替 一 个 已 安 装 的 文 件 系 统 , 你必 须 首 先 将 已 安 装 的 文 件 系 统 卸 载 。 假 定 你 已 安 装 了 一 个 软 盘 ,现 在 你 想 把 它 取出 再 放 入 一 个 新 的 ,你 必 须 在 放 入 新 盘 之 前 首 先 将 原 有 的 卸 载 , 然 后 再 安 装 新 的 软盘 。 用 unmount 命 令 可 以 卸 载 一 个 文 件 系 统 。 unmount 可 将 设 备 名 或 设 备 安 装的 目 录 作 为 参 数 。 语 法 如 下 :

# unmount device-or-mountpoint

下 一 个 例 子 卸 载 了 安 装 在 目 录 /mydir 下 的 软 盘 :

# unmount /dev/fdo

利 用 将 设 备 安 装 在 目 录 /m ydir 中 的 例 子 ,你 也 可 以 利 用 这 一 目 录 来 卸 载 文 件系 统 。

# unmount /mydir

unmount 命 令 有 一 个 重 要 的 限 制 。 你 永 远 不 能 卸 载 一 个 你 正 在 其 中 工 作 的文 件 系 统 。 如 果 你 进 入 了 一 个 文 件 系 统 中 的 一 个 目 录 , 然 后 你 想 卸 载 这 一 文 件 系统 ,你 会 接 到 一 个 文 件 系 统 忙 的 错 误 信 息 。 例 如 ,你 将 Open Linux 的 CD-ROM

装 在 目 录 /mnt/cdrow 下 ,然 后 你 进 入 了 /mntcdrom 目 录 。

如 果 你 想 更 换 CD 。 这 将 会 失 败 , 因 为 你 现 在 正 位 于 它 所 安 装 的 目 录 中 。 在你 卸 载 CD-ROM 之 前 你 必 须 离 开 这 一 目 录 。

# mount /dev/hdc /mnt/cdrom # cd /mnt/cdrom

# unmount /mnt/cdrom unmount:/dev/hdd:device is busy # cd /root

# unmount /mnt/cdrom (239)

在 每 个 存 贮 设 备 上 的 文 件 系 统 都 被 格 式 化 过 以 占 据 一 定 数 量 控 间 。 例 如 ,你可 将 你 的 硬 盘 分 区 格 式 化 为 占 300m 空 间 。 在 这 一 文 件 系 统 中 安 装 或 创 建 的 文件 将 占 据 部 分 空 间 ,剩 余 空 间 可 留 给 新 的 文 件 和 目 录 。 要 查 出 在 一 个 文 件 系 统 中还 有 多 少 剩 余 空 间 ,你 可 以 使 用 df 命 令 。 它 按 设 备 名 会 例 出 你 所 有 的 文 件 系 统 , 它 们 的 存 贮 空 间 大 小 , 已 经 利 用 的 空 间 的 百 分 比 , 以 及 它 们 所 安 装 的 位 置 。 df 命令 ,而 不 是 fdisk 命令 ,是 一 种 列 出 分 区 表 的 安 全 的 方 法 。

$ df

F ile sytem

1024-blocks

used available

capacity

Mounted on

/dev/hda3 297635

169499

112764

60%

/

/dev/hda1

205380

182320 23060

89%

/mnt/dos

/dev/hdc 637986

637986

0

100%

/mnt/cdrom

利 用 df 命令 ,你 也 可 知 道 某 一 目 录 属 于 哪 个 文 件 系 统 ,只 需 输 入 df 和 目 录 名 ,

或 df, 来 代 表 当 前 目 录 。

$ df .

File system 1024-blocks used avai/able capcity Mounted on

/dev/hda3 297635 169499 112764 60% 1

要 确 认 某 一 文 件 系 统 运 行 正 常 ,你 可 以 使 用 fsck 命 令 进 行 检 查 。 输 入 fsck 和代 表 文 件 系 统 的 设 备 名 。 表 7-3 列 出 了 fsck 的 选 项 。 下 面 的 例 子 检 查 了 软 驱 中的 磁 盘 和 主 硬 盘 :

# fsck /dev/fdo # fsck /dev/hdal

安 装 并 格 式 化 软 盘

要 访 问 一 张 软 盘 上 的 文 件 ,你 首 先 需 要 把 软 盘 安 装 到 你 的 Linux 系 统 中 。 你的 软 驱 设 备 名 是 fd0 ,目 录 /dev./dev/fd0 代 表 软 驱 。 注 意 fd 之 后 的 0 ,如 果 你 有 多个 软 驱 , 它 们 会 分 别 用 fd1,fd2 等 口 来 代 表 。你 可 以 把 它 安 装 到 任 何 目 录 。但 Open Linux 安 装 已 经 为 软 盘 创 建 了 一 个 范 例 的 目 录 ,/mnt/floppy。 下 一 个 例 子 把 软 驱中 的 软 盘 安 装 到 /mnt/floppy 目 录 :

# mount /dev/fdo /mnt/floppy

记 主 你 正 在 安 装 一 张 软 盘 ,而 不 是 软 驱 。 你 不 能 只 是 将 一 张 软 盘 取 走 , 再 放 入一 张 新 的 。 mount 命 令 已 将 这 些 文 件 联 入 你 的 主 目 录 树 中 ,你 的 系 统 认 为 在 软 驱的 软 盘 中 可 以 找 到 这 些 文 件 。 如 果 你 将 软 盘 取 出 后 又 放 入 另 外 一 张 ,那 在 对 之 访问 时 会 出 现 错 误 。

要 更 换 磁 盘 ,你 首 先 必 须 将 软 驱 中 的 磁 盘 卸 载 ,在 放 放 新 盘 之 后 ,你 必 须 明 确 地安 装 新 磁 盘 。 可 用 umount 命 令 来 完 成 这 一 任 务 。 注 意 在 umount 命 令 中 并 没有 n 。

# umount /dev/fdo

在 卸 载 操 作 中 ,你 可 以 指 定 其 安 装 的 目 录 或 /dev/fdo 设 备 : # umount /mnt/floppy

你 现 在 可 以 取 走 软 盘 ,放 入 一 张 新 盘 ,然 后 进 行 安 装 了 。

# mount /mat/floppy

当 你 关 闭 系 统 时 , 你 所 安 装 的 磁 盘 将 自 动 被 卸 载 , 无 须 你 将 之 明 确 卸 载 。要 将 软 盘 格 式 化 ,使 用 mkfs 命 令 。 它 在 盘 上 创 建 了 一 个 Linux 文 件 系 统 。 一 定要 确 保 用 -t ext2 选 项 来 指 定 ext2 类 型 的 文 件 系 统 。 一 旦 格 式 化 ,你 命 名 可 以 安装 这 一 文 件 系 统 。 mkfs 将 设 备 名 和 盘 上 存 贮 块 的 数 目 作 为 参 数 。 一 个 块 中 有1000byte,1400 格 式 化 了 一 张 1.44MB 的 软 盘 。 你 不 用 先 安 装 空 盘 ,只 要 批 发 它放 在 软 驱 中 然 后 输 入 mkfs 命 令 和 它 的 参 数 就 可 以 了 。 下 一 个 例 子 格 式 化 了 一 张1.44MB 的 软 盘 。

# mkfs -t ext2 /dev/fdo 1400

安 装 CD-ROM

你 也 可 以 把 CD-ROM 盘 片 mount 到 你 的 Linux 系 统 。 在 Open Linux 系 统中 ,目 录 /mnt/cdrom 是 专 为 CD-ROM 文 件 系 统 保 留 的 。 在 文 件 /etc/fstab 中 你 会看 到 它 的 一 个 入 口 。 要 安 装 CD-ROM, 你 只 要 输 入 mount 命 令 和 目 录 名

/mnt/cdrom 即 可 。 你 无 须 指 定 设 备 名 。 一 旦 安 装 , 你 可 以 通 过 /mnt/cdrom 目 录对 CD-ROM 进 行 访 问 。

# mount /mnt/cdrom

如 同 软 盘 一 样 , 要 记 住 你 安 装 的 是 一 张 光 盘 , 而 不 是 光 驱 。 你 不 能 仅 仅 将 光 盘移 走 再 放 入 另 外 一 张 。 mount 命 令 已 将 这 些 文 件 联 入 主 目 录 树 , 你 的 系 统 认 为 在CD-ROM 驱 动 器 的 光 盘 中 会 找 到 这 些 文 件 。

要 更 换 盘 片 ,你 需 要 先 用 umount 命 令 卸 载 在 CD-ROM 驱 动 器 中 的 盘 片 。 在你 的 命 令 实 施 之 前 , 你的 CD-ROM 不 会 打 开 。 在 放 入 新 的 光 盘 之 后 ,你 可 以 显 式地 安 装 新 的 盘 片 。

# umount /mnt/cdrom

你 现 在 可 以 取 走 光 盘 并 放 入 另 外 一 张 。 然 后 执 行 mount 命 令 以 进 行 安 装 。

# mount /mnt/cdrom

如 果 你 想 把 CD-ROM 安 装 到 另 一 个 目 录 中 ,你 必 须 在 mount 命 令 中 加 入 设备 名 。 下 一 个 例 子 把 光 驱 中 的 光 盘 安 装 到 /mydir 目 录 中 。 本 例 中 CD-ROM 的 设备 名 是 /dev/hdc。

# mount /dev/hdc /mydir

光 驱 的 设 备 名 是 随 着 光 驱 类 型 而 变 的 。 IDE CD-ROM 的 设 备 名 有 与 IDE 硬盘 分 区 相 同 的 前 缀 hd 。 其 后 的 一 个 字 符 标 识 了 光 驱 并 将 它 与 其 它 的 IDE 设 备 区分 开 来 。例 如 ,一 个 接 到 第 二 个 IDE 口 的 CD-ROM 的 名 字 是 hdc 。一 个 作 为 slave 接 到 第 二 个 IDE 口 的 IDE CD-ROM 的 名 字 可 能 是 hdd 。 实 际 的 名 字 将 在 CD- ROM 安 装 的 时 候 确 定 ,正 如 同 安 装 Linux 系 统 时 一 样 。 SCSI 的 光 驱 有 自 己 的 单独 的 命 名 法 。 它 以 sd 开 头 代 表 SCSI 驱 动 器 ,其 后 跟 一 个 标 识 的 字 符 。 例 如 ,一

个 SCSI CD-ROM 的 名 字 可 能 是 sdb 或 sda 。 当 安 装 系 统 时 ,CD-ROM 的 名 字便 已 确 定 。 你 可 以 查 看 /etc/fstab 文 件 或 使 用 根 目 录 用 户 桌 面 中 的 fstool 来 进 行确 认 。

要 更 换 光 盘 , 你 应 先 卸 载 光 驱 中 的 CD-ROM 。 然 后 , 放 入 新 盘 片 ,再 对 它 进 行明 确 地 安 装 。

# umount /mydir

你 现 在 可 以 取 走 CD-ROM 并 放 入 另 一 张 光 盘 。 然 后 执 行 mount 命 令 进 行安 装 。

# mount /dev/hdc /mydir

安 装 硬 盘 分 区 :Linux 和 MS-DOS

你 可 以 用 mount 命 令 安 装 Linux 或 MS-DOS 硬 盘 分 区 。 然 而 ,更 加 实 用 的是 利 用 文 件 /etc/fstab 进 行 自 动 安 装 ,正 始 下 节 第 述 。 你 在 安 装 时 所 创 建 的 Linux 硬 盘 分 区 已 经 自 动 装 好 。 要 安 装 一 个 Linux 硬 盘 分 区 ,只 要 输 入 mount 命 令 和 分区 的 设 备 名 及 你 想 安 装 的 目 录 名 。 IDE 硬 盘 使 用 hd 前 缀 ,SCSI 硬 盘 使 用 sd 前缀 。 一 个 硬 盘 驱 动 器 的 前 缀 后 面 跟 着 一 个 标 识 硬 盘 的 第 二 个 分 区 ,sdb3 代 表 第二 个 SCSI 硬 盘 上 的 第 三 个 分 区 。 要 查 找 设 备 名 , 你 可 以 用 df 来 显 示 你 的 硬 盘 分区 或 检 查 /etc/fstab 文 件 。 下 一 个 例 子 将 /dev/hda4 上的 Linux 硬 盘 分 区 安 装 到目 录 /mnt/mydata 。

# mount -t ext2 /dev/hda4 /mnt/mydata

你 也 可 以 安 装 一 个 MS-DOS 分 区 并 直 接 访 问 其 中 的 文 件 。 同 Linux 分 区 一

样 ,你 也 要 使 用 mount 命 令 ,但 是 你 要 把 文 件 系 统 的 类 型 定 MS-DOS 。 需 要 使 用 - t 选 项 和 msdos 类 型 来 完 成 上 述 任 务 。 在 下 一 个 例 子 中 , 用 户 将 /dev/hdal 的MS-DOS 硬 盘 分 区 安 装 到 Linux 文 件 结 构 的 目 录 /mnt/dos 中 。 /mnt/dos 是 MS- DOS 文 件 系 统 的 一 个 普 通 的 命 名 , 你 可 以 把 分 区 安 装 到 任 何 一 个 目 录 。 但 要 保证 你 已 创 建 了 该 目 录 。

# mount -t msdos /dev/hdal /mnt/dos

如 果 你 想 从 一 个 新 的 硬 盘 或 一 个 现 有 硬 盘 上 , 来 安 装 一 个 新 的 分 区 。 你 需 要用 Linux 的 fdisk 或 cfdisk 来 创 建 这 一 分 区 ,并 用 mkfs 命 令 将 之 格 式 化 。 一 旦 将之 创 建 并 格 式 化 ,你 就 可 以 把 它 安 装 在 你 的 文 件 系 统 中 了 。 要 开 始 cfdisk ,需 在 命令 行 上 fdisk 。 它 将 启 动 一 个 交 互 式 的 程 序 ,你 可 以 用 它 创 建 你 的 Linux 分 区 。 使用 Linux 的 fdisk 要 特 别 小 心 。 如 果 你 不 小 心 , 它 可 能 会 删 除 你 的 整 个 硬 盘 。

fdisk 的 功 用 如 同 在 第 2 章 中 讨 论 的 安 装 过 程 中 大 致 相 同 。 命 令 n 将 创 建 一个 新 的 分 区 ,命 令 t 允 许 你 将 它 的 类 型 设 为 Linux 类 型 ,83 。 表 7-5 列 出 了 fdisk 命 令 。

硬 盘 分 区 的 命 名 是 以 hd(IDE 驱 动 器 ) 或 sd(SCSI) 驱 动 器 ) 开 头 , 后 面 是 一 个标 识 硬 盘 的 字 母 和 一 个 代 表 硬 盘 上 分 区 的 数 字 。 它 们 可 以 属 于 任 何 的 操 作 系 统 , 如 MS-DOS,OS/2 ,或 W indows N T。 Linux 。 创 建 的 第 一 个 硬 盘 分 区 是 hda2, 如 果 你 添 加 一 个 新 的 IDE 硬盘 ,它 的 第 一 个 分 区 的 名 字 是 hdb1 。

一 旦 创 建 了 分 区 ,你 需 要 将 之 进 行 格 式 化 。 用 mkfs 命 令 和 硬 盘 分 区 的 名 字即 可 完 成 这 一 工 作 。 一 个 硬 盘 分 区 是 一 个 在 /dev 目 录 中 有 自 己 的 设 备 名 的 设 备 。使 用 mkfs 命 令 时 ,你 要 指 定 它 的 全 路 径 名 。 例 如 ,第 一 个 硬 盘 上 的 第 二 个 分 区 会有 设 备 名 /dev/hda5 。 下 一 个 例 子 将 那 个 分 区 进 行 了 格 式 化 。

# mkfs -t ext2 /dev/hda5

你 现 在 可 以 安 装 你 新 的 硬 盘 分 区 ,并 将 之 联 到 文 件 结 构 中 去 。

自 动 安 装 文 件 系 统 :fstab 文 件

当 在 你 的 Linux 系 统 中 加 入 一 个 新 的 硬 盘 分 区 时 ,你 很 可 能 希 望 在 开 始 时 对它 进 行 自 动 安 装 , 在 结 束 时 自 动 卸 载 。 否 则 , 你 每 次 开 启 或 关 闭 系 统 的 时 候 , 都 要对 硬 盘 分 区 明 确 地 安 装 和 卸 载 。 要 让 Linux 自 动 装 卸 你 新 的 硬 盘 分 区 中 的 文 件系 统 ,你 只 须 将 它 的 名 字 加 到 fstab 文 件 中 , 你 可 以 直 接 仔 细 地 编 辑 fstab 文 件 输入 一 个 新 的 入 口 来 完 成 这 一 工 作 ,你 也 可 以 用 下 一 节 中 描 述 的 fstool 命 令 。 fstab 文 件 在 目 录 /etc 中 。 它 列 出 了 用 mount 命 令 和 -a 选 项 安 装 的 文 件 系 统 。 这 一mount -a 命 令 在 /etc/rcd/rcboot 文 件 中 。 这 一 命 令 进 行 了 系 统 初 始 化 操 作 。 每次 你 启 动 系 统 时 它 都 被 执 行 。 当 你 关 闭 系 统 的 时 候 ,umount -a 命 令 被 执 行 以 卸载 fstab 文 件 中 所 列 的 全 部 文 件 系 统 。 umount -a 命 令 可 以 在 /etc/rcd/init/balt 文件 中 找 到 , 它 当 中 包 含 着 当 你 关 闭 系 统 时 要 执 行 的 命 令 。 这 样 , 你 在 /etc/fstab 文件 中 指 定 的 文 件 系 统 将 在 系 统 启 动 时 自 动 安 装 ,当 系 统 关 闭 时 被 自 动 卸 载 。 其 它如 Redhat 的 系 统 可 能 会 把 umount -a 命 令 放 在 名 为 /etc/rcd/rcsysinit 的 文 件 中 。

在 fstab 文 件 中 的 一 个 入 口 包 括 几 个 域 ,每 个 域 之 间 用 空 格 或 tab 隔 开 。 第 一

个 域 是 要 安 装 的 文 件 系 统 的 名 字 。 它 通 常 以 /dev 开 头 ,如 /dev/hda3 代 表 第 三 个硬 盘 分 区 。 第 二 个 域 是 你 希 望 将 设 备 上 的 文 件 系 统 进 行 安 装 的 文 件 结 构 中 的 目录 。 第 三 个 域 是 要 安 装 的 文 件 系 统 的 类 型 。 表 7-6 列 出 了 你 所 有 可 以 安 装 的 文件 系 统 类 型 。 一 个 标 准 的 Linux 硬 盘 分 区 的 类 型 是 ex t。 下 一 个 例 子 表 示 了 一 个

主 Linux 硬 盘 分 区 的 入 口 。 它 被 安 装 在 根 目 录 /中 ,文 件 类 型 是 ext2 。

/dev/hda3 ext2 defaults 0 /

在 文 件 系 统 类 型 之 后 的 还 列 出 了 安 装 文 件 系 统 的 不 同 选 项 。 你 可 以 输 入default 来 指 定 一 套 缺 省 的 选 项 。 你 可 以 一 个 个 列 出 特 定 的 选 项 ,选 项 之 间 用 逗 号分 隔 ( 没 有 空 格 )。 缺 省 选 项 指 一 设 备 为 读 / 写 , 非 同 步 、 块 、 普 通 用 户 无 法 进 行 安装 ,程 序 可 在 上 面 执 行 。与 之 相 反 , 一个 CD-ROM 只 有 有 限 的 几 个 选 项 可 供 选 择 ,ro 和 noauto,ro 指 定 它 是 只 读 的 ,noauto 指 定 它 不 是 自 动 安 装 的 。 noauto 选 项 是同 CD-ROM 和 软 驱 一 同 使 用 的 ,那 么 它 们 就 不 会 被 自 动 安 装 ,既 然 你 不 知 道 在 启动 的 时 候 在 驱 动 器 中 是 否 有 东 西 。 同 时 ,CD-ROM 和 软 驱 的 入 口 指 定 了 当 你 决定 进 行 安 装 时 要 安 装 的 目 录 。 表 7-7 列 出 了 安 装 一 个 文 件 系 统 的 选 项 。 紧 跟 着是 一 个 CD-ROM 和 软 驱 入 口 的 例 子 。 注 意 :CD-ROM 文 件 系 统 的 类 型 同 硬 盘 分区 的 文 件 系 统 类 型 Lso9660 是 不 同 的 。软 驱 同 硬 盘 分 区 一 样 有 相 同 的 缺 省 选 项 。

/dev/fdo

/mnt/floppy

ext2 defaults,noauto

0

0

/dev/hdc

/mnt/cdrom

Tso9660 ro,noauto

0

0

最 后 的 两 个 域 由 整 数 值 组 成 。 前 一 个 被 dump 命 令 用 来 判 断 一 个 文 件 系 统是 否 需 要 被 清 除 ,将 文 件 系 统 进 行 备 份 。 最 后 一 个 被 fsck 用 来 判 定 是 否 需 要 对 一个 文 件 系 统 进 行 检 查 以 及 以 何 种 次 序 进 行 。 如 果 域 的 值 为 1 ,它 表 明 是 一 个 boot 分 区 。 值 0 表 明 fsck 无 须 对 文 件 系 统 进 行 检 查 。

下 面 有 文 件 /etc/fstab 的 一 个 拷 贝 。 注 意 第 一 行 是 注 释 。 所 有 的 注 释 行 都 以# 开 头 。 /proc 文 件 系 统 的 入 口 是 一 种 特 殊 的 入 口 ,它 被 Linux 操 作 系 统 用 来 管 理它 的 进 程 。 它 并 不 是 一 个 实 际 的 设 备 。

/extc/fstab

#<device

>

<mountpoi

nt>

<filesyste m type>

<options>

<dump>

<fskorder

>

/dev/hda3

/

ext2 defaults

0

1

/dev/hdc

/mnt/cdrom

iso9660

ro,noauto

0

1

/dev/fdo

/mnt/floppy

ext2

defaults,no

auto

0

/pdo

/proc

proc

defaults

/dev/hda2

none

swap

sw

/dev/hda1

/mnt/dos

msdos

defaults

0

0

为 了 要 在 /etc/fstab 文 件 中 加 入 一 个 入 口 , 你 或 者 可 以 直 接 编 辑 /etc/fstab 文件 ,或 者 利 用 实 用 具 fstool 为 你 提 供 信 息 , 并在 /etc/fstab 文 件 中 加 入 正 确 的 入 口 。正 如 前 面 所 描 述 的 ,你 可 以 把 MS-DOS 操 作 系 统 使 用 的 MS-DOS 分 区 装 到 Linux 的 文 件 结 构 中 , 同 你 安 装 任 何 的 Linux 文 件 系 统 相 同 。 你 只 要 把 文 件 的 类型 指 定 为 MS-DOS 即 可 。 你 可 能 觉 得 当 你 启 动 Linux 系 统 时 自 动 安 装 MS-DOS

分 区 是 很 方 便 的 。 要 做 到 这 一 点 ,你 只 要 在 你 的 /etc/fstab 文 件 中 为 MS -DOS 分区 加 一 个 入 口 即 可 。 你 可 以 为 每 一 个 想 要 安 装 的 MS-DOS 分 区 设 置 一 个 入 口 , 并 在 你 想 安 装 的 目 录 名 之 前 批 定 分 区 的 设 备 名 。 目 录 /mnt/dos 是 一 个 逻 辑 上 的选 择 ( 要 确 保 /mut 目 录 之 中 已 经 创 建 3dos 目 录 ) 。 至 于 文 件 系 统 的 类 型 , 输 入msdos 。 下 一 个 例 子 列 出 了 一 个 etc/fstab 文 件 的 标 准 MS-DOS 分 区 的 入 口 ,注意 在 etc/fstab 文 件 的 最 后 一 项 是 一 个 安 装 MS -DOS 分 区 的 项 。

/dev/hdal /mnt/dos msdos defaults 0 0

对 于 任 何 一 个 在 文 件 etc/fstab 中 有 条 目 的 分 区 ,你 可 以 只 用 fstab 中 的 项 指

定 的 安 装 目 录 对 之 进 行 安 装 , 你 无 需 输 入 设 备 文 件 名 。 mount 命 令 将 查 询 fstab 文 件 中 的 项 对 之 进 行 寻 找 , 利 用 目 录 来 标 识 项 ,这 样 , 就 可 以 找 到 设 备 名 。 例 如 , 要将 上 一 个 例 子 中 /dev/hdal DOS 分 区 卸 载 ,mount 命 令 ,只 须 知 道 它 所 安 装 的 目 录即 可 ,在 这 个 例 子 里 是 /mnt/do s。

# mount /mnt/dos

如 果 你 的 etc/fstab 文 件 被 破 坏 了 — — 比 如 说 ,有 一 行 偶 然 被 删 除 或 修 改 了 —

  • 那 么 你 的 系 统 将 会 启 动 并 进 入 一 种 维 护 模 式 ,允 许 你 对 分 区 进 行 只 读 访 问 。 要想 进 行 读 / 写 访 问 以 修 复 你 的 etc/fstab 文 件 , 你 需 要 重 新 安 装 你 的 主 分 区 。 下 面的 命 令 进 行 了 这 样 的 操 作 :

# mount -n -0 remount, ro/

你 可 以 利 用 这 里 的 etc/fstab 文 件 的 例 子 来 看 到 你 的 条 目 应 该 是 何 种 样 子 。

/proc 和 swap 分 区 项 是 尤 其 重 要 的 。

Linux 文 件 系 统 管 理 者 :Lisa 和 fstool

你 可 以 用 Lisa 工 具 来 管 理 你 的 fstab 文 件 , 而 不 是 直 接 对 它 进 行 编 辑 。 Lisa 是 同 amd daemon 装 在 一 起 进 行 工 作 的 ,因 此 它 是 首 选 的 。 在 系 统 设 置 菜 单 中 , 你 会 看 到 一 项 是 ” 安 装 表 设 置 ” , 这 一 项 会 弹 出 , 图 7-6 所 示 的 菜 单 , 列 出 了 对 你 的mount 表 ,即 etc/fstab 文 件 的 项 进 行 显 示 ,添 加 和 删 除 的 选 项 。

第 7 章 文 件 管 理 操 作 - 图6

图 7-6Lisa mount 表的选项

要 加 入 一 项 , 选 择 ” 在 mount 表 中 加 入 新 的 项 目 ”。 下 一 屏 的 显 示 要 求 你 输 入要 安 装 的 分 区 的 名 字 或 你 想 要 安 装 的 NFS 路 径 ( 见图 7-7 )。 它 会 使 这 一 项 生 效 , 并 确 保 它 是 一 个 实 际 的 分 区 或 是 一 个 可 访 问 的 路 径 , 然 后 你 会 被 要 求 输 入 你 想 将分 区 中 的 文 件 系 统 安 装 到 的 目 录 的 名 字 。 再 然 后 你 会 被 要 求 确 认 文 件 系 统 是 只读 的 ,还 是 可 以 读 写 的 。

第 7 章 文 件 管 理 操 作 - 图7

图 7-7 在 mount 表中加入一项

“ Delete an entry ” 选 项 允 许 你 交 一 项 从 文 件 系 统 中 删 除 。 要 小 心 不 要 无 意中 将 根 文 件 系 统 删 除 ,即 安 装 在 / 和 /proc 以 及 swap 分 区 的 文 件 系 统 。

如 果 不 使 用 Lisa ,你 也 可 以 使 用 Red hat 的 fstool 实 用 工 具 来 管 理 你 的etc/fstab 文 件 。 fstool 现 在 并 不 是 设 计 为 与 amd daemon 一 同 使 用 的 。 你 可 以从 fvwm 任 务 条 或 菜 单 来 访 问 fstool, 也 可 从 Adm in-Tools 文 件 夹 的 Caldea 根 桌面 对 这 进 行 访 问 。 当 你 启 动 fstool 后 ,一 个 列 着 你 的 etc/fstab 文 件 内 容 的 窗 口 会出 现 。 使 用 其 中 的 按 钮 和 菜 单 ,你 可 以 安 装 或 卸 载 文 件 系 统 , 在 etc/fstab 文 件 中加 入 新 的 文 件 系 统 , 也 可 以 更 改 你 的 文 件 系 统 的 任 何 选 项 。 你 也 可 以 轻 松 地 加入 NFS 文 件 系 统 , 图 7-8 显 示 了 fstool 的 窗 口 。

第 7 章 文 件 管 理 操 作 - 图8

图 7-8fstool 窗口

在 fstab 文 件 中 列 出 的 文 件 系 统 的 项 被 显 示 在 窗 口 中 央 的 栏 内 。 最 顶 端 的 行列 出 了 每 个 域 的 名 字 。 下 端 依 次 排 开 的 五 个 按 钮 描 述 了 你 可 以 对 文 件 系 统 执 行的 不 同 操 作 。 只 要 单 击 文 件 系 统 的 条 目 ,它 就 会 处 于 高 亮 状 态 。 然 后 单 击 按 钮 。单 击 Info 按 钮 可 以 弹 出 一 个 显 示 文 件 系 统 详 细 信 息 的 窗 口 ,包 括 剩 余 空 间 的 byte 数 。 Check 按 钮 可 以 检 查 文 件 系 统 是 否 有 错 误 。

Mount 和 unmount 按 钮 可 对 选 定 的 文 件 系 统 安 装 或 卸 协 。 Format 按 钮 将 一个 文 件 系 统 进 行 格 式 化 ,Edit 按 钮 允 许 你 改 变 一 些 域 ,例 如 文 件 系 统 的 选 项 。 使 用fstool 进 要 非 常 小 心 。 你 不 会 想 将 一 个 你 想 进 行 访 问 的 文 件 系 统 卸 载 ,你 也 不 想无 意 中 将 一 个 文 件 系 统 格 式 化 ,以 致 丢 失 上 面 你 所 有 的 数 据 。

窗 口 的 左 上 角 有 两 个 菜 单 , 一 个 设 置 你 的 文 件 系 统 管 理 员 (FSM), 另 一 个 设 置网 络 文 件 系 统 (NIS),NFS 文 件 将 在 下 章 进 行 讲 述 。 你 可 对 文 件 系 统 管 理 员 进 行设 置 ,以 在 窗 口 中 显 示 更 多 的 信 息 ,例 如 你 的 文 件 系 统 中 未 占 用 的 存 贮 空 间 所 占 的百 分 比 。 你 也 可 以 用 FSM 菜 单 在 /etc/fstab 文 件 中 添 加 或 删 除 文 件 系 统 ,Add 条目 允 许 你 添 加 一 个 文 件 系 统 , 而 Delete 条 目 允 许 你 删 除 一 个 文 件 系 统 。 例 如 ,要将 在 一 个 硬 盘 分 区 上 的 MS-DOS 文 件 系 统 加 到 etc/fstab 文 件 中 去 ,你 应 从 FSM 菜 单 中 选 择 Add ,然 后 输 入 文 件 系 统 的 设 备 名 。

网 络 文 件 系 统 :NFS 和 etc/exports

网 络 文 件 系 统 :(NFS ) 可 以 允 许 你 将 一 中 远 地 计 算 机 上 的 文 件 系 统 如 同 本 地的 文 件 系 统 一 样 进 行 安 装 。 你 便 可 以 直 接 访 问 远 地 文 件 系 统 上 的 任 何 一 个 文 件 。这 样 做 有 一 个 优 点 :在 岗 络 上 不 同 的 文 件 系 统 可 以 访 问 同 一 上 文 件 ,而 无 须 各 自 保留 自 己 的 拷 贝 。 只 会 在 远 地 文 件 系 统 中 有 一 个 其 它 的 计 算 机 可 以 直 接 进 行 访 问的 文 件 。

NFS 在 TCP/IP 的 岗 络 中 工 作 ,远 地 计 算 机 使 所 包 含 的 文 件 系 统 能 够 被 其 它网 络 上 的 计 算 机 所 访 问 。 为 了 完 成 这 项 任 务 ,它 需 要 将 文 件 系 统 输 出 ,这 便 需 要 在

称 作 /etc/exports 的 NFS 设 置 文 件 中 加 入 一 个 条 目 , 与 此 同 时 还 要 同 时 两 个daemon — — rpc. mountd 和 rpc.nfsd 来 支 持 其 它 文 件 系 统 的 访 问 。 /etc/exports 文 件 中 的 条 目 指 定 了 要 被 输 出 的 文 件 系 统 以 及 岗 络 上 可 对 之 进 行 访 问 的 计 算机 。 对 于 文 件 系 统 ,输 入 安 装 点 ,即 它 所 要 安 装 的 目 录 。 这 之 后 是 一 个 计 算 机 的 列表 , 列 出 了 可 以 对 这 个 文 件 系 统 访 问 的 计 算 机 。 在 每 台 计 算 机 后 可 能 跟 着 包 含 在括 号 中 以 逗 号 所 分 隔 的 安 装 选 项 。 例 出 , 你 想 给 一 台 计 算 机 读 权 限 而 给 另 外 一台 计 算 机 读 / 写 权 限 。 如 果 只 列 出 了 选 项 , 那 么 它 们 适 用 于 在 一 台 计 算 机 。 表 7-8 列 出 了 安 装 选 项 的 列 表 。 在 /etc/exports 文 件 中 条 目 的 例 子 如 下 所 示 。 无 安 全 检查 的 只 读 访 问 权 限 给 予 所 百 的 计 算 机 ,以 对 安 装 在 /pub 目 录 — — 一 个 公 共 访 问 的通 用 名 字 — — 中 的 文 件 系 统 进 行 访 问 。 ant.trek.com 计 算 机 被 赋 予 了 对 安 装 在

/home/foodstuff 目 录 中 文 件 系 统 进 行 读 / 写 访 问 的 权 限 。 下 一 项 允 许

butterfly.trek.com 对 你 的 CD-ROM 进 行 访 问 。 最 后 一 项 禁 止 任 何 人 对

/home/richlp 的 访 问 。

/etc/exports

/pub(ro,Tnsecure,all-squash)

/home/foodstuffant.trek.com(rw)

/mnt/cdrombatterfly,trek,com(ro)

/home/richcp(noaccess)

一 旦 NFS 的 文 件 系 统 被 设 置 为 允 许 , 网 络 上 不 同 的 计 算 机 在 使 用 文 件 系 统 之前 应 首 先 进 行 安 装 。 你 可 以 用 etc/fstab 文 件 的 条 目 或 用 一 个 明 确 的 mount 命 令来 安 装 一 个 NFS 文 件 系 统 。 在 etc/fstab 文 件 文 中 NFS 的 条 目 的 安 装 类 型 是NFS 。 一 个 NFS 文 件 系 统 名 包 括 文 件 系 统 所 在 计 算 机 的 主 机 名 ,其 后 是 它 所 安

装 的 目 录 名 。 二 者 之 间 由 冒 号 分 隔 开 。 便 如 ,rose,berkeley,edu:/nome/prject 指定 了 文 件 系 统 被 安 装 在 名 为 rose.berkeley.edu 的 计 算 机 的 /home/project 目 录中 。

NFS 也 有 自 己 的 一 些 特 殊 选 项 可 供 你 在 NFS 项 中 使 用 。 你 可 以 指 定 数 据 报的 大 小 , 以 及 你 的 计 算 机 等 待 主 机 回 应 的 时 间 。 你 也 以 指 定 一 个 文 件 系 统 是 进 行硬 安 装 还 是 进 行 软 安 装 。 对 于 一 个 硬 安 装 的 文 件 系 统 而 言 , 如 果 因 为 某 种 原 因 远地 的 系 统 回 应 失 败 ,你 的 计 算 机 会 不 断 地 与 远 地 计 算 机 联 系 。 对 于 软 安 装 而 言 , 在一 个 给 定 的 时 间 间 隔 这 后 , 你 的 计 算 机 会 停 止 与 远 端 主 机 的 联 系 并 给 出 出 错 信息 。 硬 安 装 是 缺 省 的 。 表 7-9 和 mount 命 令 的 页 包 含 着 这 些 NFS 客 户 端 先 项的 列 表 。 它 们 与 前 面 所 说 的 NFS 服 务 器 端 的 选 项 是 不 同 的 。

下 面 是 一 个 NFS 条 目 的 例 子 。 远 地 系 统 是 ant.trek.com ,文 件 系 统 被 安 装 在

/nome/projects 目 录 中 。 文 件 系 统 将 被 安 装 在 本 地 的 /home/richlp 目 录 中 。 系 统的 类 型 是 NFS,timeo 选 项 指 定 本 地 系 统 将 等 待 十 分 之 一 秒 的 二 十 倍 , 即 两 秒 钟 , 来 等 候 回 应 。

ant.trek.com:/home/Projects /home/richlp nfs time0=20

你 也 可 以 使 用 mount 命 令 和 -t nfs 选 项 来 明 确 地 安 装 一 个 NFS 文 件 系 统 。要 明 确 地 安 装 前 一 个 条 目 ,可 以 使 用 下 述 命 令 :

#mount -t nfs -0 time0=20 ant.trek.com:/home/[rpkects/home/richlp

7.4.1NIS

在 支 持 网 络 的 NFS 中 , 许 多 资 源 和 设 备 被 同 一 个 系 统 所 共 享 。 正 常 情 况 下 ,

每 个 系 统 都 应 有 自 己 对 每 个 设 备 和 资 源 的 设 置 文 件 。 如 果 有 变 动 ,则 需 要 对 每 个系 统 都 加 以 改 动 。 然 而 NFS 提 供 了 一 种 被 称 为 网 络 信 息 服 务 (NIS )的 特 殊 服 务 , 它 可 为 整 个 网 络 维 护 其 设 置 文 件 。 如 果 有 变 动 ,你 只 需 改 变 N IS 文 件 即 可 。 N IS 对 大 部 分 管 理 信 息 所 需 的 信 息 都 是 有 效 的 ,例 如 与 用 户 有 关 的 信 息 ,网 络 或 设 备 的访 问 。 命 名 ,你 可 以 用 N IS 服 务 来 维 护 密 码 信 息 ,你 只 须 修 改 N IS 的 密 码 文 件 即可 。

N IS 最 早 是 由 Sun Microsystem 开 发 出 来 的 , 它 开 始 被 称 为 Sun 的 黄 皮 书 。

N IS 文 件 保 存 在 一 个 NIS 服 务 器 上 (N IS 服 务 器 有 时 也 被 称 作 YP 服 务 器 )。 在 网格 上 的 单 独 的 系 统 利 用 NIS 客 户 来 向 NIS 服 务 器 发 送 请 求 。 N IS 服 务 器 把 它 的信 息 存 在 一 个 叫 作 maps 的 特 殊 的 数 据 库 文 件 中 。 现 在 有 N IS 客 户 端 和 服 务 器端 的 Linux 版 本 Linux 的 NIS 客 户 很 容 易 地 就 可 以 连 接 到 使 用 N IS 的 网 络 上 。

你 的 CD-ROM 中 有 Linux 的 客 户 端 和 服 务 器 端 , 它 们 在 RPM 包 中 被 作 为 缺省 选 项 进 行 了 安 装 。 N IS 的 客 户 端 是 作 为 初 始 的 Open Linux 安 装 的 一 部 分 来 进行 安 装 的 ,你 在 任 何 时 候 都 可 以 用 Lisa 来 设 置 你 的 N IS 客 户 端 。 NIS 的 客 户 端程 序 是 ypbind(NIS 客 户 端 的 daemon)ypwhich,ypcat,yppoll,ypmatch,yppasswd 和 ypse t。 每 一 个 都 有 列 着 自 己 的 详 细 使 用 方 法 的 man 页 ,N IS 的 服 务 器 程 序 有ypserv,ypinit,yppasswdd,yppush,ypxfr 和 netgroup — — 每 一 个 都 有 自 己 的 man 页 。 在 /usn/doc/HO WTO 目 录 中 可 以 找 到 一 上 详 细 的 N IS — — HOWTO 文 档 。

档 案 文 件 和 设 备 :tar

tar 实 用 工 具 可 为 文 件 和 目 录 创 建 档 案 。 利 用 tar, 你 可 以 为 某 一 特 定 文 件 创建 档 案 , 在 档 案 中 改 变 文 件 , 或 者 向 档 案 中 加 入 新 的 文 件 , 只 要 你 愿 意 。 你 甚 至 可以 为 目 录 以 及 其 中 的 文 体 和 子 目 录 创 建 档 案 , 然 后 在 必 要 的 时 候 恢 复 。 tar 最 早是 被 开 发 用 来 在 磁 带 上 创 建 档 案 。 名 词 ” tar” 代 表 的 是 磁 带 档 案 (tape archive), 你可 以 在 任 何 设 备 上 创 建 档 案 ,如 软 盘 ,你 也 可 以 创 建 另 一 个 档 案 文 件 包 含 一 个 档 案文 件 。 对 于 备 份 文 件 或 看 将 几 个 文 件 组 合 成 为 一 个 文 件 以 便 于 网 络 传 输 而 言 ,tar 是 一 个 非 常 理 想 的 实 用 工 具 。

在 Linux 中 ,tar 通 常 被 用 来 在 设 备 或 文 件 上 创 建 档 案 。 利 用 F 选 项 和 设 备 或文 件 的 名 字 ,你 可 以 指 示 tar 命 令 将 档 案 置 于 特 定 的 设 备 或 文 件 中 。 利 用 tar 命 令和 F 选 项 的 语 法 如 下 例 子 如 下 例 所 示 。 设 备 或 文 件 名 通 常 被 引 用 作 档 案 文 件 中 。当 为 tar 的 档 案 创 建 一 个 文 件 时 ,这 个 文 件 名 的 扩 展 通 常 是 如 果 你 指 定 了 一 个 目录 名 ,那 么 它 所 的 子 目 录 都 会 被 包 含 在 档 案 之 中 。

$ tar opionsf archive-name.tar directory-and-filenames

要 创 建 一 个 档 案 , 应 使 用 C 选 项 。 与 F 选 项 一 起 ,C 选 项 会 在 设 备 或 文 件 中创 建 档 案 。 你 应 在 F 选 项 的 左 边 输 入 这 一 选 项 。 注 意 在 tar 命 令 的 选 项 前 面 没有 横 线 。 表 7-10 列 出 了 tar 的 不 同 选 项 。 在 下 一 个 例 子 中 ,目 录 mydir 和 它 所 有的 子 目 录 都 被 存 入 文 件 myarch.tar 中 。

$ tar cf m yarch.tar mydir

用 户 然 后 可 以 利 用 x 选 项 将 目 录 由 磁 带 中 恢 复 。 xf 选 项 将 从 一 个 档 案 文 件

或 设 备 进 行 恢 复 。 tar 命 令 的 恢 复 操 作 也 会 产 生 它 所 有 的 子 目 录 , 在 下 一 个 例 子中 ,xf 选 项 指 示 tar 命 令 从 tar 文 件 m yarch.tar 中 恢 复 所 有 的 文 件 和 子 目 录 。

$ tar xf m yarch.tar

你 可 以 用 r 选 项 向 一 个 已 经 被 创 建 的 档 案 中 添 加 文 件 。 r 选 项 将 文 件 添 加 到档 案 的 末 尾 。 在 下 一 个 例 子 中 , 用 户 将 Letters 目 录 中 的 文 件 添 加 到 档 案mgarch.tar 中 。

$ tar rf myarch.tar Letters

如 果 你 想 要 改 动 那 么 已 经 存 档 的 目 录 中 的 文 个 ,你 可 以 使 用 u 选 项 使 tar 更新 档 案 中 的 文 件 。 tar 比 较 每 一 个 档 案 文 件 与 相 应 用 户 目 录 中 文 件 最 近 一 次 被 修改 的 时 间 , 然 后 将 上 一 次 存 档 这 后 又 被 修 改 过 的 文 件 拷 贝 到 档 案 文 件 中 去 。 在 用户 目 录 中 新 创 建 的 文 件 也 会 被 添 加 到 档 案 文 件 中 。在 下 一 个 例 子 中 ,用 户 用 mydir 目 录 中 最 近 被 修 改 或 添 加 的 文 件 来 对 myarch.tar 文 件 进 行 更 新 。

tar uf myarch.tar mydir

如 果 你 想 查 看 在 一 个 档 案 中 存 贮 着 哪 些 文 件 。 你 可 以 使 用 tar 命 令 和 t 选 项 。下 一 个 例 子 将 列 出 所 有 存 贮 在 myarch.tar 档 案 中 的 文 件 。

tar tf m yarch.tar

要 将 文 件 备 份 到 一 个 特 定 的 设 备 ,只 须 把 设 备 名 作 为 档 案 。 在 下 一 个 例 子 中 , 用 户 在 /dev/fdo 设 备 的 软 盘 中 创 建 了 一 个 档 案 ,并 将 mydir 目 录 中 所 有 的 文 件 都拷 贝 到 档 案 中 。

$ tar cf/dev/fdo m ydir

要 恢 复 设 备 磁 盘 中 的 文 件 ,可 使 用 xf 选 项 :

$ tar xf/dev/fdo

如 果 你 所 备 份 的 文 件 大 小 超 过 设 备 可 用 的 存 贮 器 , 如 软 盘 ,你 可 以 创 建 一 个 使用 多 个 标 号 的 tar 档 案 。 M 选 项 指 示 tar 命 令 提 示 你 使 用 一 个 新 的 存 贮 设 备 ,当玖 百 的 设 备 已 满 的 时 候 。 当 使 用 M 选 项 向 一 个 软 驱 进 行 存 档 时 ,tar 命 令 在 一 张软 盘 已 满 的 时 候 会 提 醒 你 再 放 入 一 张 新 的 软 盘 。 这 样 你 就 可 以 把 tar 档 案 存 入几 张 磁 盘 中 。

$ tar cmf/dev/fdo mydir

要 恢 复 几 张 盘 中 的 档 案 ,只 要 将 第 一 张 放 入 软 驱 ,然 后 输 入 有 X 和 M 选 项 的 tar

命 令 。 当 必 要 时 你 会 被 提 醒 放 入 另 外 一 张 软 盘 。

$ tar xmf/dev/fdo

tar 操 作 不 会 对 档 案 文 件 实 行 压 缩 操 作 。 如 果 你 想 压 缩 档 案 文 件 ,你 可 以 指 示tar 激 活 gzip 实 用 工 具 来 在 存 档 之 前 对 文 件 进 行 压 缩 。 利 用 Z 选 项 ,tar 在 对 文 件存 档 之 前 首 先 要 使 用 gzip 来 压 缩 文 件 。当 恢 复 文 件 时 ,同 样 的 Z 选 项 将 激 活 gzip 对 文 件 解 压 。

$ tar czf m yarch.tar mydir

记 住 压 缩 档 案 中 的 单 个 文 件 和 整 体 压 缩 档 案 是 不 同 的 。 通 常 ,档 案 文 件 是 为了 便 于 传 输 而 把 几 个 文 件 组 合 成 为 一 个 tar 文 件 。 为 了 缩 短 传 输 时 间 ,档 案 应 当越 小 越 好 。 你 可 以 将 压 缩 可 以 对 之 压 缩 , 减 小 它 的 大 小 ,然 后 传 送 压 缩 后 的 版 本 。接 收 者 可 以 对 之 解 压 缩 ,然 后 恢 复 tar 文 件 。 在 tar 文 件 上 使 用 gzip 将 会 产 生有 .tar.gz 扩 展 的 文 件 。 扩 展 .gz 被 加 到 一 个 被 压 缩 的 gzip 文 件 名 之 后 。 下 面 的例 子 创 建 了 myarch.tar 的 一 个 压 缩 的 版 本 ,它 又 具 有 了 .gz 的 扩 展 。

$ gzip myarch.tar

$ ls

$ myarch.tar.gz

如 果 你 已 经 指 定 了 一 个 特 定 的 缺 省 设 备 ,比 如 说 磁 带 ,你 希 望 在 上 面 创 建 一 个档 案 ,你 只 需 要 使 用 tar,而 无 须 使 用 f 选 项 和 设 备 或 文 件 名 。 这 对 进 行 你 文 件 的备 份 是 有 帮 助 的 , 缺 省 设 备 的 名 字 的 名 字 存 在 被 称 为 /etc/default/tar 的 文 件 中 。在 下 一 个 例 子 中 说 明 了 使 用 缺 省 设 备 的 tar 命 令 的 语 法 。 如 果 你 指 定 了 一 个 目录 中 ,那 么 它 所 有 的 子 目 录 都 会 被 包 含 在 档 案 中 。

$ tar option directory-and-file-names

在 下 一 个 例 子 中 , 目 录 mydir 和 它 所 有 的 子 目 录 都 被 存 在 缺 省 磁 带 设 备 的 一个 磁 带 上 。

$ tar c mydir

在 下 一 个 例 子 中 ,mydir 目 录 和 它 所 有 的 文 件 及 子 目 录 被 从 缺 省 的 磁 带 设 备中 恢 复 出 来 并 放 入 用 户 的 工 作 目 录 中 。

$ tar x mydir

7.5.1XTar

XTar X-Windows 应 用 程 序 可 让 你 使 用 W indows 和 菜 单 来 选 择 tar 档 案 文件 并 将 之 恢 复 。 你 可 以 在 Xterm 窗 口 中 输 入 命 令 xtar 或 者 从 fvwm 工 作 菜 单 中选 项 xtar 。 xtar 有 三 个 菜 单 :XTar,Options 和 Attributes。 你 首 先 应 使 用 XTar 菜 单 上 的 Open 项 来 选 择 一 个 tar 档 案 文 件 。 这 一 操 作 将 打 开 一 个 窗 口 。 窗 口 中显 示 了 一 个 目 录 中 的 文 件 , 你 可 以 从 一 个 目 录 移 到 另 一 个 目 录 。 一 旦 你 选 择 了 你所 希 望 的 tar 档 案 ,组 成 tar 档 案 的 所 有 文 件 将 在 主 窗 口 中 列 出 。 利 用 XTar 你 可

选 择 将 整 个 tar 档 案 恢 处 处 或 者 只 是 恢 复 其 中 的 几 个 文 件 。 要 恢 复 整 个 档 案 , 应选 择 Xtar 菜 单 中 Unpack All item 选 项 。 这 一 选 项 允 许 你 将 档 案 恢 复 到 一 个 你指 定 的 目 录 中 。 要 恢 复 某 一 人 单 独 的 文 件 , 你 首 先 要 选 中 这 一 文 件 ( 你 可 以 使 用XTar 菜 单 中 的 Search 功 能 来 找 到 这 一 文 件 ) 然 后 选 择 Option 菜 单 中 Extract item 项 。 选 项 菜 单 中 也 有 一 上 View 项 来 显 示 诸 如 README 文 件 之 类 比 较 短 的 文 本文 件 。 图 7-9 显 示 一 个 显 示 tar.gz 文 件 的 XTar 程序 ,XTar 也 可 工 作 于 压 缩 的 档案 ( 你 无 须 首 先 将 之 解 压 )。

文 件 压 缩 :gzip

减 小 文 件 的 大 小 有 若 干 个 原 因 。 最 普 遍 的 两 个 是 减 小 存 贮 空 间 和 在 通 过 网络 传 输 文 件 时 ,减 少 传 输 的 时 间 。gzip 实 用 工 具 是 用 来 对 文 件 压 缩 和 解 压 的 GNU 实 用 压 缩 工 具 。 要 压 缩 一 个 文 件 , 只 要 输 入 命 令 和 文 件 名 。 这 将 使 用 文 件 的 压 缩版 本 来 代 替 原 文 件 , 现 在 的 文 件 有 3.gz 扩 展 。

$ gzip mydata

$ ls mydata.gz

第 7 章 文 件 管 理 操 作 - 图9

图 7-9XTar 归 档 工 具

要 将 一 个 gzip 文 件 解 压 , 可 使 用 gzip 命 令 和 -d 选 项 或 gunzip 命 令 。 这 些 命令 将 把 有 .gz 扩 展 的 压 缩 文 件 解 压 ,并 用 有 相 同 根 名 的 解 压 版 本 代 替 压 缩 文 件 , 但是 没 有 了 .gz 扩 展 。当使 gunzip 时 ,你 甚 至 都 有 用 输 入 .gz 扩 展 。gunzip 和 gzip -d 将 假 定 文 件 有 .gz 扩 展 。 表 7-11 列 出 了 gzip 的 不 同 选 项 。

$ gunzip mydata.gz

$ ls

m ydata

假 定 你 希 望 显 示 或 打 印 一 个 压 缩 文 件 的 内 容 而 不 对 文 件 先 进 解 压 。 Zcat 命令 将 产 生 文 件 的 一 个 解 压 版 本 并 将 之 发 向 标 准 输 出 。你 然 后 可 以 把 这 个 输 出 定向 到 打 印 机 或 才 显 示 上 一 实 用 工 具 ,例 如 more 。 原 有 的 文 件 将 保 留 它 原 有 的 压缩 状 态 。

$ Zcat mydata.gz /more

你 也 可 以 压 缩 一 个 tar 档 案 文 件 。 这 将 产 生 有 。 tar.gz 扩 展 的 文 件 , 压 缩 的 档案 文 件 通 常 被 用 于 通 过 网 络 传 输 大 文 件 。

$ gzip myarch.tar

$ ls

myarch.tar.gz

你 可 以 用 tar Z 选 项 激 活 gzip 来 单 独 压 缩 tar 文 件 。 利 用 Z 选 项 ,tar 将 在把 文 件 置 入 档 案 之 前 首 先 对 文 件 进 行 压 缩 。 然 中 ,如 果 档 案 中 的 文 件 被 用 Z 选 项压 缩 ,档 案 不 能 被 更 新 ,也 有 能 添 加 文 件 。 所 有 有 文 件 都 必 须 被 同 时 压 缩 并 添 加 。你 也 可 以 用 compress 和 uncompress 命 令 来 创 建 压 缩 文 件 。它 们 产 生 具 有 .Z

扩 展 的 文 件 ,使 用 不 同 的 压 缩 格 式 。 compress 和 uncompress 使 用 并 不 很 普 遍 , 但 你 不 时 会 看 到 有 .Z 扩 展 的 文 件 。 你 可 用 uncompress 命 令 来 将 有 .Z 扩 展 的 文件 解 压 。 gzip 是 标 准 的 GNU 压 缩 实 用 工 具 ,而 compress 不 是 。

从 压 缩 的 档 案 中 安 装 软 件 :.tar.gz

Linux 软 件 程 序 可 以 互 联 网 的 不 同 网 业 上 获 得 。 你 可 以 下 载 这 些 软 件 并 将 它们 安 装 在 自 己 的 系 统 上 。 你 可 用 在 第 10 章 中 描 述 的 ftp 来 下 载 文 件 。 文 件 通 常是 以 压 缩 的 档 案 文 件 下 载 的 。 这 是 用 tar 命 令 存 档 并 用 gzip 压 缩 的 文 件 。 要 安装 这 样 的 文 件 ,你 首 先 要 用 gunzip 实 用 工 具 将 文 件 解 压 , 然 后 用 tar 命 令 将 组 成软 件 包 的 文 件 和 目 录 恢 复 。 你 也 可 以 使 用 gzip -d 来 代 替 gunzip 。 下 一 个 例 子将 文 件 Spec Te/I.I.tar.gz 解 压 , 并 用 一 个 称 作 SpecTe/I.I.tar 的 解 压 版 本 代 替 它 。

$ Ls

specTe/I.I.tar.gz

$ gunzip spec Te/I.I.tar.gz

$ Ls

Spec Te/I.I.tar

首 先 使 用 tar 和 t 选 项 来 检 查 档 案 的 内 容 。 如 果 第 一 项 是 一 个 目 录 , 这 一 目 录将 被 创 建 , 然 后 将 恢 复 的 文 件 放 入 其 中 。 如 果 第 一 项 不 是 一 个 目 录 ,你 首 先 应 该 创建 一 个 目 录 , 然 后 将 档 案 文 件 拷 贝 到 其 中 去 。 然 后 在 这 个 目 录 中 恢 复 文 件 。 如 果第 一 项 不 是 目 录 ,那 么 文 件 将 被 恢 复 在 现 有 的 目 录 中 。 你 需 求 自 己 创 建 一 个 目 录来 容 纳 这 些 文 件 。

$ tar tf SpcTelI.I.tar

现 在 你 已 经 准 备 好 从 tar 档 案 中 恢 复 文 件 。 你 可 以 使 用 tar 和 X 选 项 来 恢 复文 件 ,用 V 选 项 来 在 恢 复 文 件 时 显 示 路 径 名 , 和 F 选 项 后 面 加 档 案 文 件 的 名 字 。

$ tar xvf SpcTelI.I.tar

你 可 将 解 压 和 解 包 命 令 组 合 一 个 tar 命 令 中 ,在 选 项 表 中 加 入 Z 选 项 ,xzvf 。下 一 个 命 令 将 对 档 案 解 压 和 解 包 。

$ tar xzvf SpcTelI.I.tar.gz

软 件 的 安 装 对 每 个 包 而 言 都 是 不 同 的 。 随 着 安 装 程 序 通 常 有 相 应 的 指 示 。

7.7.1 从 网 点 下 载 压 缩 档 案

许 多 的 跨 平 台 开 发 或 设 计 的 软 件 包 可 能 不 是 RPM 格 式 。 相 反 ,它 们 可 能 被存 档 并 被 压 缩 。 这 些 文 件 的 文 件 名 可 能 是 以 .tar.gz 或 者 .tar.z 为 扩 展 。 实 际 上 , 大 部 分 有 RPM 格 式 的 软 件 都 有 相 应 的 .tar.gz 格 式 。 在 将 文 件 下 载 之 后 ,你 首 先应 用 gunzip 将 之 解 压 ,然 后 用 rar 命 令 将 之 解 包 。 在 将 文 件 下 载 之 后 ,你 首 先 应用 gunzip 将 之 解 压 ,然 后 用 tar 命 令 将 之 解 包 。 许 多 RPM 包 中 只 包 含 着 软 件 应用 程 序 的 二 进 制 版 本 。 如 果 你 想 得 到 应 用 程 序 的 源 代 码 , 你 应 下 载 并 解 包 那 一 软件 的 压 缩 档 案 文 件 。

在 下 一 个 例 子 中 , 用 户 用 ftp 连到 sunsite.unc.edu 的 Linux 网 点 。 对 于 登 录的 身 份 , 用 户 输 入 了 匿 名 ,对 于 密 码 , 用 户 输 了 自 己 的 网 址 。 下 载 模 式 可 用 输 入 关键 词 binary 设 为 二 进 制 类 型 。 利 用 cd 命 令 ,用 户 进 入 pub/Linux/Libs/x/xview 目录 ,Xview 窗 口 管 理 软 件 就 在 这 一 目 录 中 ( 见第 3 章 )。 然 后 get 命 令 将 包 下 载 。C lose 命 令 切 断 了 连 接 ,quit 离 开 ftp 应 用 程 序 。

#ftp sunsite.unc.edu

Connected to sunsite. unc.edu

相 应 的 ,你 也 可 以 用 Netscape 或 另 一 种 网 络 浏 览 器 来 进 行 访 问 ,直 接 浏 览 并下 载 软 件 而 无 须 为 ftp 的 命 令 发 愁 。 确 保 要 在 一 个 ftp 站 点 名 之 前 加 入 术 语 ftp ∶

//而 不 是 通 常 的 http ∶ //。 对 于 Sunsite 你 应 输 入 ftp ∶ //sunsite.unc.edu .一 旦 你选 择 了 你 想 要 的 软 件 ,按 下 shift 键 并 单 击 文 件 以 下 载 。 一 旦 下 载 了 文 件 ,以 Z 或gZ 为 结 尾 的 文 件 是 必 须 要 被 解 压 的 压 缩 文 件 。 你 可 以 用 gunZip 命 令 和 文 件 名来 解 压 。

#gunZip Xview-3.2PI.4.bin.tar.gZ

如 果 文 件 以 tar 结 尾 ,它 是 一 个 必 须 用 tar 命 充 来 解 包 的 档 案 文 件 。 在 解 压 缩之 前 , 你 需 要 数 的 档 案 将 被 解 包 到 一 个 它 们 创 建 的 子 目 录 中 去 。 将 组 成 软 件 包 的文 件 或 档 案 放 于 那 个 子 目 录 中 去 。 例 如 ,xview-3.2p1.4.bin.tar 将 被 解 凶 到 称 为usr 的 子 目 录 中 。 要 检 查 一 个 档 案 是 否 会 被 解 包 到 一 个 目 录 中 ,利 用 tar 和 t 选 项可 以 列 出 它 的 内 容 并 查 看 名 字 的 前 面 是 否 有 一 个 目 录 。

如 果 是 那 样 , 目 录 就 将 被 创 建 ,被 恢 复 的 文 件 就 要 被 放 在 目 录 中 。 如 果 没 有 目录 名 , 你 需 要 先 创 建 一 个 目 录 并 将 档 案 文 件 拷 贝 到 目 录 中 。 然 后 在 该 目 录 中 恢 复档 案 。

#tar tf xview-3.2p1.4.bin.tar

现 在 你 作 好 从 tar 档 案 中 恢 复 文 件 的 准 备 了 。 你 可 以 用 tar 和 x 选 项 来 恢 复文 件 ,用 v 选 项 在 恢 复 文 件 时 显 示 路 径 名 ,f 选 项 之 后 是 档 案 文 件 名 。

#tar xvf xview-3.2p1.r.bin.tar

每 个 软 件 包 的 安 装 可 能 都 是 不 同 的 。 每 一 个 安 装 程 序 都 有 相 应 的 指 示 。 下载 的 文 件 中 通 常 有 README 文 件 或 其 它 的 文 档 。 确 保 要 参 照 这 些 文 档 。

编 译 软 件

许 多 软 件 可 能 是 源 代 码 的 形 式 , 在 你 安 装 之 前 你 需 要 首 先 对 它 进 行 编 译 。 这一 点 对 于 跨 平 台 应 用 程 序 而 言 是 事 实 。设 计 为 在 不 同 的 Un ix 系 统 , 如 sun 和 Linux 系 统 中 运 行 的 程 序 通 常 被 分 散 为 源 代 码 以 下 载 。 并 在 不 同 的 系 统 中 加 以 编 译 。编 译 这 些 软 件 的 任 务 最 近 由 于 设 置 脚 本 的 使 用 最 近 已 经 大 为 简 化 ,它 将 检 测 一 个系 统 的 设 置 并 相 应 地 编 译 程 序 。例 如 ,在 一 个 系 统 中 的 C 编 译 器 可 能 是 gcc 或 cc0 设 置 脚 本 将 检 测 存 在 哪 些 东 西 并 用 它 来 编 译 程 序 。

在 你 编 译 软 件 之 前 ,你 首 先 应 阅 读 它 所 带 的 README 和 INSTALL 文 件 。 它

会 给 于 编 译 和 安 装 这 一 程 序 的 详 细 的 指 示 。 如 果 软 件 使 用 了 设 置 角 本 , 那 么 编 译和 安 装 通 常 只 包 括 下 面 三 个 简 单 的 命 令 :

#./configure #make #make install

  • /configure 命 令 执 行 了 设 置 检 测 的 操 作 。 make 命 令 执 行 实 际 的 编 译 操 作 ,

利 用 前 一 个 操 作 产 生 的 编 译 文 件 脚 本 。make install 将 把 程 序 安 装 在 你 的 系 统 上 , 将 可 执 行 文 件 存 在 如 /usr/local/bin 的 目 录 上 ,并 将 任 何 的 设 置 文 件 放 在 /etc 目 录中 。 它 所 创 建 的 任 何 共 享 的 目 录 都 可 能 放 在 /usr/lib 目 录 中 。

如 果 你 要 编 译 一 个 基 于 X-Window 的 程 序 , 要 确 保 X11 开 发 库 已 经 被 它 装好 。 如 果 在 安 装 Open Linux 系 统 时 你 选 择 了 标 准 安 装 , 这 些 库 不 会 被 安 装 你 需要 用 Lisag 和 lint 对 之 进 行 安 装 。

要 保 证 xmkmf 程 序 也 已 被 安 装 。 查 询 21 章 关 于 X- W indow 程 序 更 多 的 信息 。 许 多 X-Window 应 用 程 序 可 能 需 要 特 殊 的 共 享 库 。 例 如 ,一 些 应 用 程 序 可 能需 要 xform 库 或 gt 库 。 其 中 一 些 库 你 需 要 从 网 点 上 取 得 。 例 如 ,gt 库 在 www.troll.no 上 , 尽 管 gt 和 xforms 的 RPM 版 本 都 在 Red hat 的 contrib 目录 。许 多 X-Window 应 用 程 序 利 用 xmkmf 代 替 一 个 设 置 角 本 来 产 生 所 需 的 。

makefile 。 在 这 种 情 况 下 ,你 只 需 在 · /configure 的 位 置 上 输 入 ximkmf 命 令 即 可 。一 定 要 参 考 软 件 的 README 或 INSTALL 文 件 。 通 常 ,你 只 需 在 包 含 软 件 源 代 码的 目 录 中 执 行 下 述 命 令 即 可 。

xmkmf make

make install

确 保 要 检 查 这 些 软 件 的 文 档 来 检 查 你 是 否 要 对 makefile 做 任 何 的 改 动 。 可能 会 有 几 个 改 动 ,但 更 加 详 细 的 改 动 需 要 有 对 C 语 言 的 理 解 以 及 make 是 如 何 跟它 一 起 工 作 的 。 如 果 你 成 功 的 设 置 了 makefile ,你 只 需 输 入 make 和 make install 操 作 即 可 。 例 如 ,许 多 在 sunsite.unc.edu 网 点 的 /pubLinux/games 目 录 中 的 游戏 可 能 需 要 对 makefile 作 一 些 修 改 。 一 个 可 能 的 问 题 是 定 位 C 和 X-Windows 的 开 发 库 。 X-Windows 库 在 /usr/XllR6/lib 目 录 中 。 标 准 C 库在 /usr/lib 目 录 中 。

m tools 实 用 工 具 : msdos

你 的 Linux 系 统 提 供 了 一 套 被 称 为 m tools 的 实 用 工 具 , 它 们 可 让 你 轻 易 地 访

问 格 式 化 为 MS-DOS 的 软 盘 。 不 再 需 要 进 行 如 安 装 等 一 些 特 殊 的 操 作 。 利 用m tools ,你 不 用 安 装 一 个 MS-DOS 便 可 对 它 进 行 访 问 。 对 一 个 MS-DOS 的 软 盘 , 只 要 把 软 盘 放 在 软 驱 中 ,你 就 可 以 用 m tool 命 令 来 访 问 软 盘 上 的 文 件 。 例 如 ,要 把一 个 文 件 从 MS-DOS 的 软 盘 拷 贝 到 你 的 Linux 系 统 中 ,可 以 用 mcopy 命 令 。 你可 以 用 a: 代表 A 驱 动 器 来 指 定 MS-DOS 盘 。 与 通 常 的 DOS 路 径 名 不 同 ,m tool 命 令 使 用 的 路 径 名 用 斜 杠 来 代 替 反 斜 杠 。 在 A 驱 动 器 中 的 doc 目 录 将 用 路 径 为a:/docs 来 引 用 ,而 不 是 a:/docs 下 一 个 例 子 将 文 件 mydata 拷 贝 到 MS-DOS 盘中 ,并 将 MS-DOS 盘 中 的 preface 文 件 拷 贝 到 现 在 的 Linux 目 录 中 。注 意 与 DOS 不 同 ,m tools 用 斜 杠 而 不 用 反 斜 杠 。

$mcopy mydata a:

$mcopy a:/preface

你 可 以 用 mdir 命 令 来 对 MS-DOS 命 令 都 可 以 通 过 m tol 操 作 获 得 。 你 可 以用 mmd 命 令 创 建 MS-DOS 你 可 以 用 md ir 命 令 来 对 MS -DOS 盘 上 的 文 件 列 表 , 你 还 可 以 用 mcd 命 令 在 上 面 更 换 目 录 。 下 一 个 例 子 列 出 了 你 的 软 驱 中 MSDOS 磁 盘 中 的 文 件 ,然 后 又 进 入 那 个 驱 动 器 的 docs 目 录 。

$ mdir a:

$ mcd a:/docs

大 部 分 的 标 准 MS-DOS 命 令 都 可 以 通 过 mtool 操 作 获 得 。 你 可 以 用 mmd 命 令 创 建 MS-DOS 目 录 , 用 mdel 删 除 MS-DOS 文 件 。 表 7-12 列 出 了 m tool 命令 的 一 个 列 表 。 例 如 ,要 显 示 驱 动 器 b:, 一 个 MS-DOS 与 1/4 英 寸 软 驱 ,中 的 一 个文 件 ,可 使 用 mtype 命 令 和 b: 再 加 上 文 件 名 。

$ mtype b:/readme

对 MS-DOS 分 区 的 访 问 是 在 /etc/mtools.conf 文 件 中 设 置 的 。 这 一 文 件 列 出了 几 个 不 同 的 缺 省 MS-DOS 分 区 和 磁 盘 驱 动 器 。 每 一 个 驱 动 器 或 分 区 电 一 个 特殊 的 设 备 名 来 标 识 。 你 的 软 驱 的 项 已 经 被 输 入 ,利 用 设 备 名 /dev/fdo 和 /dev/fdl 来代 表 第 一 个 和 第 二 个 软 驱 。 在 /etc/mtoo/s.conf 文 件 中 的 项 采 用 了 下 面 的 形 式 : 首先 是 驱 动 器 的 标 是 , 其 次 是 名 词 file 和 等 号 ,然 后 是 你 想 用 这 一 标 号 来 标 识 的 分 区或 驱 动 器 的 设 备 名 。设 备 名 初 放 在 引 号 中 。例 如 ,第 一 个 硬 盘 分 区 是 一 个 MS-DOS 分 区 ,设 备 名 为 /dev/hdal, 下 面 的 项 将 把 它 标 识 为 MS-DOS 系 统 上 的 c :驱 动 器 。

drive c:file=″ /dev/hda l″

你 的 分 区 有 正 确 的 设 备 名 是 很 重 要 的 。 它 们 被 列 在 /etc/frtab 文 件 中 , 可 以 用根 用 户 桌 面 上 的 fstool 实 用 工 具 来 对 它 浏 览 。 如 果 你 有 一 个 SCSI 硬 盘 分 区 ,这一 硬 盘 分 区 有 这 样 的 形 式 ,首 先 是 sd ,其 后 是 一 个 标 识 硬 盘 的 字 符 和 代 表 分 区 的数 字 。 Sdal 指 的 是 SCSI 硬 盘 上 的 第 一 个 分 区 。 IDE 硬 盘 有 hd 的 形 式 , 其 后 是一 个 字 符 和 一 个 分 区 的 娄 字 。 hdal 指 的 是 IDE 硬 盘 的 第 一 个 分 区 。

当 你 第 一 次 安 装 Open Linux 系 统 ,你 的 /etc/mtools.conf 文 件 将 把 c :驱 设 置为 指 向 一 个 SCSI 硬 盘 分 区 。 对 IDE 的 硬 盘 分 区 也 有 一 个 设 置 ,不 过 它 被 前 面 所加 的 # 号 注 释 掉 了 。 如 果 你 有 一 个 IDE 硬 盘 ( 如 大 部 分 用 户 ),你 需 要 将 IDE 硬 盘分 区 项 前 的 # 号 去 掉 ,而 将 # 号 加 在 SCSI 硬 盘 分 区 项 之 前 。 另 外 ,如 果 你 的 IDE 硬 盘 上 的 MS-DOS 分 区 不 是 第 一 个 分 区 ,你 就 需 要 更 改 设 备 名 。 例 如 ,如 果 MS- DOS 分 区 是 第 二 个 分 区 ,设 备 名 应 是 /dev/had z。 如 果 你 有 几 个 MS-DOS 分区 , 你 需 要 为 每 一 个 分 区 如 入 条 目 ,每 个 分 区 赋 一 个 不 同 的 标 号 。 下 一 个 例 子 将 d: 标号 给 了 一 个 IDE 驱 动 器 的 第 四 个 硬 盘 分 区 。

drive d:file=″ /dev/hda4 ″

/etc/mtools.conf

drive a:file = ″ /dev/fdo″ exclusive drive a:file = ″ /dev/fd l″ exclusive

#First SCSI hard disk partitton #device c:file=″ /dev/sda l″ #First IDE hard disk partitton

drive c:file= ″ /dev/sda l″ drive c:file= ″ /dev/sda l″

#dosemu floppy image

drive m :file= ″ /var/cib/dosemu/diskimage″ # dosemu hdimage

drive n:file= ″ /var/cib/dosemu/diskimage ″ offset=3840

#Atali ramdisk image

drive o:file= ″ /tmp/atari-rd ″ offset=136 m tools-lower-case=1

一 旦 DOS 硬 盘 分 区 被 设 置 了 ,你 可 以 用 驱 动 器 盘 符 来 从 Linux 分 区 中 拷 文 件或 拷 贝 入 系 统 。 下 一 个 命 令 将 文 件 mydoc.html 拷 到 了 C 分 区 的 webstuff 目录 , 并 将 之 更 名 为 mydoc.htm .注 意 斜 线 的 使 用 。

$ mcopy mypage.html c:/webstuff/mydoc.htm

因 为 DOS 和 Linux 处 理 文 本 文 件 的 新 的 行 是 不 同 的 ,当 把 一 个 DOS 的 文 本文 件 拷 贝 到 Linux 分 区 中 是 你 应 使 用 -t 选 项 。 下 一 个 命 令 将 c:/project 目 录 中 的mydoc.txt 文 件 拷 贝 到 /newdocs 目 录 中 。

$ mcopy -t c:/project/mydoc.txt/newdocs

DOS 和 W indow 仿 真 器:DOSemu,Wine 和 W illow

Linux 中 有 仿 真 器 来 使 你 运 行 DOS 和 W indow 程 序 。 这 些 技 术 仍 在 发 展 , 它们 的 成 功 也 只 是 部 分 的 , 作 为 仿 真 器 ,它 们 比 DOS 和 W indow 运 行 程 序 的 速 度慢 。 DOS 的 仿 真 器 DOSem u 。 你 可 以 从 你 的 Open Linux 的 CD-ROM 中 对 它进 行 安 装 。 它 包 括 一 个 在 例 子 目 录 中 叫 作 config.dist 的 示 范 设 置 文 件 。 它 包 含了 一 长 串 的 设 置 选 项 。 所 有 选 项 前 面 都 用 # 注 释 掉 了 。 你 要 把 文 件 拷 贝 到dosemu.conf 文 伯 中 。 编 辑 dosemu.conf 文 件 ,将 适 用 于 你 系 统 中 的 项 前 的 # 号删 掉 。 文 件 当 中 有 每 节 的 注 释 。

要 创 建 一 个 DOS 启 动 盘 , 用 mcopy 命 令 把 command.com,sys.com emufs.sys,ems.sy.cdrom.sys 和 exitemu.com 文 件 拷 贝 到 盘 中 。 要 运 行 DOS 仿 真 器 ,只 要 在 命 令 行 中 输 入 dos 。 要 退 出 仿 真 器 , 只 要 输 入 exitemu.dos-? 可 列出 dos 命 令 选 项 。

W ine 仿 真 器 是 设 计 用 来 运 行 W indow 程 序 的 。 它 仍 处 于 发 展 中 ,并 不 断 有新 版 本 发 布 。 现 在 它 仍 被 认 为 是 试 验 性 的 。 你 可 以 从

/pub/Linux/ALPHA/Wine/development 目 录 下 载 一 个 版 本 , 网 点 是

sunsite.unc.edu.Window FAQ 提 供 了 详 细 的 信 息 。

W illow 工 具 仓 为 跨 平 台 的 开 发 提 供 了 一 个 W indow AP I。 它 包 括 了 W illow Tw in 库 和 工 具 。 应 用 程 序 可 用 W indow API 来 编 写 ,并 用 W illow Twin 库 来 在 不

同 的 系 统 上 执 行 。 关 行 W in32 和 W indow 应 用 程 序 都 有 支 持 。 W illow Twin 库在 GNU 的 公 共 授 权 下 可 以 获 得 。 可 查 询 W illow 的 网 点 来 获 取 信 息(www.willow.com)

总 结 : 文 件 管 理

你 可 在 文 件 或 目 录 上 设 置 许 可 来 控 制 其 它 用 户 的 访 问 。 一 个 文 件 或 目 录 可被 设 置 为 读 写 或 执 行 。 拥 有 者 , 同 组 用 户 和 其 它 用 户 可 对 文 件 进 行 访 问 。 chmod 命 令 可 设 置 这 些 许 可 ,ls 命 令 和 -l 选 项 将 列 出 文 件 ,目 录 和 它 们 现 在 的 许 可 。

不 同 的 存 贮 设 备 都 有 自 己 的 文 件 系 统 , 你 可 以 将 之 安 装 并 访 问 。 你 可 以 访 问软 盘 ,CDROM 和 硬 盘 分 区 。 你 也 可 以 安 装 MS-DOS 硬 盘 分 区 并 从 Linux 系 统中 直 接 加 以 访 问 。 将 一 个 文 件 系 统 的 项 放 在 /etc/fstab 文 件 中 ,你 可 以 在 启 动 时 自动 安 装 文 件 系 统 。 如 果 在 网 络 上 ,你 可 以 安 装 并 访 问 远 地 服 务 器 上 的 文 件 系 统 。

要 传 输 或 备 份 文 件 , 你 可 以 将 之 存 档 并 对 之 压 缩 。 tar 鸽 令 将 文 件 存 档 ,gZip 命 令 将 文 件 压 缩 。 大 部 分 的 软 件 仓 都 可 由 网 上 获 得 , 它 们 都 被 存 档 并 压 缩 。 它 们通 常 有 tar.gZ 的 扩 展 。 你 可 以 下 载 软 件 , 用 gunZip 解 压 ,用 tar xf 命 令 来 恢 复 档案 。 你 可 以 用 rpm 命 令 来 安 装 。

表 7-1chmod 命 令 选 项

命 令 或 选 项

执 行

chmod

改 变 一 个 文 件 或 目 录 的 许 可 选 项

+

加 入 一 个 许 可

-

去 掉 一 个 许 可

=

将 整 个 许 可 集 赋 值

r

设 置 一 个 文 件 或 目 录 的 读 许 可 。 一 个 文 件 可 被 显 示 并 打 印 一个 目 录 可 以 列 出 目 录 中 的 文 件

w

设 置 一 个 文 件 或 目 录 的 写 许 可 。 一 个 文 件 可 被 编 辑 或 删 除 ,一个 目 录 可 以 被 删 除

x

设 置 文 件 或 目 录 的 执 行 许 可 。 如 果 文 件 是 shell 脚 本 ,它 可 被

作 为 程 序 执 行 。 一 个 目 录 可 以 初 改 变 或 进 入

u

为 创 建 文 件 或 目 录 的 用 户 设 置 许 可

g

为 组 群 对 文 件 或 目 录 的 访 问 设 置 许 可

o

为 系 统 上 其 它 的 用 户 对 文 件 或 目 录 的 访 问 设 置 许 可

a

为 拥 有 者 ,组 用 户 或 其 它 用 户 的 访 问 设 置 许 可

s

设 置 用 户 ID 来 组 ID 许 可

t

设 置 许 可 的 粘 着 置 位 ; 程 序 驻 留 内 存

chgrp

groupname

改 变 一 个 文 件 的 组

续 表

file names

chown user name

改 变 文 件 的 所 有 者

filenames

ls-l filename

显 示 文 件 及 它 的 许 可

ls-ld

directory

列 出 目 录 名 和 它 的 许 可

ls-l

列 出 一 个 目 录 中 的 所 有 文 件 和 它 们 的 许 可

表 7-2mount 命 令

mount 选 项

描 述

-f

伪 装 一 个 文 件 系 统 的 安 装 。 用 于 检 查 一 个 文 件 系 统 可 否 安 装

-v

Verbose 模 式 。 mount 命 令 显 示 它 所 采 取 动 作 的 描 述 用 -f 选

项 检 查 安 装 文 件 系 统 的 问 题 ,-fv

-w

安 装 一 个 文 件 系 统 ,并 使 之 有 读 和 写 许 可

-r

只 按 读 许 可 安 装 文 件 系 统

-n

安 装 一 个 文 件 系 统 而 无 须 在 mstab 文 件 中 加 入 条 目

-t type

指 定 要 安 装 的 文 件 系 统 类 型 。 表 7-6 列 出 了 有 效 的 文 件 系 统类 型

-a

将 /etc/fstab 文 件 列 出 了 文 件 系 统 加 以 安 装

-o option-list

用 一 个 列 表 的 选 项 安 装 文 件 系 统 。 选 项 之 前 以 逗 号 分 隔 , 其

后 是 -o 。 表 7-7 有 完 整 的 选 项 列 表 和 mount 命 令 的 man 页

表 7-3 用 于 检 查 和 修 复 文 件 系 统 的 fsck 选 项

选 项

描 述

file-system

指 定 要 检 查 的 文 件 系 统 。利 用 文 件 系 统 的 名 , 如 /dev/hda3

-A

检 查 文 件 /etc/fstab 中 列 出 的 所 有 文 件 系 统

-V

Verbose 模 式 , 列出 fsck 采 取 的 行 动

-t file-system-type

指 定 要 检 查 的 文 件 系 统 类 型

-a

自 动 修 复

-l

列 出 文 件 系 统 中 所 有 的 文 件 名

-r

在 修 复 系 统 之 前 征 求 确 认

-s

在 检 查 文 件 系 统 之 前 列 出 superblock

表 7-4mkfs 选 项

选 项

描 述

blocks

文 件 系 统 中 的 块 数 目 。 1440 块 代 1.44MB 的 软 盘 空 间

-t file-system- type

指 定 要 格 式 化 的 文 件 系 统 类 型 。 缺 少 类 型 为 标 准 的 Linwx

类 型 ,ext2

fs-options

指 定 文 件 系 统 的 选 项

-V

Verbose 模 式 。 显 示 mkfs 所 采 取 的 动 作

-v

指 示 mkvfs 启 动 的 文 件 系 统 builder 程 序 显 示 它 的 行 动

-c

在 格 式 化 之 前 检 查 文 件 系 统 是 否 有 坏 块

-l file-name

读 坏 块 的 列 表

表 7-5fdisk 命 令

命 令

描 述

a

设 置 或 取 消 一 个 分 区 的 可 启 动 标 志

c

DOS 兼 容 性 标 志

d

删 除 一 个 分 区

l

列 出 分 区 类 型

m

显 示 fdisk 命 令 的 列 表

n

创 建 一 个 新 的 分 区

p

打 印 分 区 表 ,列 出 盘 上 所 有 的 分 区

q

无 需 储 存 便 退 出 。 如 果 你 犯 了 错 误 ,用 它 来 显 示 fdisk 对 话

t

选 择 一 个 分 区 的 文 件 系 统 的 类 型

v

验 证 分 区 表

w

将 分 区 表 写 入 磁 盘 后 退 出 。 此 时 改 变 是 不 可 恢 复 的

x

显 示 高 级 的 fdisk 命 令 。 你 可 以 用 来 设 置 标 的 数 目 , 扇 区 和 头 , 打 印 原

始 数 据 ,改 变 数 据 在 分 区 表 中 的 位 置

表 7-6 文 件 系 统 类 型

类 型

描 述

m inux

M inux 文 件 系 统 ,文 件 名 在 30 个 字 符 之 内

ext

Linwx 文 件 系 统 的 早 期 版 本 , 现 已 不 在 使 用

ext2

支 持 长 文 件 名 和 文 件 大 小 的 标 准 Linwx 文 件 系 统 类 型

xiaf

xiaf 文 件 系 统

msdos

MS-DOS 分 区 文 件 系 统

hpfs

OS/2 高 性 能 分 区 文 件 系 统

proc

被 操 作 系 统 用 于 进 程

nfs

从 远 地 系 统 中 安 装 分 区 的 NFS 文 件 系 统

umsdos

UMS-DOS 文 件 系 统

swap

Linwx swap 分 区 或 swap 文 件

sysv

Unixt 系 统 V 文 件 系 统

iso 9660

安 装 CD-ROM 的 文 件 系 统

表 7-7 文 件 系 统 选 项 :-O 和 /etc/fstab

选 项

描 述

async

文 件 系 统 的 所 有 I/O 都 异 步 进 行

auto

可 以 用 -a 选 项 进 行 安 装

defanlts

使 用 缺 少 选 项 :rw,suid,dev,exec,auto,nouser 和 async

dev

解 释 文 件 系 统 上 的 字 有 或 块 特 殊 设 备

noauto

只 能 明 确 加 以 安 装 。 -a 选 项 不 会 安 装 系 统

exec

允 许 二 进 制 文 件 的 执 行

nouser

禁 止 普 通 用 户 安 装 文 件 系 统

remount

试 图 安 装 一 个 已 经 安 装 的 文 件 系 统 。 这 通 常 被 用 于 改 变 一 个 文件 系 统 的 安 装 标 志 ,尤 其 是 将 一 个 只 读 文 件 系 统 变 为 可 写

ro

对 文 件 系 统 进 行 只 读 安 装

rw

可 写

suid

允 许 设 置 用 户 标 识 或 设 置 组 标 识 位 有 效

sync

所 有 文 件 系 统 的 I/O 同 时 进 行

user

允 许 普 通 用 户 安 装 文 件 系 统 。 普 通 用 户 可 激 活 下 列 选

项 :noexec,nosuid 和 nodev

nodv

不 中 断 文 件 系 统 上 的 字 符 或 块 特 殊 设 备

nosuid

不 允 许 设 置 用 户 标 识 或 设 置 组 君 标 识 位 有 效

表 7-8/etc/exports 选 项

通 用 选 项

描 述

secure

需 要 证 实 。 这 在 缺 少 条 件 下 为 有 效

ro

只 允 许 只 读 访 问

rw

允 许 读 写 操 作 ,缺 少 选 项

noaccess

使 目 录 中 所 有 东 西 对 指 定 的 用 户 为 不 可 访 问

link-absolute

使 符 号 连 接 维 持 原 状 。 缺 少 操 作

link-relative

当 绝 对 符 号 连 接 (link 内 容 以 斜 线 开 始 ) 转 换 为 相 对 连 接 用 户

ID 映 射

squash-uids

指 定 一 系 列 受 无 名 映 射 控 制 的 uids 和 gids

squash-gids

all-squash

将 uids 和 gids 映 射 到 匿 名 用 户 。 对 NFS 输 出 的 公 共 ftp 目

录 news 缓 冲 池 目 录 等 有 用

no-all-squyash

这 是 all-squash 的 对 立 选 项 。 缺 少 设 置

root-squash

将 uid/gido 的 请 求 映 射 到 匿 名 的 uid/gido

no-root-squash

将 root squashing 关 闭 。 不 映 射 uid/gido 的 请 求 。 缺 少 设

anongid

这 些 选 择 明 确 地 设 置 匿 名 帐 号 的 uid 和 gid

anonuid

这 些 主 要 对 PC/NFS 用 户 有 用 , 这 时 你 希 望 所 有 的 请 求 都 似乎 来 自 一 个 用 户

续 表

map-daemon

开 启应 的uids

身 份

动 态 uid/gid

服 务 器

被 用 另 外

,这 不 会 变 动

映 射 。

一 种

uids

NFS

法 映

请 求 中 的 uid

uids. 在射 。 缺 少

被 转

NFS

设 置

换 成 为回 答 中是 映

相的射

表 7-9NFS 选 项

选 项

描 述

rsize=n

当 从 NFS 服 务 器 读 取 文 件 时 NFS 所 使 用 的 字 节 数 。 缺 少 为 1024

字 节

wsize=n

当 向 NFS 服 务 器 写 文 件 时 ,NFS 所 使 用 的 字 节 数 。 缺 少 为 1024 字

time=n

在 时 间 到 后 进 行 第 一 次 重 新 传 输 的 十 分 之 一 秒 数 缺 少 值 为 十 分 之

七 秒

retry=n

在 放 弃 之 前 尝 试 一 个 后 台 NFS 安 装 操 作 的 次 数 。 缺 少 为 10 000

soft

用 软 安 装 来 安 装 系 统

hard

硬 , 缺 少 设 置

intr

允 许 NFS 打 断 文 件 操 作 并 返 回 调 用 程 序 。 缺 少 为 不 允 许 文 件 操 作

被 打 断

续 表

bg

如 果 第 一 次 安 装 的 尝 试 时 间 到 , 继 续 在 后 台 尝 试 安 装 。 缺 少 是 失 败

而 不 进 行 后 台 安 装

tcp

TCP

UDP

NFS

表 7-10 文 件 备 份 :tar

命 令

tar options files

带 , 设 备 或 档 案 文 件

tar options archive-name filelist

f

将备

文上

备可

份以

到是

指文

定 为 archive-name

件 或 或 目 录 名 选 项

filelist

c

t

中 所 有 文 件 名

r

个 档 案 中

u

用又

新被

文变

件更

和和

变档

更案

的 文 件 更 新 档 案 只 添中 不 存 的 文 件

加 那 些

w

在地

将更

每新

个档

文案

档 之 前 征 求 用 户 的 确

认 ; 允

x

m

当 从 一 个 档 案 中 恢 复 文 件 时 ,不 增 加 新 的 时 间 标 签

续 表

M

卷 的 档 案 ,以 便 在 几 个 磁 盘 中 存 放

f archive-name

将备

带当

档 案 存 到 文 件 档 案 名 中 , 而 不 是 缺 少给 定 档 案 名 时 f 选 项 将 tar 档 案 存 到 此

磁的

带文

设件

f device-name

将 一 个 tar 档 案 存 到 诸 如 软 盘 或 磁 带 的 设 备 中 。/dev/fdo

是 你 的 软 盘 的 设 备 名 ; 缺 少 设 备 在

/etc/default/tar-file 中

v

档 的 每 个 文 件 名

z

用 gzip 来 对 文 件 进 行 压 缩 和 解 压

表 7-11gzip 选 项

选 项

执 行

-c

将 文 件 的 压 缩 版 本 送 往 标 准 输 出 ; 所 列 的 每 个 文 件 都 被 单 独

进 行 压 缩

-d

将 压 缩 文 件 解 压 ; 同 样 ,你 也 可 以 使 用 gunzi
$gzip -d myfiles.gz
$gunzip myfiles.gz

-h

显 示 帮 助 列 表

-l file-list

显 示 所 列 文 件 压 缩 或 未 压 缩 的 文 件 大 小

续 表

-r directory- name

查开

找始

特 定 的 目 录 并 压 缩 其 中 所 有 的 文 件 ; 查 找 由 现 在 的 目 录

; 用 同 gunzip 同 使 用 时 , 在 特 定 目 录 中 被 压 缩 的 文 件 将压

-v file-list

一 个 压 缩 和 解 压 的 文 件 , 显 示 文 件 名 及 压 缩 比

-num

决比最和

定较快解

压 缩 的 速 度 和 大 小 ; 范 围 是 由 -1 到 -9 。 一 个 小 的 数 字小 ,会 产 生 一 个 压 缩 和 解 压 速 度 快 的 比 较 大 的 文 件 。 -1 的 压 缩 速 度 , 但 文 件 尺 寸 最 大 ; -9 文 件 尺 寸 最 小 , 但 压压 速 度 最 慢 。 缺 少 是 -6

有有缩

表 7-12Mtools 访 问 命 令

命 令

mcopy filename

filename

在 MS-DOS 盘 和 Linwx 系 统 之 间 进 行 文 件 拷 贝 。 下面 的 命 令 将 一 个 由 MS -DOS 盘 拷 贝 到 Linwx 系 统

中 :mcopy a:/filename directory-or-filename

mcd directory-name

在软

MS-DOS 文 件 系 统 中 更 换 目 录 。 下驱 中 MS-DOS 盘 中 的 文 件

mdir

出 了 你 软 驱 中 MS-DOS 盘 中 的 文 件

mattrib

变 一 个 MS-DOS 文 件 的 属 性

mdel filename

除 一 个 MS-DOS 文 件

m format

一 个 MS-DOS 文 件 系 统 加 入 磁 盘 中

续 表

m label

建 一 个 卷 标

mmd d irectory-name

建 一 个 MS-DOS 目录

mrd directory-name

删 除 一 个 MS-DOS 目 录

mread filename filename

低 级 读 (拷 贝 ) 一 个 MS-DOS 文 件 到 Un ix

mren filename

filename

将 一 个 MS-DOS 文 件 更 名

mtype filename

显 示 一 个 MS-DOS 文 件 的 内 容

mwrite filename filename

低 级 读 (拷 贝 ) 一 个 Unix 文 件 到 MS -DOS