You are on page 1of 355

返回总目录

第 一 部 分 介 绍 Linux

第 1 章 Linux 操 作 系 统
1.1 操 作 系 统 和 Linux
1.2 Linux 和 Unix 的 历 史
1.3 Linux 总 览
1.4 Internet 上 的 Linux 软 件 及 信 息 源
1.5 Linux 发 行 版 本
1.6 OpenLinux
1.7 总结

第 2 章 安 装 L in u x
2.1 硬 件 ,软 件 各 信 息 的 要 求
2.2 为 Linux 分 区 开 辟 磁 盘 空 间
2.3 创 建 OpenLinux 安 装 盘
2.4 安 装 Linux
2.5 安 装 和 配 置 X - W i n d o w s
2 . 6 安 装 声 卡 的 驱 动 程 序 :声 音
2.7 Lisa

第 3 章 Linux 系 统 的 启 动 和 安 装
3.1 用 户 帐 号
3.2 登 录 Linux 系 统
3.3 Linux 命 令 和 命 令 行 编 辑
3.4 网 络 在 线 帮 助
3.5 网 络 在 线 文 件
3.6 配 置 你 的 系 统 :用 Lisa 设 置
3.7 安 装 软 件 包
3.8 远 程 通 讯
3.9 使 用 调 制 解 调 器 和 I n t e r n e t 连 接 , p p p d 和 e z p p p
3.10 电 子 邮 件 :XFMail
3.11 X-W indows 和 网 络 配 置
3.12 总 结 :Linux 系 统 的 启 动 和 退 出

第 4 章 窗 口 管 理 器 和 桌 面 :X-Windows
4.1 窗 口 、 文 件 和 程 序 管 理 器
4.2 启 动 和 退 出 X - W i n d o w s 窗 口 管 理 器 和 文 件 桌 面
4.3 窗口和图标
4.4 fvwm 窗 口 管 理 器 和 桌 面
4.5 Caldera 桌 面
4.6 安装窗口管理器和文件管理器
4.7 Crisplite 和 X E m a c s 编 辑 器
4.8 总 结 : X-Windows

第 二 部 分 Linux 操 作

第 5 章 Shell 操 作
5.1 命令 行
5.2 特殊 字 符 和 文 件 名 参 数 :* ,?,[ ]
5.3 标准 输 入 /输 入 和 重 定 向
5.4 管道 :|
5.5 shell 变量
5.6 shell 脚 本 :用 户 定 义 的 命 令
5.7 作业 :后 台 ,杀 除 ( k i l l s )和 中 断
5.8 总结 : shell 操 作

第 6 章 Linux 文 件 结 构
6.1 Linux 文 件
6.2 文 件 结 构
6.3 列 表 、 显 示 及 打 印 文 件 : ls, cat, more 和 lpr
6.4 目 录 管 理 :m k d i r , r m d i r , l s , c d 和 p w d
6.5 文 件 和 目 录 操 作 : f i n d . c p . m v . r m 和 ln
6.6 总 结 :Linux 文 件 系 统

第 7 章文件管理操作
7.1 显 示 文 件 信 息 :ls -l
7 . 2 文 件 和 目 录 许 可 :C h m o d
7 . 3 文 件 系 统 :安 装 和 卸 载
7.4 网 络 文 件 系 统 : N F S 和 etc/exports
7.5 档 案 文 件 和 设 备 :tar
7.6 文 件 压 缩 :gzip
7.7 从 压 缩 的 档 案 中 安 装 软 件 :.tar.gz
7.8 编 译 软 件
7 . 9 m t o o l s 实 用 工 具 :m s d o s
7 . 1 0 D O S 和 W i n d o w 仿 真 器 : D O S e m u , W i n e 和 W illow
7 . 1 1 总 结 :文 件 管 理
第 一 部 分 介 绍 Linux

第 1 章 Linux 操 作 系 统

Linux 是 用 于 像 IBM 兼 容 机 等 带 有 386,486 或 奔 腾 微 处 理 器 的 微 机 上 的 一


种 操 作 系 统 ,它 也 有 针 对 D E C A l p h a 系 统 , M a c i n t o s h 系 统 ,及 S u n 系 统 的 多 种 版
本 。 L i n u x 是 在 9 0 年 代 早 期 ,被 L i n u s T o r v a l d 和 其 它 遍 布 世 界 各 地 的 编 程 人 员
共 同 开 发 的 ,作 为 一 种 操 作 系 统 , 它 完 成 了 像 D O S 或 W indows 的 同 样 功 能 。
然 而 ,Linux 更 以 灵 活 性 及 有 效 性 而 著 称 。 大 部 分 的 微 机 操 作 系 统 ,像 D O S ,一 直
都 是 在 受 限 的 微 机 上 开 发 的 ,仅 最 近 才 变 得 能 在 更 多 种 类 的 机 器 上 使 用 。 像 这 样
的 操 作 系 统 需 要 不 断 地 升 级 以 适 应 微 机 硬 件 的 发 展 ,而 L i n u x 的 开 发 却 是 不 同
的 。L i n u x 是 几 十 年 来 被 用 在 主 机 及 单 机 上 的 ,现 在 已 成 为 工 作 站 首 选 系 统 的 U n i x
的 微 机 版 本 。 Linux 使 得 Unix 的 快 速 ,高 效 和 灵 活 性 能 够 用 于 你 的 微 机 ,并 能 更
好 地利用个人电脑所提供的资源。
L i n u x 以 一 个 好 的 价 钱 完 成 了 一 切 ,它 是 免 费 的 。 不 像 商 用 的 U n i x 操 作 系 统 ,
它 是 具 体 由 F r e e S o f t w a r e F u n d a t i o n 在 公 共 许 可 下 免 费 分 配 的 ,任 何 人 都 可 以
免 费 来 获 得 它 。 L i n u x 是 有 版 权 的 ,并 不 是 一 个 公 共 的 财 产 ,然 而 , G N U 公 共 许 可
和 公 共 财 产 几 乎 是 同 样 的 效 果 。 这 个 使 用 许 可 使 得 Linux 保 持 了 免 费 ,同 时 又 具
有 标 准 化 。 仅 有 一 种 Linux 标 准 。
Linux 是 免 费 的 事 实 有 时 给 人 一 种 误 解 :Linux 不 完 全 是 一 个 专 业 的 操 作 系 统 ,
而 事 实 上 , L i n u x 是 U n i x 的 P C 版 本 ,正 确 地 评 价 L i n u x ,你 应 该 了 解 U n i x 操 作 系
统 发 展 的 特 殊 环 境 ,Unix 不 像 大 部 分 其 它 操 作 系 统 。 是 在 一 个 科 研 和 学 术 的 环 境
下 开 发 出 来 。 在 大 学 和 实 验 室 里 ,U n i x 是 可 选 择 的 系 统 ,在 过 去 几 十 年 里 ,U n i x 的
发 展 和 整 个 计 算 机 及 通 讯 的 革 命 相 一 致 。 计 算 机 专 业 人 员 经 常 用 Unix 开 发 新 的
计 算 机 科 技 。例 如 为 I n t e r n e t 的 开 发 。尽 管 它 是 一 个 高 科 技 的 系 统 , 从 一 开 始 , U n i x
就 被 设 计 成 非 常 灵 活 的 系 统 。 Unix 系 统 本 身 可 以 被 容 易 地 修 改 产 生 不 同 的 版 本 。
事 实 上 ,许 多 厂 商 坚 持 Unix 的 商 业 版 本 , I B M , S U N 和 H P 都 销 售 并 坚 持 它 们 自 己
的 U n i x 版 本 ,满 足 他 们 自 己 的 特 殊 需 要 。 U n ix 系 统 在 设 计 上 的 可 继 承 的 灵 活 性
从 不 减 弱 它 的 质 量 ,事 实 上 ,正 是 它 的 多 重 版 本 ,使 它 可 以 适 应 任 何 实 用 的 环
境 , L i n u x 就 是 在 这 种 情 况 下 开 发 出 来 的 ,从 这 个 意 义 上 说 , L i n u x 是 U n i x 的 另 一 版
本 - 为 P C 的 版 本 。 由 计 算 机 专 业 人 员 在 科 研 环 境 下 的 开 发 ,反 映 了 U n i x 版 本 通
常 被 开 发 的 方 法 ,Linux 具 有 公 共 权 限 并 且 是 免 费 的 事 实 反 映 了 在 科 研 机 构 的 开
发 人员对公共服务的热心支持。
作 为 对 L i n u x 的 介 绍 ,这 章 讨 论 了 L i n u x 作 为 一 种 操 作 系 统 , L i n u x 和 U n i x 的
历 史 和 Linux 的 整 个 设 计 过 程 。 这 章 也 介 绍 了 如 何 更 好 地 使 用 本 书 。 人 们 经 常
带 着 不 同 背 景 开 始 学 L i n u x ,一 些 特 点 看 上 去 十 分 熟 悉 , 而 另 一 些 会 有 些 不 同 ,无 论
你 的 背 景 如 何 ,本 书 通 过 严 谨 的 结 构 提 供 给 读 者 对 L i n u x 操 作 系 统 的 清 楚 理 解 ,从
而 体 现 出 Linux 的 各 种 不 同 特 点 。

1.1 操 作 系 统 和 Linux

一 个 操 作 系 统 是 为 用 户 管 理 硬 件 和 软 件 的 一 个 程 序 ,操 作 系 统 最 初 是 设 计 成
执 行 重 复 管 理 硬 件 的 任 务 。 这 些 任 务 集 中 在 文 件 管 理 ,运 行 程 序 和 从 用 户 得 到 命
令 。 你 通 过 一 个 用 户 界 面 和 操 作 系 统 相 联 系 ,这 个 用 户 界 面 允 许 操 作 系 统 接 收 来
自 用 户 的 中 断 指 令 ,你 只 需 要 发 送 一 个 指 令 给 操 作 系 统 ,就 可 完 成 像 阅 读 一 个 文 件
或打印一份文件等的任务。一个操作系统的用户界面可以用只输入命令行一样
简 单 ,也 可 以 用 选 择 菜 单 和 图 标 一 样 复 杂 。
一 个 操 作 系 统 也 管 理 软 件 应 用 程 序 ,去 执 行 像 编 辑 文 件 或 计 算 等 不 同 的 任 务 ,
你需要专门的应用程序。一个编辑器是一个应用程序的例子。一个编辑器允许
你 去 编 辑 一 个 文 件 ,改 变 或 增 加 新 的 文 本 。 这 个 编 辑 器 本 身 是 一 个 由 计 算 机 可 执
行 的 指 令 所 组 成 的 程 序 。 为 了 应 用 这 个 程 序 ,必 须 把 它 装 进 内 存 ,然 后 它 的 指 令 被
执 行 。 操 作 系 统 控 制 了 所 有 程 序 的 装 入 和 执 行 ,包 括 所 有 应 用 程 序 。 当 你 打 算 用
一 个 编 辑 器 时 ,只 要 简 单 地 指 示 操 作 系 统 去 装 入 编 程 器 应 用 程 序 并 执 行 它 。
文 件 管 理 ,程 序 管 理 和 用 户 交 互 是 所 有 操 作 系 统 传 统 的 共 性 。 L i n u x 像 所 有
Unix 的 版 本 一 样 ,增 加 了 两 个 特 点 ,是 一 个 多 用 户 和 多 任 务 的 系 统 。 作 为 一 个 多
任 务 系 统 ,你 可 以 要 求 系 统 同 时 执 行 多 个 任 务 ,例 如 , 当 其 它 文 件 被 打 印 时 , 你 可 以
编 辑 另 一 个 文 件 ,你 编 辑 之 前 ,不 用 等 打 印 工 作 被 完 成 。 作 为 一 个 多 用 户 系 统 ,几
个 用 户 可 以 同 时 注 册 在 一 个 系 统 中 ,每 个 用 户 通 过 终 端 和 系 统 相 连 。
操 作 系 统 最 初 是 为 有 效 地 支 持 硬 件 而 设 计 的 ,当 计 算 机 首 先 发 展 了 ,他 们 可 能
会 受 操 作 系 统 的 限 制 。 操 作 系 统 必 须 能 实 现 计 算 机 的 绝 大 部 分 资 源 ,所 以 操 作 系
统 是 为 硬 件 ,并 非 为 用 户 设 计 的 ,操 作 系 统 倾 向 于 呆 板 ,不 灵 活 ,使 用 户 必 须 适 应 硬
件 效率的要求。
而 L i n u x , 因 为 来 源 于 U n i x ,所 以 被 设 计 的 很 灵 活 ,做 为 U n i x 的 一 个 版 本 , L i n u x
和 U n i x 享 有 同 样 的 灵 活 性 。 其 灵 活 性 来 源 于 U n ix 的 早 期 设 计 。 在 六 十 年 代 末
和 七 十 年 代 初 Unix 操 作 系 统 被 工 作 在 A T & T 贝 尔 实 验 室 的 K e n T h o m p s o n 开
发 出 来 。 它 结 合 了 许 多 操 作 系 统 设 计 方 面 的 新 发 展 , 开 始 ,U n ix 被 设 计 成 为 研 究
人 员 的 操 作 系 统 ,一 个 主 要 目 标 是 去 产 生 一 个 能 支 持 科 研 人 员 变 换 要 求 的 系 统 。
为 了 做 到 这 一 点 , T h o m p s o n 必 须 设 计 能 处 理 许 多 不 同 种 类 任 务 的 操 作 系 统 ,灵 活
性 变 得 比 硬 件 效 率 更 重 要 。 像 Unix 一 样 ,Linux 已 经 能 处 理 用 户 可 能 面 临 的 各 种
任 务。
这 个 灵 活 性 允 许 L i n u x 成 为 和 用 户 相 通 的 操 作 系 统 ,用 户 不 受 与 操 作 系 统 呆
板 联 系 的 限 制 。 取 而 代 之 , 操 作 系 统 成 为 了 提 供 用 户 能 利 用 的 一 套 高 效 工 具 ,面 向
用 户 的 科 学 含 义 是 你 能 对 系 统 配 置 或 编 程 以 满 足 你 的 特 殊 需 要 。 用 L i n u x ,操 作
系 统变成了一种操作环境。

1.2 Linux 和 Unix 的 历 史

做 为 Unix 的 一 个 版 本 ,Linux 的 历 史 自 然 起 始 于 U n ix,60 年 代 末 期 。 关 于 新


的 操 作 系 统 技 术 有 一 个 共 同 的 努 力 。 在 1 9 6 8 年 ,一 些 来 自 通 用 电 气 公 司 , 贝 尔 实
验 室 和 麻 省 理 工 学 院 的 研 究 人 员 开 发 一 个 名 叫 Multics 的 特 殊 操 作 系 统 的 研 究 项
目 。 M u lticsd 在 多 任 务 文 件 管 理 和 用 户 连 接 中 综 合 了 许 多 新 概 念 。 在 1 9 7 0 年
A T & T 的 贝 尔 实 验 室 研 究 人 员 Dennis Ritchie 和 K e n T o m p s o n , 在 采 用 很 多
Multics 特 点 的 基 础 上 开 发 了 Unix 操 作 系 统 。 它 满 足 了 系 统 对 科 研 环 境 的 要 求 ,
使 它 运 行 在 小 型 机 上 , 从 它 的 产 生 开 始 ,U n i x 是 一 个 有 价 值 的 高 效 多 用 户 和 多 任
务的操作系统。
Unix 系 统 在 贝 尔 实 验 室 开 始 变 得 流 行 ,并 且 越 来 越 多 的 研 究 人 员 开 始 使 用
它 , 1 9 7 3 年 ,D e n n i s R i t c h i e 和 K e n T o m p s o n 一 起 为 又 用 C 语 言 为 U n ix 编 写 了
程 序 代 码 。 Dennis Ritchie 贝 尔 实 验 室 的 后 起 之 秀 ,开 发 了 C 编 程 语 言 作 为 程 序
开 发 的 一 种 灵 活 工 具 ,C 语 言 的 优 点 之 一 是 它 能 够 通 过 一 套 编 程 命 令 直 接 访 问 一
台 计 算 机 的 硬 件 结 构 。 到 此 为 止 ,一 个 操 作 系 统 必 须 为 每 一 类 计 算 机 上 用 硬 件 为
基 础 的 汇 编 语 言 ,专 门 改 写 C 语 言 允 许 D e n n i s R i t c h i e 和 K e n T o m p s o n 写 了 能
用 C 编 译 器 在 不 同 计 算 机 上 编 译 的 U n i x 操 作 系 统 的 统 一 版 本 ,在 效 率 方 面 ,U n ix
操 作 系 统 变 成 了 可 移 植 的 操 作 系 统 ,能 够 不 必 重 新 编 程 运 行 在 各 种 不 同 的 计 算 机
上。
U n i x 从 满 足 个 人 的 需 求 设 计 开 始 ,逐 步 成 长 为 由 许 多 不 同 开 发 商 所 支 持 的 标
准 软 件 产 品 如 :N o v e l l 和 I B M ,最 初 ,U n i x 被 当 成 科 研 产 品 。 第 一 个 U n i x 版 本 是
免 费 由 许 多 知 名 大 学 的 计 算 机 系 使 用 的 。 在 1972 年 贝 尔 实 验 室 开 始 发 放 商 业
版本并且给不同的用户授权使用这个系统。使用者之一是加州大学伯克莱分校
的 计 算 机 系 。 伯 克 莱 给 系 统 增 加 了 许 多 新 的 特 点 ,后 来 成 为 了 标 准 。 1 9 7 5 年 伯
克 莱 由 下 属 部 门 B S D 发 行 了 自 己 的 Unix 版 本 。 Unix 的 B S D 版 本 成 为 A T & T
贝 尔 实 验 室 版 本 的 主 要 竟 争 者 。 而 其 它 的 被 独 立 开 发 出 的 Unix 版 本 也 开 始 萌
生。
1 9 8 0 年 微 软 公 司 开 发 了 叫 做 Xenix 的 Unix PC 版 本 。 A T & T 几 个 Unix 的
科 研 版 本 1 9 8 3 年 ,它 们 发 行 了 第 一 个 商 业 版 本 。 名 叫 S Y S T E M 3 后 来 被 成 为 对
商 用 软 件 产 品 重 要 支 持 Systen v 所 代 替 。
同 时 U n i x 的 B S D 版 本 不 断 发 展 ,在 7 0 年 代 末 期 , B S D U n i x 成 为 了 国 防 部 的
高 科 技 研 究 机 构 所 使 用 的 科 研 项 目 的 基 础 ,其 结 果 , 伯 克 莱 发 行 了 一 个 叫 做 B S D
Release 4.2 的 有 效 版 本 。
它 包 括 了 高 级 的 文 件 管 理 和 基 于 T C P / I P 网 络 协 议 的 网 络 特 点 。现 在 , T C P / I P
被 Internet 所 使 用 。 BSD Release 4.2 被 许 多 商 所 采 用 , 例 如 S U N
M i c r o s y s t e m s。
U n i x 不 同 版 本 的 出 现 导 致 了 U n i x 标 准 的 需 要 ,软 件 开 发 商 不 知 道 他 们 和 程
序 运 行 有 哪 个 版 本 上 比 较 适 合 ,到 8 0 年 代 中 期 , 两 个 竞 争 的 标 准 出 现 了 。 一 个 是
基 于 A T & T 的 U n i x 版 本 ,另 一 个 是 B S D 版 本 。 在 今 天 的 书 店 里 你 能 发 现 分 别 适
用 于 这 两 个 版 本 的 不 同 Unix 书 ,一 些 是 S y s t e m V U n i x ,另 一 些 集 中 在 B S D
Unix 。
A T & T 建 立 了 一 个 叫 Unix 系 统 实 验 室 的 新 组 织 ,它 的 作 用 就 是 综 合 Unix 的
不 同 版 本 ,集 中 开 发 一 个 标 准 系 统 , 1 9 9 1 年 ,U n ix 系 统 实 验 室 综 合 了 所 有 S y s t e m
V release3, BSD release 4.3, SUN OS 和 Xenix 的 所 有 特 点 。 发 行 了 System V
release 4. 为 了 与 S y s t e m V r e l e a s e 4 竞 争 ,一 些 其 它 公 司 如 I B M 和 惠 普 建 立 了
O p e n S o f t w a r e F o u n d a t i o n ( O S F ) 去 产 生 自 己 的 U n i x 标 准 版 本 ,继 而 出 现 了 两
个 标 准 商 业 版 本 O S F 版 本 和 System release 4。 1 9 9 3 年 , A T & T 把 它 的 Unix
转 卖 给 N O V E L L 公 司 。 Unix 系 统 实 验 室 成 为 了 Novell 的 Unix 系 统 小 组 的 一 部
分 。 Novell 发 行 了 基 于 S y s t e m V r e l e a s e 4 的 自 己 的 Unix 版 本 叫 U n i x w a r e ,它
可 以 和 Novell 公 司 的 Netware 系 统 相 联 。 S U N 公 司 已 经 把 System V release 4
融 进 了 它 的 S U N 系 统 发 行 了 Solaris 。 两 个 相 互 竞 争 的 Unix 使 用 的 图 形 用 户 界
面 ,一 个 叫 M o t i f , 另 一 个 叫 O p e n l o o k 已 经 合 并 为 一 个 新 的 工 作 平 台 标 准 , 叫 做 共
同 工 作 平 台 环 境 ( C D E )。 通 过 不 断 发 展 ,U n i x 保 留 下 来 一 个 大 的 能 有 效 运 行 在 工
作 站 和 小 型 机 上 的 操 作 系 统 。 Unix 的 一 些 版 本 主 要 被 设 计 为 工 作 站 环 境 , S u n O S
主 要 是 为 S U N 工 作 站 开 发 的 。 A I X 是 为 I B M 工 作 站 开 发 的 , 然 而 ,由 于 P C 变 得
更 有 效 ,因 此 开 发 Unix 的 P C 版 本 就 开 始 了 。 Xenix 和 S y s t e m V / 3 8 6 是 为 I B M
及 其 兼 容 机 而 设 计 的 U n i x 商 业 版 本 。A U X 是 运 行 在 M a c i n t o s h 下 的 U n ix 版 本 。
Unix 固 有 的 可 移 植 性 使 它 几 乎 能 在 任 何 类 型 的 计 算 机 中 被 找 到 :工 作 站 ,小 型 机
或 者 大 型 机 。 固 有 的 可 移 植 性 使 得 产 生 U n ix 的 P C 版 本 成 为 可 能 。 L i n u x 是 专
门 为 I n t e l 为 基 础 的 个 人 计 算 机 所 设 计 的 。它 起 源 于 荷 兰 赫 尔 辛 基 大 学 ( H E L S I N K I )
一 个 计 算 机 系 学 生 Linus Toyvald 的 个 人 研 究 项 目 。 那 时 ,学 生 们 使 用 一 个 强
调 不 同 U n i x 特 点 的 M i n i x 程 序 ,M i n i x 是 由 A n d r e w T a n n e b a u m 教 授 开 发 的 ,广
泛 分 布 在 I n t e r n e t 上 给 全 世 界 的 学 生 使 用 。 L i n u s 打 算 为 M inix 用 户 产 生 一 个 有
效 的 U n i x P C 版 本 。 他 称 它 为 L i n u x。 1 9 9 1 年 发 行 了 Linux 0.11 版 本 。 L i n u x
广 泛 分 布 于 I n t e r n e t ,后 来 的 几 年 ,其 它 的 编 程 人 员 综 合 现 有 的 标 准 U n i x 系 统 中
出现的大部分应用程序和特点修改并增加了它的内容。所有主要的窗口管理器
已 和 L i n u x 有 了 接 口 , L i n u x 有 所 有 的 I n t e r n e t 工 具 , 像 f t p , t e l n e t 和 S L I P ,它 也 有
整 套 的 程 序 开 发 工 具 ,象 C + + 编 译 器 和 调 试 器 。 虽 然 拥 有 全 部 特 点 , L i n u x 操 作 系
统 保 持 了 小 ,稳 定 和 快 速 。 在 最 简 单 的 格 式 下 ,它 可 以 运 行 在 仅 4 M B 的 内 存 。
尽 管 L i n u x 是 开 发 在 免 费 的 及 I n t e r n e t 开 放 环 境 中 , 它 仍 具 有 商 业 U n ix 版 本
的 标 准 , 因 为 前 几 十 年 里 ,U n i x 版 的 大 量 出 现 , 电 子 电 气 工 程 协 会 ( I E E E )在 美 国 标
准 化 协 会 ( A N S I ) 开 发 了 一 个 独 立 的 U n i x 标 准 ,这 个 新 的 A N S I U n i x 标 准 被 称 做
为 计 算 机 环 境 的 可 移 植 性 操 作 系 统 界 面 ( P S O I X )。 这 个 标 准 限 定 了 U n i x 系 统 如
何 进 行 操 作 , 像 系 统 调 用 有 了 专 门 的 详 述 。 P S O I X 限 制 所 有 U n ix 版 本 必 须 依 赖
大 众 标 准 ,现 有 大 部 分 U n ix 和 流 行 版 本 都 是 顺 从 P O S I X , L i n u x 从 一 开 始 就 是 遵
循 POSIX 开 发 出 开 的 。

1.3 Linux 总 览

像 U n i x 一 样 , L i n u x 一 般 被 分 成 四 个 主 要 部 分 :内 核 , S h e l l , 文 件 结 构 和 实 用 工
具 。内核是运行程序和管理像磁盘和打印机等硬件设备的核心程序。它从用户
那 里收到命令并把命令送给内核去执行。文件结构是文件放在磁盘等存贮设备
上 的 组 织 方 法 。 文 件 以 目 录 的 形 式 被 组 织 每 个 目 录 可 能 包 含 许 多 子 目 录 ,其 中 有
许 多文件。
内 核 ,Shell 和 文 件 结 构 一 起 形 成 了 基 本 的 操 作 系 统 结 构 。 使 用 这 三 个 项 目 ,
你 就 可 以 运 行 程 序 ,管 理 文 件 以 及 使 用 系 统 ,另 外 ,Linux 还 有 被 称 为 实 用 工 具 的 软
件 程 序 , 实 用 工 具 被 认 为 是 一 个 系 统 的 标 准 特 征 。 实 用 工 具 是 专 门 的 程 序 ,像 编 辑
器 编 辑 器 交 互 程 序 ,执 行 标 准 的 计 算 操 作 等 ,你 甚 至 可 以 产 生 自 己 的 工 具 。
1.3.1 Shell: Bourne, Korn 和 C-Shell
Shell 提 供 了 用 户 和 内 核 的 界 面 ,它 可 被 描 绘 为 一 个 解 释 器 ,它 解 释 由 用 户 输
入 的 命 令 并 送 他 们 到 内 核 , 内 核 界 面 是 非 常 简 单 的 ,通 常 你 输 入 一 个 命 令 然 后 按
回 车 键 就 可 完 成 ,你 输 入 命 令 的 一 行 经 常 被 指 定 为 命 令 行 ,你 将 发 现 命 令 行 能 变 得
十分复杂。
代 替 命 令 行 界 面 ,Linux 提 供 了 叫 做 X-Windows 的 图 形 用 户 界 面 (GUI)。 它
有 很 多 供 你 使 用 的 窗 口 管 理 器 ,窗 口 管 理 器 的 操 作 就 像 W i n d o w s 和 M a c G U I S ,
你 有 窗 口 图 标 和 菜 单 ,所 有 的 管 理 通 过 鼠 标 控 制 。 两 个 流 行 的 窗 口 管 理 器 是 F r e e
V i r t u a l 窗 口 管 理 器 ( f v w m )和 O p e n L o o k 窗 口 管 理 器 ( o l w m ) , M o t i f 窗 口 管 理 器 也
可 获 得 , 但 M o t i f 是 一 个 有 产 权 的 程 序 , 必 须 分 开 购 买 , 另 外 窗 口 管 理 器 ,你 必 须 使
用 文 件 和 程 序 管 理 器 ,有 各 种 文 件 和 程 序 管 理 器 是 可 获 得 的 ,例 如 O p e n L i n u x 提
供 了 一 个 高 级 的 文 件 管 理 器 和 程 序 管 理 器 ,可 使 用 图 标 栏 和 目 录 夹 。
尽 管 一 个 窗 口 管 理 器 是 一 个 灵 活 的 管 理 界 面 ,它 真 的 只 是 一 个 Shell 的 界 面 ,
窗 口 管 理 可 通 过 它 收 到 的 命 令 到 达 Shell, 实 际 是 Shell 解 释 这 个 命 令 并 送 它 到 内
核 。 图 1-1 表 明 了 Shell 到 内 核 和 其 它 系 统 成 员 的 关 系 。
图 1-1 内 核 ,Shell 和 用 户 界 面
S h e l l 不 仅 解 释 命 令 ,它 还 提 供 了 一 个 你 可 以 配 置 和 编 程 的 环 境 。 S h e l l 也
有 自 己 的 编 程 语 言 ,它 允 许 你 通 过 复 杂 的 方 法 去 编 写 L i n u x 命 令 的 程 序 。 Shell
编 程 语 言 具 有 普 通 的 编 程 语 言 很 多 特 点 , 如 循 环 结 构 和 分 支 控 制 结 构 ,你 甚 至 可 以
产 生 和 应 用 程 序 一 样 有 效 的 Shell 程 序 。
每 个 L i n u x 系 统 的 用 户 有 他 或 她 自 己 的 用 户 界 面 或 Shell, 能 满 足 他 们 自 己 专
门 的 S h e l l 需 要 ,从 这 个 意 义 上 说 ,一 个 用 户 的 S h e l l 不 仅 是 一 个 用 户 控 制 的 操 作
环境。
几 年 以 来 , 几 种 不 同 的 Shell 被 开 发 出 来 , 当 前 有 三 种 主 要 的
S h e l l : B o u r n e , K o r n ,和 C - S h e l l , 其 中 B o u r n e S h e l l 是 贝 尔 实 验 室 开 发 的 ,C - S h e l l
是 S U N 公 司 Shell 的 B S D 版 本 ,Korn shell 是 Bourne Shell 的 进 一 步 增 强 。 现
在 的 Unix 版 本 ,包 括 L i n u x 在 内 ,都 包 含 了 三 个 Shell, 允 许 你 去 选 择 所 喜 欢 的
Shell,Linux 使 用 这 些 增 强 的 公 共 版 本 。 Bourne Again Shell, TC-Shell 和 Public
D o m a i n K o r n S h e l l 。 当 你 开 始 L i n u x 系 统 时 ,系 统 设 置 在 B o u r n e A g a i n S h e l l 下 ,
从 那 里 ,你 能 够 转 换 到 其 他 Shell。

1 . 3 . 2 文 件 结 构 :目 录 和 文 件
在 L i n u x 系 统 中 ,像 D O S 一 样 ,文 件 由 目 录 结 构 来 组 织 。 然 而 , 不 像 D O S 的
是 ,你 有 更 多 的 灵 活 性 去 控 制 你 的 文 件 ,整 个 L i n u x 文 件 系 统 是 一 套 大 的 相 互 关 联
的 目 录 。 每 个 目 录 里 面 都 包 含 文 件 ,一 些 目 录 是 系 统 保 留 的 标 准 目 录 ,你 能 为 自 己
的 文 件 产 生 自 己 的 目 录 , 也 可 从 容 易 地 把 一 个 目 录 下 的 文 件 移 至 另 一 目 录 下 ,你 甚
至 能 移 动 整 个 目 录 并 和 系 统 中 的 其 他 用 户 共 享 目 录 和 文 件 。 用 Linux,你 可 以 设
置 目 录 和 文 件 的 权 限 ,以 便 允 许 和 拒 绝 其 他 人 访 问 他 们 。
实 际 上 ,每 个 用 户 的 目 录 最 终 和 其 他 用 户 的 目 录 相 连 。 目 录 是 以 根 目 录 开 始
被组织的等级树形结构。所有其他的目录最终是由第一个根目录派生出来。图
1-2 表 面 了 一 个 树 形 等 级 结 构 的 例 子 。 你 可 以 浏 览 整 个 系 统 ,进 入 任 何 可 以 对 你
开 放 的 目 录 。 文 件 结 构 的 相 互 关 联 性 使 分 享 数 据 变 得 容 易 ,几 个 用 户 可 以 访 问 同
一个文件。
根 目 录 是 一 个 当 你 第 一 次 设 置 你 的 Linux 系 统 时 所 使 用 的 特 殊 目 录 Linux 是
一个多用户系统。操作系统本身的驻留程序存放在以根目录开始的专用目录中,
有 时 被 指 定 为 系 统 目 录 , 在 图 1 - 2 中 那 些 根 目 录 下 的 目 录 就 是 系 统 目 录 :m a n , b i n
和 u s e r。 其 他 的 系 统 目 录 将 在 第 5 章 中 讨 论 。
图 1-2Linux 的 文 件 和 目 录 结 构

1 . 3 . 3 实 用 工 具 :编 辑 器 、 过 滤 器 和 交 互 程 序
L i n u x 包 含 大 量 的 工 具 。 一 些 工 具 执 行 简 单 的 操 作 ,另 一 些 是 带 有 他 们 自 己
整 套 命 令 的 复 杂 程 序 , 从 一 开 始 这 些 使 用 工 具 被 分 为 三 类 : 编 辑 器 , 过 滤 器 ,和 交 正
程序。当然不是所有的工具适合这三类。有的工具是执行文件操作和程序管理。
所 有 的 Unix 版 本 中 都 有 一 些 标 准 编 辑 器 可 获 得 。 包 括 :Ed,Ex,Vi 和 E m a c s 。
E d 和 Ex 是 行 编 辑 器 ,Vi 和 Emacs 是 全 屏 目 编 辑 器 。 所 有 的 标 准 编 辑 器 都 是 由
早 期 不 能 处 理 像 今 天 字 处 理 程 序 中 光 标 移 动 的 机 器 中 发 展 而 来 。 尽 管 Vi 和
E m a c s 有 全 屏 编 辑 能 力 ,但 他 们 不 能 像 由 鼠 标 驱 动 的 字 处 理 器 一 样 容 易 使 用 。E d
和 E x 是 每 次 只 能 显 示 和 编 辑 一 行 的 行 编 辑 器 。 尽 管 有 这 些 限 制 ,但 编 辑 器 的 效
率 是 很 高 的 ,他 有 大 量 的 命 令 和 复 杂 的 操 作 相 结 合 。
另 一 套 工 具 最 好 被 描 述 为 过 滤 器 (filter),一 个 过 滤 器 读 取 从 用 户 文 件 或 其 他 地
方 的 输 入 ,检 查 和 处 理 数 据 然 后 输 出 结 果 。 从 这 个 意 义 上 说 ,他 们 过 滤 经 过 他 们 的
数 据 有 不 同 类 型 的 过 滤 器 ,一 些 用 行 编 辑 命 令 输 出 一 个 被 编 辑 的 文 件 。 另 外 的 一
个 是 模 式 寻 找 文 件 并 以 这 种 模 式 输 出 部 分 数 据 。 还 有 一 些 执 行 字 处 理 操 作 ,检 测
一 个 文 件 中 的 格 式 的 命 令 输 出 一 个 格 式 化 的 文 件 ,过 滤 器 的 输 入 可 以 不 是 一 个 文
件 ,它 可 以 是 用 户 从 键 盘 敲 入 的 数 据 ,也 可 以 是 另 一 个 过 滤 器 的 输 出 ,过 滤 器 能 相
互 连 接 ,因 此 一 个 过 滤 器 的 输 出 能 成 为 另 一 个 过 滤 器 的 输 入 ,甚 至 你 可 以 编 写 自 己
的 过 滤 器 程 序 ,一 个 过 滤 器 编 程 语 言 叫 做 a w k ,能 使 你 编 写 自 己 的 过 滤 器 。 L i n u x
也 有 一 套 允 许 你 和 本 系 统 或 其 他 系 统 用 户 相 交 互 的 工 具 ,作 为 一 个 多 用 户 系 统
Linux 必 须 和 所 有 用 户 保 持 联 系 。 显 示 的 基 本 要 求 和 文 件 系 统 的 基 本 互 联 性 使
得 电 子 邮 件 系 统 容 易 实 现 。 信 息 可 由 系 统 上 的 不 同 用 户 发 送 和 接 收 ,你 甚 至 可 以
一次对多个用户同时广播一个住处或直接与另一个相连进行一个实时对话。
Linux 和 Unix 系 统 最 重 要 的 特 点 之 一 是 它 的 多 套 Internet 工 具 ,Internet 是
在 U n i x 系 统 的 基 础 上 设 计 和 开 发 出 来 的 ,像 f t p 和 t e l n e t 等 I n t e r n e t 工 具 最 先 实
现 于 U n i x 和 B S D 版 本 。 D a r p a n e t 是 I n t e r n e t 的 前 身 ,用 来 联 接 美 国 国 内 各 大
学 的 Unix 系 统 ,Linux 包 含 了 全 套 的 Internet 工 具 和 他 们 提 供 了 与 Internet 的 直
接 相 连 像 S L I P 网 络 浏 览 器 像 N e t s c a p e 都 在 L i n u x 可 获 得 的 。I n t e r n e t 上 的 L i n u x
软 件 和 信 息 资 源 L i n u x 是 在 I n t e r n e t 上 通 过 共 同 合 作 开 发 出 来 的 ,没 有 一 家 公 司
和 机 构 控 制 L i n u x。

1.4 Internet 上 的 Linux 软 件 及 信 息 源

当 L i n u x 用 户 决 定 共 同 完 成 一 个 项 目 的 开 发 就 开 始 进 行 ,当 完 成 以 后 , 软 件 由
I n t e r n e t 上 的 一 个 ftp 地 址 来 发 布 。 任 何 L i n u x 用 户 可 以 到 达 这 个 网 址 来 下 载 软
件。
软件是你需要编译的源代码形式或执行的二进制代码。软件包通常包括文
件 和 配 置 文 件 , O p e n L i n u x 使 用 叫 做 R e d h t P a c k a g e M a n a g e r ( R P M )的 专 门 安 装
工 具 。 你 能 通 过 一 个 简 单 的 命 令 rpm -i 和 所 有 的 文 件 和 配 置 文 件 去 安 装 R P M
软 件 包 (详 见 第 3 章 )。 大 部 分 当 前 的 软 件 可 在 RPM 软 件 包 中 获 得 。 在
ftp.redhat/com/pub/contrib/i386 中 可 发 现 大 量 的 R P M 软 件 包 。 在 这 儿 ,你 应 该
首 先 核 对 你 想 使 用 的 软 件 的 R P M 版 本 , 对 于 L i n u x 软 件 和 文 件 的 主 要 ftp 地 址 之
一 是 /pub/Linux 目 录 下 的 Sunsite.unc.edu。 Homesites 是 Linux 软 件 最 初 被
邮 寄 的 地 方 M irror Sites 是 这 些 H o m e s i t e s 的 复 制 。 ftp.caldera.com 和
f t p . r e d h o t . c o m 包 含 了 L i n u x 文 件 的 扩 展 档 案 。 表 1 - 1 列 出 了 不 同 的 ftp 位 置 ,通
过 与 网 址 相 联 ,你 可 以 获 得 其 他 的 地 址 。 例 如 L i n u x 在 W o r l d W i d e W e d 中 是 在
w w w . s s s . c o m / l i m u x / r e s o u r e s / w e b . h t m l。其 中 特 别 有 趣 的 是 L i m u x G a m e T o m e
中 列 出 了 为 L i n u x 的 大 部 分 流 行 游 戏 。 在 第 3 章 3-2 表 中 列 出 了 几 个 资 源 网 页 。
大 部 分 LINUX 软 件 具 有 Free Sofeware Foundation 支 持 的 G N U 公 共 权 限
下 版 权 ,经 常 被 指 定 为 G N U 软 件 , G N U 软 件 已 经 证 明 是 可 信 的 且 是 有 效 的 。 许
多 L i n u x 使 用 的 工 具 ,像 C 编 译 器 ,Shell 和 编 辑 器 都 是 G N U 软 件 的 应 用 程 序 。
你 将 发 现 你 的 OpenLinux 系 统 上 安 装 G N U C + + 和 Lisp 编 译 器 ,Vi 和 Emacs 编
辑 器 B a s h 和 T c s h S h e l l 以 及 T e x 和 G h o s t s c r i p t 文 件 格 式 器 ,许 多 其 他 的 G N U
软 件 应 用 程 度 也 可 在 I n t e r n e t 的 不 同 ftp 地 址 上 获 得 。 表 1 - 2 ,详 细 描 述 了 从
Internet 上 下 载 软 件 应 用 程 序 及 安 装 他 们 的 过 程 。
近 来 , 主 要 的 软 件 公 司 ,也 开 始 开 发 他 们 的 最 流 行 应 用 程 序 的 l i n u x 版 本 ,你 可
以 从 I n t e r n e t 的 ftp 地 址 : f t p . c a l d e r a . c o m 来 下 载 它 , S U N 公 司 的 J a v a L i n u x 版
本 也 可 从 ftp.Blackcown.org 上 获 得 一 个 W o rdprefect 的 Linux 版 本 也 可 获 得 。
L i n u x 支 持 资 料 也 在 Internet 上 开 发 的 ,目 前 大 部 分 支 持 资 料 可 以 从 Internet
的 ftp 地 址 处 下 载 , 一 个 叫 L i n u x D o c u m e n t a t i o n P r o j e c t 的 L i n u x 项 目 由 M a t t
W elsh 带 领 , 正 在 开 发 一 套 Linux 说 明 , 这 个 资 料 可 由 以 下 U R L 获
得 :http//sunsite.unc.edu/mdw 这 份 支 持 资 料 包 括 了 用 户 指 导 介 绍 和 管 理 指 导 ,它
们 可 以 用 超 文 本 或 文 本 的 格 式 获 得 。 表 1 - 3 列 出 了 这 些 指 导 ,你 能 发 现 对 于 什 么
是 H o w - T o 文 件 的 简 单 解 释 ,H o w - T o 文 件 包 括 如 安 装 打 印 和 电 子 邮 件 等 多 个 方
面 。 这 个 文 件 通 常 可 从 /pub/linux/doc/how-to 目 录 下 的 Linux ftp 地 址 处 获 得 。
在 /pub/linux/doc 目 录 下 你 能 发 现 Meta-fao 文 件 包 含 不 同 的 Linux 信 息 位 置
的 列 表 ,在 相 同 的 位 置 和 目 录 ,你 也 可 以 下 载 Linux 软 件 图 (LSM), 这 是 当 前 为
Linux 所 使 用 的 大 部 分 软 件 的 列 表 。 许 多 软 件 公 司 也 有 提 供 他 们 Linux 应 用 程 序
的 网 址 ,这 些 被 列 在 表 1-4 中 。
除 了 f t p 网 址 , 也 有 L i n u x U s e n e t n e w s g r o u p s .通 过 互 连 网 ,你 能 登 录 L i n u x
Newsgroups 去 阅 读 其 他 用 户 的 内 容 并 邮 寄 你 的 信 息 。 有 很 多 的 Linux
Newsgroups, 都 是 以 comp.os.linux 开 始 的 , 特 别 能 兴 起 初 学 者 兴 趣 的 是
com.os.linux.help,从 那 里 你 可 以 发 出 问 题 ,表 1-5 列 出 了 在 U s e n e t 上 的 不 同
Linux Newsgroups。
大 部 分 当 前 的 标 准 Linux 软 件 和 文 件 已 经 包 含 在 你 的 OpenLinux Lite CD-
R O M 中 。 H o w - T o 文 件 都 是 以 H T M L 格 式 可 获 得 的 ,所 以 你 可 以 用 网 浏 览 器 去
看 他 们 , 但 是 ,在 将 来 ,你 可 能 必 须 直 接 到 达 L i n u x 和 I n t e r n e t 网 址 去 获 得 最 新 的 信
息。
当 前 , 唯 一 处 理 L i n u x 的 出 版 物 是 L i n u x G o u r n a l ,你 可 以 从 下 面 的 网 址 获 取
关 于 它 的 信 息 :w w w . s s s . c o m / l g 。 也 可 以 联 系 以 下 地 址 :
Linux Gounal
P.O. BOX 85867
Seattle WA 98145
206-527-3385

1.5 Linux 发 行 版 本

尽 管 有 唯 一 的 L i n u x 标 准 版 本 ,但 有 几 个 不 同 的 发 行 公 司 用 略 有 不 同 的 方 法
L i n u x 包 装 和 L i n u x 软 件 ,每 个 公 司 然 后 用 C D - R O M 发 行 L i n u x 软 件 包 ,后 来 发
行 的 可 能 包 含 程 序 的 最 新 版 本 和 新 软 件 , 其 中 一 些 是
Slackware,Rdehat,TAMU,Yggdrasil 和 Infomagic 。 Open Linux Lite CD-Rom
包 含 C a l d e r a 的 完 整 O p e n L i n u x L i n u x 系 统 。 一 些 供 应 部 门 ,像 C a l d e r a l 和
Redhat 也 用 像 字 处 理 的 商 业 软 件 或 像 Netscape 的 商 用 Internet 服 务 器 包 在 它
们的系统中。

1 . 6 O p e n L in u x

OpenLinux Linux Lite 光 盘 包 含 了 Caldera 的 完 全 OpenLiux Linux 系 统 ,


并 包 含 所 有 G N U 软 件 包 的 软 件 包 以 及 X-Windows 窗 口 管 理 器 Internet 工
具 , 它 是 和 P O S I X 相 一 致 的 C a l d e r a 提 供 它 的 免 费 的 O p e n L i n u x 系 统 ,光 盘 被
指 定 为 ”lite ”, 因 为 C a ldera 也 提 供 一 些 商 用 的 ,有 产 权 的 软 件 包 ,这 些 软 件 包
包 括 一 些 像 W ordperfect, netscape 服 务 器 和 N o v e l l N e t w a r e 用 户 等 产 品 ,因
此 ,不 是 免 费 的 .详 见 caldera 的 网 址 www.caldera.com 。

1.7 总 结

L i n u x 是 由 L i n u s T o r v a l d 首 先 开 发 的 ,为 3 8 6 , 4 8 6 或 奔 腾 处 理 器 的 P C 系
列使用的一个 Unix 操 作 系 统 的 版 本 ,Linux 是 以 它 的 高 效 性 和 灵 活 性 而 著 称 ,
带 给 你 的 P C 全 部 的 U n i x 特 点 ,包 括 多 任 务 ,多 用 户 的 能 力 , L i n u x 是 在 G N U 公
共 权 限 下 免 费 获 得 的 ,它 是 一 个 符 合 P O S I X 标 准 的 操 作 系 统 。
你 的 L i n u x 软 件 包 不 仅 L i n u x 操 作 系 统 ,而 且 还 包 括 了 像 编 译 器 编 辑 器 等 的
应 用 软 件 。 它 也 包 括 带 有 几 个 窗 口 管 理 器 的 X-Windows 图 形 用 户 界 面 (GUI) 允
许 你 用 窗 口 ,图 标 和 菜 单 与 系 统 相 互 交 流 。
L i n u x 系 统 由 内 核 , S h e l l 文 件 结 构 和 实 用 工 具 组 成 ,内 核 是 系 统 的 心 脏 , 它 包
含 直 接 管 理 计 算 机 硬 件 的 控 制 程 序 ,Shell 是 用 户 界 面 ,Shell 收 到 来 自 用 户 的 命 令
并 把 它 送 入 内 核 去 执 行 。 Shell 能 满 足 个 别 用 户 的 需 要 。 Shell 甚 至 有 自 己 的 编
程 语 言 用 于 对 命 令 的 编 辑 。 文 件 结 构 包 括 放 置 文 件 的 目 录 ,目 录 提 供 管 理 文 件 的
方 便 途 径 ,你 能 从 一 个 目 录 移 到 另 一 个 目 录 并 且 设 置 权 限 和 其 他 用 户 共 享 其 中 的
文 件。
标 准 的 L i n u x 系 统 都 有 一 套 叫 做 实 用 工 具 的 程 序 ,实 用 工 具 可 分 三 类 :编 辑 器 ,
过 滤 器 , 或 交 互 程 序 , 很 多 编 辑 器 虽 然 效 率 很 高 ,但 使 用 起 来 下 如 现 有 P C 编 辑 器
一 样 容 易 ,过 滤 器 是 接 收 数 据 并 产 生 数 据 被 修 改 格 式 的 专 用 工 具 。 交 互 工 具 允 许
你 发 送 信 息 或 收 到 来 自 其 他 用 户 的 信 息 。 usenet 和 web 等 Internet 具 允 许 你
容 易地实现信息服务。
表 1-1Linux ftp 网 址
Linux ftp 网 址 目录
sunsite.unc.edu /pub/linux
tsx-11.mit.edu /pub/linux
nic.funet.fi /pub/os/linux
M irror.Sites
ftp.mcc.ac.uk /pub/linuxBritain
ftp.ibp.fr /pub/linuxFrance
ftp.dfv.rwth-aachen.de /pub/linuxGermany
kirk.bu.oz.au /pub/linuxAustralia
ftp.uu.net /systems/unix/linux
ftp.stack.nl /pub/linux
ftp.caldera.com /pub/linux
ftp.redhat.com /pub
ftp.cdrom.com /pub/linux/Concord,CA
ftp.siriuscc.com /pub/linux/Dallas,TX
lss.afit.af.mil /pub/linux/Dayton,OH
ftp.engr.uark.edu /pub/linux/Fayetteville,AR
ftp.spin.ad.jp /pub/linux/sunsite.unc.eduTokyo
续表
ftp.funet.fi /pub/linux/
ftp.ba-mannheim.de /pub/linux/Mannheim
ftp.nuri.net /pub/linux/Seoul
表 1-2Linux 的 应 用 程 序
网址 应用程序
ftp://ftpredhat.com/ Linux applications in RPM format(shareware)
pub/contrib/i386
ftp://ftp.ncsa.edu Mosaic Web Browser and Web Server
software for Linux
ftp://ftp4.netscape.com Netscape Web Browser for Linux
ftp://ftp.caldera.com
ftp://ftp.blackdown.org S u n ' s J a v a D e v e l o p m e n t K i t f o r L i n u x ( l i n k to
m irror sites)
http://www.redhat.com Applixware Office Suite
http://www.sdcorp.com W ordPerfect 7
wplinux.htm
http://www.caldera.com Netscape Web Browser for Linux,Caldera
O ffice Suite,StarOffice
http://sunscript.sun.com Tk/Tcl Products
http://www.uk.linux.org/ Linux Commecial Vendors
InderLxCommercial.html
http://www.xnet.com/ Linux Applications and Utilites Page
~blatura/linapps.shtml
表 1-3Linux 的 参 考 资 料
网址 描述
http://sunsite.unc.edu/mdw LDP Web site
ftp://wunsite.unc.edu/pub/ LDP ftp site
Linux/docs/linux-doc-project
http://www.iki.fi/liw/linux/sag/ System Administrators'Guide
Homepage
ftp://sunsite.unc.edu/pub LDP HOW-TO documents
Linux/docs/HOWTO
Guides Document Format and Web Sites
Linux Installation and Getting DWI,PostScript,and HTML(online)
Started Guide
Linux User's Guide DWI,PostScript,and PDF
Linux System Administrator's DVI,PostScript,and HTML(online)
Guide
Linux Network Adimunstrator's DWI,PostScript,and HTML(online)
G u ide
Linux Programmer's Guide linuxwww.db.erau.edu/LPG(link
through LDPWeb
site),DVI,PostScript,and
HTML(online)
续表
The Linux Kernel DVI and PostScript
Linux Kernel Hacker's Guide www.redhat.com/(link through LDP
W eb site),DVI,PostScript,and
HTML(online)
表 1-4W eb 网 址
网址 描述
www.ssc.com/linux Linux Resources Web site
www.caldera.com C a ldera Web site
www.redhat.com Redhat Web site
sunsite.unc.edu/mdw W eb site for Linux
DocumentationProject
www.ssc.com/lg Linux Journal
www.linux.org Linux Organization
www.li.org Linux International W eb site
www.uk.linux.org Linux European Web site
www.blackdown.org W eb site for Linux Java
www.netscape.com Netscape Web site
www.fokus.gmd.de/linux Wover Goods for Linux
www.ssc.com/linux/resources/web.ht Linux on the World Wide Web
ml
表 1-5Usenet Newsgroups
新闻组 描述
comp.os.linux.announce Announcements of Linux
developments
comp.os.linux.devlopment.apps For programmers developing Linux
applications
comp.os.linux.devlopment.system For programmers working on the
Linux
operating system
comp.os.linux.hardware Linux hardware spectifcations
comp.os.linux.admin System administration questions
comp.os.linux.misc Special questions and issues
comp.os.linux.setup Installation problems
comp.os.linux.answers Answers to command problems
comp.os.linux.help Questions and answers for particular
problems
comp.os.linux.networking Linux network questions and issues
第 2 章 安 装 Linux

本 章 描 述 了 从 C D - R O M 安 装 OpenLinux lite 系 统 的 安 装 过 程 。 这 个 安 装 包
括 了 Linux 操 作 系 统 、 大 量 的 Linux 应 用 程 序 、 一 整 套 Internet 服 务 器 。 不 同
的 Linux 软 件 包 通 常 有 他 们 自 己 的 安 装 程 序 。 例 如 ,Linux 的 Slackware 软 件 包
部 分 在 OpenLinux 下 有 不 同 的 安 装 程 序 。 Caldera Open Linux 安 装 程 序 是 简 洁
有 效 的 。 具 体 的 方 面 ,像 web 服 务 器 ,一 般 要 求 专 业 的 很 复 杂 的 配 置 操 作 。
OpenLinux 自 动 安 装 并 配 置 许 多 文 件 。
安 装 L i n u x 包 括 几 个 步 骤 :首 先 ,你 必 须 决 定 是 否 你 的 计 算 机 满 足 硬 件 要 求 。
然后你要寻找你使用的硬件方面的具体类型。例如你的显示器类型和显示卡类
型。这些信息可以从硬件的说明书上获得。
如 果 你 打 算 让 L i n u x 系 统 和 其 它 系 统 共 用 一 张 硬 盘 ,你 必 须 给 你 的 硬 盘 分 区 ,
怎 样 分 区 你 的 硬 盘 有 不 同 的 选 择 方 式 ,主 要 依 靠 是 否 它 包 含 你 要 保 护 的 数 据 。
你 开 始 安 装 程 序 的 时 候 需 要 准 备 一 张 启 动 盘 , 一 旦 安 装 程 序 开 始 ,你 只 要 简 单
地 跟 随 屏 幕 的 指 示 ,大 部 分 时 间 你 只 要 做 一 些 是 或 否 的 选 择 就 可 以 了 。 安 装 程 序
要 经 过 几 个 阶 段 。 首 先 你 要 在 你 的 硬 盘 上 产 生 Linux 分 区 。 然 后 你 安 装 软 件 包 ,
接 下 来 能 配 置 网 络 联 接 ,图 形 用 户 界 面 (GUI) 支 持 的 X-W indows 服 务 器 。 X -
W indows 和 网 络 配 置 可 以 在 以 后 的 时 间 独 立 执 行 。
一 旦 你 的 系 统 安 装 结 束 ,你 就 可 以 准 备 开 始 和 注 册 帐 号 。 你 将 通 过 注 册 命 令
来 注 册 ,从 命 令 行 你 可 以 激 活 X - W i n d o w s 安 装 提 供 给 你 一 个 完 全 的 图 形 用 户 界
面 (GUI)。
你 可 以 选 择 只 安 装 操 作 系 统 ,还 是 带 有 标 准 应 用 软 件 的 系 统 或 者 在 C D - R O M
上 全 部 软 件 系 统 。 如 果 你 选 择 了 标 准 安 装 ,以 后 你 可 以 增 加 未 安 装 的 软 件 包 。 第
3 章 描 述 了 你 怎 样 使 用 g l i n t 工 具 和 用 R e d h a t P a c k a g e M a n a g e r ( R P M )去 安 装
或卸载软件包。

2.1 硬 件 ,软 件 各 信 息 的 要 求

安 装 L i n u x 以 前 ,你 必 须 确 信 你 的 计 算 机 满 足 最 小 硬 件 要 求 。 你 还 需 要 具 体
的 软 件 硬 件 分 区 程 序 。 所 有 D O S 系 统 的 标 准 也 存 在 于 你 的 OpenLinux 光 盘 上 。
对 于 你 的 显 示 器 ,显 示 卡 ,鼠 标 , 光 驱 等 , 你 要 知 道 确 定 的 具 体 信 息 。 下 面 的 部 分 将
详 细 描 述 所 有 要 求 ,安 装 以 前 要 仔 细 阅 读 他 们 。 安 装 期 间 ,你 必 须 对 基 于 你 的 计 算
机 配置做出选择。

2.1.1 硬 件 要 求
下 面 是 安 装 Linux 的 最 小 系 统 硬 件 要 求 。
・ 一 个 3 2 位 的 I n t e l 为 基 础 的 个 人 计 算 机 。要 求 一 个 I n t e l 或 兼 容 机 , 3 8 6 , 4 8 6
或 奔 腾 微 处 理 器 SX 和 DX CPU 被 接 受 。
・ 一 个 3.5 寸 软 驱 。
・ 至 少 8 M B 内 存 ,推 荐 使 用 1 6 M B 。
・ 至 少 3 0 0 M B 的 硬 盘 空 间 ,推 荐 使 用 3 0 0 M B ~ 4 0 0 M B , 如 果 要 装 入 并 使 用
C D - R O M 上 的 所 有 软 件 包 ,至 少 需 要 750MB,基 本 软 件 包 的 标 准 安 装 要 占 用
2 1 2 M B ,还 要 加 上 1 6 到 6 4 M B 的 交 换 空 间 ,你 可 以 选 择 最 小 安 装 ,只 安 装 L I N U X
的 内 核 和 少 量 应 用 程 序 ,以 后 你 可 以 每 次 加 一 个 应 用 程 序 。
・ 一 张 3 . 5 寸 D O S 格 式 化 的 高 密 软 盘 ,以 便 产 生 一 个 启 动 盘 。
・ 一 个 CD-ROM 驱 动 器 。
・ 两 张 3.5 寸 D O S 格 式 化 高 密 软 盘 。
如 果 你 打 算 使 用 X - W i n d o w s 的 图 形 用 户 界 面 ,你 还 必 须 有 。
・ 一个显示卡。
・ 一个鼠标或其它定位设备。

2.1.2 软 件 要 求
软 件 的 要 求 是 很 少 的 ,基 本 上 你 需 要 一 个 能 产 生 L i n u x 启 动 盘 的 系 统 ,如 果 你
打 算 使 D O S 和 L i n u x 运 行 在 同 一 张 硬 盘 上 ,你 需 要 D O S 分 区 软 件 ,以 此 类 推 , 如
果 你 有 O S / 2 ,你 就 需 要 O S /2 分 区 软 件 。
为 了 你 能 准 备 安 装 盘 ,操 作 系 统 是 必 要 的 ,用 DOS 系 统 你 可 以 访 问
O p e n L i n u x C D - R O M ,并 且 发 出 像 D O S 的 命 令 去 产 生 安 装 盘 ,任 何 D O S 的 类 型
都 可 以 , 甚 至 你 可 以 在 O S / 2 上 使 用 相 同 的 命 令 。然 而 ,运 行 L i n u x 时 不 需 要 D O S ,
它 是 一 个 独 立 的 操 作 系 统 。 如 果 你 想 让 L i n u x 和 其 它 操 作 系 统 共 享 硬 盘 ,例 如
D O S , 你 将 需 要 为 分 享 硬 盘 的 具 体 工 具 。 对 D O S 来 说 ,你 需 要 d e f r a g 和 f i p s 工
具 或 者 f d i s k 工 具 , f i p s 工 具 提 供 在 你 的 O p e n L i n u x C D - R O M 里 ,它 可 以 执 行 一
个 非 破 坏 性 硬 盘 分 区 ,为 L i n u x 系 统 扩 展 空 间 。 d e f r a g 和 f d i s k 是 标 准 的 D O S 工
具 ,一 般 挂 在 D O S 目 录 下 , d e f r a g 和 f i p s 是 在 F i p s 分 区 前 整 理 磁 盘 碎 片 ,当 然 ,
有 一 些 其 它 的 商 用 工 具 可 以 整 理 磁 盘 碎 片 。 fdisk 是 代 替 fips 的 工 具 ,它 执 行 破
坏 性 硬 盘 分 区 ,删 除 硬 盘 上 的 所 有 文 件 ,并 要 求 一 个 完 全 的 格 式 化 的 D O S 安 装 。

2.1.3 信 息 要 求
P C 采 用 Linux 这 样 有 效 的 操 作 系 统 能 更 好 地 使 用 计 算 机 的 硬 件 设 备 ,为 了 做
到 这 一 点 , L i n u x 要 求 计 算 机 各 部 件 的 具 体 信 息 。 例 如 ,特 殊 的 L i n u x 配 置 文 件 能
够 满 足 显 示 卡 及 显 示 器 、 具 体 生 产 厂 家 和 型 号 的 要 求 。 安 装 Linux 以 前 。 手 边
需 要 有 这 方 面 的 信 息 ,这 些 信 息 一 般 可 以 从 硬 件 或 计 算 机 的 说 明 书 上 获 得 。
CD-ROM、 硬 盘 和 鼠 标 信 息
如 果 你 有 一 个 S C S I 的 光 盘 驱 动 器 ,你 需 要 制 造 厂 商 的 名 字 和 型 号 。 如 果 你
有 一 个 ID E 的 光 盘 驱 动 器 ,也 要 注 意 这 些 事 实 。
决 定 在 你 的 硬 盘 上 给 你 的 L i n u x 系 统 多 少 空 间 ,如 果 你 打 算 和 D O S 共 享 硬
盘 ,决 定 D O S 和 L i n u x 各 占 多 少 ?
决 定 你 要 给 交 换 区 多 少 空 间 ,你 的 交 换 区 必 须 在 1 6 M B 的 6 4 M B 之 间 ,对 于 大
部 分 系 统 , 3 2 M B 是 恰 当 的 ,它 被 L i n u x 用 来 扩 展 你 的 计 算 机 内 存 。
发 现 你 的 鼠 标 厂 家 和 型 号 ,Linux 支 持 串 口 和 总 线 鼠 标 ,大 部 分 的 鼠 标 被 支 持 ,
包 括 微 软 Logitech 和 Mouse 系 统 。
了 解 你 所 在 的 时 区 。 如 果 你 的 计 算 机 直 接 连 在 I n t e r n e t 上 ,你 可 能 用 格 林 威
治 时 间 ( G M T ) 作 为 你 的 时 区 ,然 后 ,如 果 你 是 用 一 台 单 机 且 和 D O S 共 用 ,你 可 能
想 用当地的时区。
了 解 你 的 鼠 标 用 在 哪 个 串 行 端 口 ,C O M 1 , C O M 2 , 或 用 P S / 2 鼠 标 端 口 。
显示卡和显示器信息
注 意 下 面 关 于 显 示 卡 和 显 示 器 的 信 息 ,X-W indows 已 为 大 部 分 显 示 卡 设 置 好
了 ,所 以 你 可 以 不 必 使 用 显 示 卡 信 息 。 但 是 ,你 绝 对 要 用 到 显 示 器 信 息 ,包 括 垂 直
和 水平的、刷新频率。显示或信息:
・ 你的显示卡生产厂家及型号。
・ 你的显示卡用什么系列芯片集。
・ 你的显示卡上存贮器有多大。
显示器信息:
・ 了 解 你 的 显 示 器 的 制 造 厂 商 及 型 号 。 L i n u x 支 持 几 种 显 示 器 ,如 果 你 用 的
不 属 于 他 们 ,要 选 择 一 个 G E N E R I C P R O F I L E 。 在 一 个 习 惯 的 P R O F I L E 文 件 中
健 入 信 息 。 .为 了 做 到 这 一 点 ,你 需 要 下 面 信 息 。
・ 水平的刷新频率是多少
・ 垂直的刷新频率是多少
网络配置信息
除 决 定 你 的 主 计 算 机 名 称 外 ,安 装 期 间 你 不 必 去 配 置 你 的 网 络 。 你 可 以
在 以 后 用 n e t c f g 工 具 去 完 成 网 络 配 置 ,但 是 如 果 信 息 已 准 备 好 , 安 装 过 程 将 自 动
配 置 你 的 网 络 ,在 恰 当 的 配 置 文 件 中 放 置 必 要 入 口 。 如 果 你 正 有 一 个 I n t e r n e t 服
务 提 供 商 ,他 们 将 提 供 你 大 部 分 信 息 ,如 果 你 亲 自 设 置 网 络 ,你 将 必 须 决 定 每 个 信
息。安装程序将提示你考虑以下几个方面:
・ 决 定 你 的 计 算 机 的 名 字 ,Internet 将 通 过 此 名 识 别 你 的 计 算 机 。
・ 你的域名。
・ 分 配 给 你 的 计 算 机 的 IP 地 址 , I n t e r n e t 上 的 每 个 主 机 被 分 配 一 个 IP 地 址 ,
是 用 点 号 分 开 的 四 位 数 字 。 做 为 一 个 区 域 内 对 计 算 机 的 识 别 ,允 许 从 来 自 其 它 区
域的信息访问这台计算机。
・ 你 的 网 络 IP 地 址 ,通 常 与 IP 地 址 相 一 致 ,但 增 加 一 个 0 。
・ 子 网 屏 蔽 ,通 常 是 2 5 5 , 2 5 5 , 2 5 5 , 0 。 但 如 果 你 是 一 个 大 网 络 中 的 一 部 分 ,要
与你的管理员来核实。
・ 网 络 广 播 地 址 ,通 常 你 的 广 播 地 址 与 IP 地 址 同 名 ,只 是 在 末 尾 加 上 2 5 5 。
・ 如 果 你 有 一 个 网 关 ,你 需 要 为 你 的 网 络 分 配 网 关 的 I P 地 址 。
・ 网 络 使 用 的 任 何 服 务 器 的 IP 地 址 。
・ 如 果 你 的 网 络 使 用 一 个 N IS 服 务 器 , 要 选 择 N IS 域 和 I P 地 址 。

2.1.4 已 安 装 L I N U X 系 统 的 升 级 信 息
如 果 你 已 经 安 装 了 像 Caldera network desktop 或 Redhat 等 另 一 个 LINUX
版 本 ,你 可 能 保 留 你 喜 欢 的 不 同 设 置 来 使 你 的 系 统 更 加 个 性 化 。 这 些 设 置 可 以 放
在 你 的 配 置 文 件 里 并 存 入 一 张 软 盘 ,再 用 到 你 的 新 的 O p e n L i n u x 系 统 。 通 过 这 个
方 法 ,可 以 保 留 你 的 最 初 配 置 ( 如 果 你 用 m c o p y , 要 记 住 用 - t 选 项 ) 。 你 也 可 能 要 保
留 一 些 像 网 页 等 目 录 和 数 据 文 件 或 者 你 已 经 下 载 的 软 件 包 。 用 下 面 的 tar 操 作
将 是最好的方法。
tar cvMf/dev/fd0 directory-or-package
拷贝下面你打算恢复的配置文件和其它文件。你反需要拷贝那些你想恢复

文件 描述
/etc/XF86Config X-W indows 配 置 文 件
/etc/lilo.conf 启动管理器配置文件
/etc/hosts 联 接 系 统 的 IP 地 址
/etc/resolv.conf 域名服务器地址
/etc/fstab 安装在系统上的文件系统
/etc/passwd 系统上用户的名字和口令
/home/user 在 系 统 中 ,用 户 的 h o m e 目 录 , u s e r
将 是 用 户 的 名 字 ( 对 于 大 量 的 文 件 ,要 使
用 tar cfM/dev/fd0/home/user)
.netscape 每 个 h o m e 目 录 有 自 己 的 带 有 netscape 配 置 文 件
的 .netscape 子 目 路 。
w e b 网 页 和 ftp 文 件 你 可 能 要 存 储 一 些 为 w e b s i t e 使 用 的 网 页 和 ftp site
的 文 件 在 用 C N D 版 本 中 ,这 些 放 在 / h o m e / h t p p d 和
/home/ftpd 下 。
一 旦 你 已 经 安 装 了 O p e n L i n u x 你 就 能 安 装 软 盘 ,并 从 上 面 给 你 的 系 统 复 制
文 件 ,改 变 那 些 最 初 的 设 置 。 如 果 你 使 用 先 前 系 统 中 的 /etc/xF86 config 文 件 ,你
就 不 用 运 行 xF86setup 去 设 置 X - W i n d o w s。 /etc/xF86 config 文 件 包 括 了 全 部
X - W I N D O W S 的 设 置 信 息 。 如 果 你 想 从 你 先 前 的 系 统 中 恢 复 /etc/lilo.conf 文 件 ,
就必须用下面的命令来安装它:
# lilo/etc/lilo.conf
为 了 恢 复 存 在 多 个 磁 盘 上 的 文 档 ,要 用 T A R 操 作 ,在 软 驱 里 放 入 第 一 张 盘 , 然
后用下面的命令。
tar xumf/dev/fd0

2 . 2 为 L in u x 分 区 开 辟 磁 盘 空 间

如 果 你 打 算 把 Linux 运 行 在 你 的 整 张 硬 盘 或 用 同 一 个 分 区 升 级 一 个 Linux 系
统 ,你 可 以 跳 过 这 部 分 直 接 看 L i n u x 的 安 装 。 但 是 ,如 果 你 要 使 L i n u x 和 D O S 共
享 一 张 硬 盘 ,你 将 必 须 分 区 并 格 式 化 你 的 硬 盘 ,以 便 使 它 一 部 分 给 D O S 系 统 , 另
一 部 分 给 Linux 系 统 。 你 如 何 完 成 这 一 过 程 依 靠 你 当 前 硬 盘 的 状 态 。 如 果 你 有
一 个 的 硬 盘 ,你 就 需 要 确 信 把 DOS 安 装 在 硬 盘 的 一 部 分 上 ,另 一 部 分 留 给
L i n u x。 如 果 你 已 经 在 使 用 这 张 硬 盘 ,你 也 必 须 删 除 已 经 存 在 的 分 区 并 对 硬 盘 重
新 分 区 。 留 下 空 余 的 给 L i n u x ,每 个 情 况 的 目 的 都 是 为 L i n u x 开 辟 自 由 空 间 ,当 安
装 L i n u x 时 ,你 必 须 为 L i n u x 分 区 和 格 式 化 自 由 的 硬 盘 空 间 。
一个硬盘被组织成各个分区。这个分区再被给定的操作系统进行一步的格
式 化 。 当 你 安 装 D O S 的 时 候 ,你 首 先 需 要 把 你 的 硬 盘 分 成 不 同 的 区 ,然 后 用 D O S
格 式 化 命 令 去 格 式 化 每 个 分 区 形 成 D O S 盘 , 分 别 由 一 个 字 母 来 识 别 。 例 如 ,你 可
能 分 你 的 硬 盘 为 两 个 区 。 一 个 作 为 C 盘 ,另 一 个 作 为 D 盘 , 你 也 可 以 把 你 的 硬 盘
只 分 成 一 个 分 区 ,格 式 化 成 C 盘 。 为 了 和 L i n u x 分 享 硬 盘 , 你 必 须 减 少 他 们 的 大
小或者删除一些分区来开辟一些自由空间。
首 先 ,要 决 定 你 打 算 给 你 的 Linux 系 统 分 配 多 少 空 间 。 你 最 少 需 要 3 0 0 M B 。
像 前 面 所 述 的 那 样 , 基 本 的 L i n u x 软 件 包 占 据 2 1 2 M B ,而 整 套 件 包 ,包 括 所 有 的 原
代 码 文 件 占 据 6 6 7 M B 。 另 外 ,你 必 须 为 L i n u x 留 出 交 换 区 ,用 于 实 际 的 存 贮 单 元 ,
这 要 求 1 6 到 3 2 M B 之 间 用 3 0 0 M B 字 节 ,如 果 你 需 要 安 装 其 它 的 软 件 包 时 ,你 很
快 会 发 现 空 间 是 太 有 限 了 。 一 个 实 用 的 最 小 空 间 应 是 4 0 0 M B 到 5 0 0 M B ,一 旦 你
决 定 了 你 的 L I N U X 系 统 所 用 的 空 间 ,你 就 可 以 为 硬 盘 开 辟 自 由 空 间 ,根 据 不 同 的
硬 盘 分 区 , 开 辟 空 间 会 采 取 稍 有 不 同 的 步 骤 。 如 果 你 已 经 有 几 个 分 区 ,你 可 能 反 需
要删除他们中的几个。
先 了 解 什 么 是 最 适 合 你 的 选 择 ,你 应 首 先 决 定 你 的 分 区 是 什 么 及 它 们 的 大
小 。你 能 用 F D I S K 工 具 去 做 这 一 点 。开 始 这 个 工 具 , 在 D O S 提 示 符 下 键 入 F D I S K ,
然后按回车。
C :/>fdisk
然 后 会 出 现 一 个 f d i s k 选 项 的 菜 单 ,选 择 第 4 页 去 显 示 当 前 所 有 的 分 区 及 他
们 的 大 小 ,你 可 以 减 少 或 再 分 区 你 的 硬 盘 ,或 者 你 可 以 删 一 些 无 用 的 分 区 。
如 果 你 已 经 有 一 个 大 的 区 覆 盖 了 整 个 硬 盘 ,你 有 两 个 选 择 。你 可 以 用 D O S 的
defrag 和 Linux 的 fips 工 具 在 你 硬 盘 的 无 用 空 间 上 非 破 坏 地 产 生 自 由 空 间 。 为
了 安 全 ,你 应 该 对 重 要 的 数 据 做 备 份 ,但 不 必 再 安 装 D O S 和 恢 复 你 的 数 据 ,每 件
东 西 都 被 保 护 。 另 一 个 选 择 ,你 可 以 再 分 区 你 的 硬 盘 ,删 除 所 有 的 数 据 ,然 后 你 必
须 再 安 装 D O S ,从 你 的 备 份 中 恢 复 数 据 。 也 要 再 格 式 化 你 的 硬 盘 。 如 果 你 想 把
D O S 和 L i n u x 安 装 在 同 一 张 新 的 硬 盘 上 时 ,你 将 跟 随 下 面 对 你 的 硬 盘 进 行 分 区 的
相同步骤。
2.2.1 删 除 分 区
在 大 多 数 情 况 下 ,一 个 用 户 在 一 张 硬 盘 上 会 有 几 分 区 。 如 果 你 有 一 个 数 据 非
常 少 的 D O S 分 区 。 你 可 以 考 虑 删 除 他 们 ,为 L i n u x 系 统 开 辟 自 由 空 间 。 在 这 种
情 况 下 ,只 要 决 定 你 想 删 除 哪 一 个 及 多 少 空 间 就 行 了 。 删 除 一 个 分 区 将 删 掉 上 面
的 所 有 数 据 ,因 此 ,首 先 要 确 定 对 数 据 做 备 份 。
记 住 ,D O S 分 区 和 L i n u x 分 区 有 着 严 格 的 不 同 ,如 果 在 你 的 硬 盘 上 已 经 有 一
个 L i n u x 系 统 ,你 打 算 删 除 这 个 分 区 安 装 一 个 新 系 统 , 你 必 须 用 L i n u x 系 统 的 f d i s k
工 具 ,而 不 是 D O S 的 f d i s k 工 具 , 一 个 L i n u x 分 区 不 能 由 L i n u x 的 f d i s k 工 具 完 全
删除。
C :/>fdisk
从 删 除 菜 单 ,选 择 " D e l e t e p a r t i t i o n o r l o g i c a l d o s d r i v e " , 这 样 列 出 当 前 的 驱 动
器 并 提 示 你 键 入 分 区 的 号 码 ,每 个 分 区 入 口 将 列 出 类 型 ,卷 标 ,它 所 占 用 的 字 节 数 ,
不 要 删 除 类 型 是 P R I D O S 的 分 区 ,它 通 常 是 第 一 个 分 区 。 一 个 安 全 的 建 议 是 从
最后一个分区开始。
键 入 分 区 号 以 后 ,你 将 被 提 示 键 入 卷 标 (卷 标 列 在 fdisk 菜 单 中 的 分 区 入 口
里 ) 。当 你 确 定 后 , 键 字 Y 去 除 分 区 , 如 果 你 回 过 头 选 择 第 4 选 项 。" D i s p l a y p a r i t i t i o n
information"你 将 看 到 这 个 分 区 已 不 存 在 。 取 代 它 的 是 一 个 自 由 空 间 的 入 口 。 它
告 诉 你 Linux 可 以 使 用 多 少 自 由 空 间 。
如 果 你 需 要 更 多 的 空 间 ,你 可 以 重 复 先 前 的 步 骤 , 再 删 除 一 个 分 区 ,每 删 除 一 个
分 区 ,硬 盘 就 增 加 了 自 由 空 间 。 如 果 删 除 的 分 区 对 于 L i n u x 系 统 来 说 又 太 多 了 ,你
可 以 用 fdisk 菜 单 的 增 加 选 项 增 加 一 个 新 的 较 小 的 D O S 分 区 。
去 增 加 一 个 分 区 , 在 f d i s k 菜 单 中 选 择 ”分 区 创 建 ”选 项 ,这 会 显 示 分 区 创 建 菜 单 ,
选 择 第 2 选 项 后 ,将 被 提 示 分 区 的 大 小 ,增 加 分 区 后 ,核 对 f d i s k 选 项 菜 单 中 的 第 4
项 。 最 后 的 选 项 将 显 示 自 由 空 间 的 数 量 。 确 认 为 你 的 Linux 系 统 留 下 足 够 的 空
间。

2.2.2 非 破 坏 性 再 分 区
如 果 在 你 的 微 机 上 有 大 量 不 想 重 新 安 装 的 数 据 和 程 序 ,你 可 以 用 defrag 和
f i p s 实 用 工 具 来 进 行 非 破 坏 性 再 分 区 。 但 是 ,为 了 安 全 起 见 ,你 应 该 对 你 的 数 据 做
备 份 。 执 行 非 破 坏 性 再 分 区 , 你 首 先 了 解 是 否 有 足 够 的 剩 余 空 间 为 L i n u x 使 用 ,如
果 没 有 ,就 必 须 删 除 一 些 文 件 。 你 能 用 c h k d s k 来 核 对 你 的 硬 盘 有 多 少 空 间 可 用 ,
看 是 否 有 必 要 增 加 更 多 的 空 间 ,如 果 需 要 增 加 , 删 除 一 些 不 需 要 的 文 件 再 次 重 复 检
查 ,直 到 有 了 足 够 的 空 间 。
当 D O S 创 建 和 存 贮 文 件 时 ,它 放 置 这 些 文 件 在 硬 盘 上 的 不 同 部 分 ,你 的 文 件
是 散 布 于 硬 盘 上 。 它 们 之 间 会 有 一 些 自 由 空 间 ,剩 余 的 未 使 用 的 空 间 变 成 由 文 件
割 开 更 小 的 部 分 。 整 理 磁 盘 碎 片 ( d e f r a g )工 具 会 执 行 碎 片 整 理 过 程 ,调 整 硬 盘 上
所 有 文 件 为 连 续 空 间 ,因 此 ,留 下 所 有 自 由 空 间 作 为 大 的 连 续 过 程 。 一 旦 你 已 经 整
理 了 硬 盘 ,你 将 能 使 用 f i p s 工 具 去 使 用 未 用 空 间 的 一 部 分 或 全 部 的 自 由 空 间 。f i p s
是 f d i s k 的 一 个 版 本 ,被 设 计 用 来 探 测 连 续 的 未 用 空 间 ,并 且 从 当 前 的 D O S 分 区
中 删 除 掉 ,然 后 L i n u x 系 统 可 使 用 未 被 分 区 的 自 由 空 间 。
运 行 整 理 磁 盘 碎 片 d e f r a g 工 具 ,键 入 d e f r a g 命 令 , 它 是 一 种 放 在 D O S 目 录
下的命令
C :\dos\defrag
Defrag 将 用 带 颜 色 的 区 块 代 表 硬 盘 的 不 同 部 分 来 显 示 一 个 硬 盘 。 它 把 所 有
的 使 用 过 的 部 分 ( 包 括 你 的 数 据 和 程 序 ) , 进 行 最 佳 的 整 理 ,在 硬 盘 中 融 为 一 体 。 这
一 过 程 需 要 几 分 钟 的 时 间 , 这 一 切 结 束 后 ,你 将 在 屏 幕 上 看 到 使 用 过 的 部 分 被 安 排
到 一 起 ,然 后 退 出 磁 盘 整 理 工 具 。 现 在 ,你 要 准 备 运 行 fips 工 具 ,去 开 辟 自 由 空
间 , F i p s 安 放 在 你 的 L i n u x 光 盘 上 \ c o l \ t o o l s \ f i p s l 5 目 录 下 。转 入 光 区 ,开 始 运 行 f i p s
工 具 。 在 下 面 例 子 中 ,驱 动 区 e 代 表 光 驱 。
C :\e:
E:\>\col\tools\fipsl5\fips
F i p s 将 在 屏 幕 上 显 示 自 由 空 间 的 数 量 ,如 果 你 不 需 要 全 部 的 自 由 空 间 , 你 可 以
用 你 的 光 标 移 动 键 调 整 ,使 空 间 变 小 ,并 留 下 这 些 自 由 空 间 为 你 的 D O S 系 统 程 序
使 用 ,按 回 车 键 ,完 成 自 由 空 间 的 开 辟 。

2.2.3 对 整 个 硬 盘 进 行 破 坏 性 再 分 区
代 替 减 少 你 当 前 的 D O S 分 区 的 另 一 种 方 法 是 删 除 它 们 ,重 新 开 始 分 区 。 这
一 过程将删除硬盘上的所有数据。但很多情况下你必须这样做。
F i p s 工 具 只 是 简 单 地 缩 减 了 分 区 的 尺 寸 ,并 不 能 删 除 分 区 。 你 可 将 现 有 分 区
变 成 多 个 小 分 区 ,或 将 现 有 分 区 变 成 大 分 区 。 如 果 你 喜 欢 大 分 区 ,你 必 须 对 你 的
硬 盘 进 行 破 坏 性 再 分 区 ,产 生 新 的 分 区 ,然 后 能 从 备 份 中 恢 复 你 的 D O S 系 统 和 数
据 。 如 果 你 有 一 个 刚 买 的 硬 盘 ,并 立 即 安 装 , 那 么 你 必 须 用 相 同 步 骤 对 硬 盘 进 行 破
坏 性 分 区 ( 当 然 不 用 任 何 的 数 据 备 份 和 恢 复 ,因 为 一 个 新 硬 盘 没 有 任 何 数 据 )。 如
果 你 正 在 使 用 一 个 已 经 有 大 量 文 件 的 硬 盘 ,那 么 必 须 备 份 你 的 文 件 ,然 后 对 这 一 硬
盘 进行破坏性再分区。这样你就可以在以后恢复你想要的文件。你对整个硬盘
分 区 以 前 ,须 把 所 有 数 据 备 份 到 软 盘 或 磁 带 上 。 完 成 这 些 以 后 ,你 即 可 对 硬 盘 进 行
破 坏 性 分 区 。 再 次 提 醒 读 者 注 意 的 是 :对 硬 盘 进 行 分 区 , 将 删 除 所 有 的 数 据 。
下 面 的 步 骤 描 述 了 怎 样 运 用 format 和 fdisk 工 具 来 创 建 一 个 D O S 启 动 盘 。
首 先 ,在 软 驱 内 插 入 一 个 空 白 的 软 盘 ,用 f o r m a t 命 令 和 / s 选 项 来 格 式 化 磁 盘 ,并 同
时 把 系 统 文 件 复 制 在 软 盘 上 ,还 要 确 定 软 盘 驱 动 器 的 提 示 符 。 下 面 以 驱 动 器 A 为
例 ,复 制 c o m m a n d . c o m , f o r m a t . c o m 和 f d i s k . e x e 到 A 盘 上 。 F o r m a t 和 f d i s k 这
两 个工具存放在 DOS 目录下。
C :\>format a:/s
C :\>copy command.com a:
C :\>copy dos/format.com a:
C :\>copy dos/fdisk.exe a:
你 现 在 已 经 有 了 D O S 启 动 盘 ,接 着 用 D O S 启 动 盘 重 新 启 动 计 算 机 , 系 统 将
代 替 硬 盘 而 用 启 动 盘 启 动 ,屏 幕 将 显 示 A : \ > 提 示 符 ,现 在 你 可 以 准 备 用 f d i s k 对 硬
盘 进 行 再 分 区 ,键 入 f d i s k 命 令 :
A:\>fdisk
这 时 屏 幕 上 将 显 示 带 有 分 区 选 项 的 f d i s k 菜 单 ,你 可 以 建 立 删 除 或 者 排 列 分 区 ,
如 果 安 装 的 盘 不 是 新 盘 ,则 必 须 将 已 存 在 的 分 区 删 除 ,这 时 ,选 取 菜 单 中 的 第 三 选
项 删 除 一 个 分 区 ,而 当 前 的 分 区 将 被 显 示 出 来 屏 幕 将 提 示 键 入 是 否 真 的 将 要 删 除
这 一 分 区 , 按 ”Y ”键 , 这 时 屏 幕 自 动 回 到 f d i s k 选 项 菜 单 状 态 下 ,选 择 第 三 项 并 重 复
以 上 步 骤 , 则 可 删 除 另 一 个 分 区 。 继 续 这 一 过 程 ,直 到 所 有 分 区 被 删 除 。 每 次 删 除
一 个 分 区 时 ,你 会 注 意 到 列 出 的 分 区 将 较 小 , 自 由 空 间 变 得 较 大 。
一 旦 你 已 经 删 除 所 有 分 区 ,就 可 以 准 备 对 硬 盘 进 行 D O S 分 区 ,并 给 L i n u x 留
出 足 够 的 自 由 空 间 , 选 择 F d i s k 选 项 菜 单 的 第 一 项 ,屏 幕 会 显 示 不 同 类 型 分 区 的 选
项 菜 单 , 一 个 主 D O S 分 区 ,一 个 扩 展 的 D O S 分 区 和 一 个 逻 辑 D O S 分 区 ,你 的 第
一 个 分 区 必 须 是 主 D O S 分 区 ,所 以 选 择 第 一 选 项 。
然 后 , 必 须 把 这 个 D O S 分 区 设 置 为 a c t i v e 分 区 ,以 便 它 能 用 于 启 动 D O S , 选
择 fdisk 菜 单 中 的 第 二 选 项 ,然 后 选 择 分 区 1 为 一 个 active 分 区 。
现 在 你 可 以 增 加 另 一 个 分 区 ,为 了 增 加 分 区 ,选 择 " P a r t i t i o n C r e a t i o n "菜 单 中
的 E x t e n d e d D O S 分 区 选 项 ,增 加 分 区 后 可 用 f d i s k 选 项 菜 单 的 第 4 项 在 核 对 分
区 列 表 ,最 后 一 项 将 显 示 自 由 空 间 的 数 量 。 要 保 证 为 L i n u x 系 统 留 出 足 够 空 间 。
一 旦 完 成 了 硬 盘 的 D O S 分 区 , 就 要 对 它 们 进 行 格 式 化 , 用 f o r m a t 命 令 和 /S 选
项来格式化主分区。使系统文件能复制到上面以启动计算机。主分区通常用 C:
标称。
A:\>format c:/s
其 它 的 分 区 只 用 f o r m a t 命 令 来 格 式 化 ,以 标 称 为 D 的 分 区 为 例 :
A:\>format d:
一 旦 你 已 经 完 成 了 格 式 化 分 区 , 就 可 以 取 出 启 动 盘 ,再 重 新 启 动 计 算 机 ,你 可 以
安 装 D O S 和 W indows 和 你 已 备 份 的 数 据 和 程 序 。
2.3 创 建 O p e n L i n u x 安 装 盘

在 你 的 O p e n L i n u x 光 盘 上 存 放 着 创 建 安 装 盘 的 文 件 ,你 必 须 在 运 行 D O S 的
计 算 机 上 创 建 安 装 盘 。 首 先 启 动 计 算 机 并 进 入 D O S 状 态 ,然 后 执 行 下 面 步 骤 :
1. 在 光 盘 驱 动 器 中 放 入 OpenLinux Life 光 盘 ;
2 . 在 D O S 提 示 符 下 ,转 到 光 盘 驱 动 器 ,下 面 的 例 子 中 E :驱 代 表 光 驱
C :\>e:
E:\>
3 . 进 入 \ c o \ l a u n c h \ f l o p p y 目 录 ,键 入 r a w r i t e 3 命 令 ,就 可 以 创 建 安 装 盘 了 , 你
需 要 复 制 两 张 分 别 包 含 文 件 IN S T A L L . I M G 和 M O D U L E . I M G 的 两 张 软 盘 。
E:\>cd col\launch\floppy
E:\col\launch\floppy>
4 .在 软 驱 内 插 入 一 张 3 . 5 寸 D O S 格 式 化 的 空 白 软 盘 。
5 .现 在 开 始 r a w r i t e 3 命 令 。 r a w r i t e 3 命 令 是 在 \ c o \ l a u n c h \ f l o p p y 下 的 D O S
文件
r a w r i t e 3 提 示 你 想 要 复 制 的 文 件 名 子 ,键 入 I N S T A L L . I M G 然 后 键 入 代 表
软 盘 驱 动 器 的 字 母 ,通 常 为 A 驱 动 器 。
E:\col\launch\floppy>rawrite3
Enter source file name: INSTALL.IMG
Enter destination drive (A or B) and press enter: A
6. 确 定 软 盘 已 插 入 回 按 回 车 键 ,rawrite 3 将 复 制 文 件 到 你 的 软 盘 ,创 立 安 装
盘 ,完 成 以 后 ,将 软 盘 取 出 ,安 装 过 程 将 在 下 面 描 述 。
重 复 相 同 的 步 骤 完 成 带 有 MODULE.IMG 文 件 的 软 盘 的 创 建 。
MODULE.IMG 磁 盘 的 用 于 配 置 你 的 硬 件 。

2.4 安 装 L i n u x

安 装 L i n u x 包 括 几 个 过 程 ,开 始 创 建 L i n u x 分 区 ,装 入 L i n u x 软 件 ,配 置 X-
W i n d o w s 界 面 ,安 装 L i n u x 引 导 器 ( L I L O )。 L I L O 用 来 起 动 你 的 系 统 。
安 装 程 序 是 一 个 一 步 接 一 步 连 续 完 成 的 程 序 ,你 可 以 用 鼠 标 , 光 标 移 动 键 , 空
格 键 和 回 车 键 。 按 E S C 键 可 以 回 到 前 一 屏 幕 ,你 只 要 在 安 装 过 程 中 做 出 选 择 就
可 以 了 。 一 些 屏 幕 ,像 显 示 器 配 置 屏 幕 , 提 供 你 要 做 选 择 的 选 项 列 表 , 另 外 一 些 只
要 求 你 通 过 键 入 y 或 n ,及 鼠 标 选 择 Y E S 或 N O 来 完 成 。 在 一 些 情 况 下 ,程 序 会
询 问 你 一 些 你 准 备 好 的 信 息 , 例 如 :在 X - W i n d o w s 安 装 过 程 中 ,显 示 卡 屏 幕 会 显 示
一 些 图 形 芯 片 的 排 列 ,要 求 你 选 择 用 在 你 的 显 示 卡 上 的 芯 片 , 你 应 该 准 备 的 信 息 在
本书前面部分已经讲过。
现 在 可 以 准 备 安 装 了 , 安 装 过 程 的 每 一 步 骤 描 述 在 下 面 部 分 ,它 将 花 不 超 过 一
个小时。
2 . 4 . 1 启 动 计 算 机 , 并 创 建 L in u x 分 区
如 果 你 跟 随 本 章 第 一 部 分 的 指 导 ,在 硬 盘 上 开 辟 了 自 由 空 间 ,并 创 建 你 的 启 动
盘 ,就 可 以 创 建 分 区 了 。 首 先 ,你 须 要 用 做 好 的 安 装 盘 启 动 计 算 机 。 启 动 计 算 机 后 ,
安装程序开始执行。
通 过 它 你 可 以 用 fdisk 工 具 创 建 linux 分 区 。
1 .把 L i n u x 启 动 盘 插 入 软 驱 内 并 从 新 启 动 计 算 机 。 如 果 系 统 可 从 光 区 启 动 ,
可 用 光 盘 代 替 启 动 盘 。 最 好 用 冷 启 动 ,完 全 关 机 后 再 开 机 。
安 装 程 序 开 始 执 行 后 ,屏 幕 先 出 现 一 些 介 绍 ,然 后 在 底 部 显 示 下 列 提 示 符 :
boot:
2 .回 车 。 有 时 需 要 键 入 一 些 参 数 ,以 防 C D - R O M 不 被 识 别 ( 见 附 录 A ) 大 部 分
系统不需参数。
安 装 程 序 自 动 检 测 硬 盘 时 ,配 置 信 息 会 显 示 在 屏 幕 上 。 如 果 出 现 硬 件 问 题 , 屏
幕 会 列 出 。 配 置 信 息 会 充 满 整 个 屏 幕 。 通 过 按 S h i f t - P a g e U p 键 或 Shift-
P a g e D o w n 键 向 后 或 向 前 翻 页 。注 意 ,C D -R O M 的 设 备 名 可 能 是 h d c 或 s d c 。 如
果 硬 件 没 有 被 正 确 探 测 到 , 你 可 能 必 须 重 新 启 动 计 算 机 ,在 启 动 提 示 符 下 键 入 正 确
设 备 名 。 例 如 , 对 于 一 个 以 太 网 卡 , 应 键 入 IR Q , 端 口 , 起 始 地 址 , 结 尾 地 址 和 设 备 。
附录 A 列出了键入不同设备的语法。
3 . 如 果 你 的 系 统 有 即 插 即 用 卡 ,键 入 p n p ,回 车 后 继 续 。
>>>init: press <Enter> to continue <<<
pnp
4 .一 系 列 语 言 选 项 将 出 现 ,选 择 一 种 语 言 ,回 车 。
5 .屏 幕 显 示 一 系 列 键 盘 ,选 择 你 使 用 的 键 盘 ,回 车 。
过 一 会 儿 ,屏 幕 显 示 一 系 列 被 探 测 到 的 ID E 和 A T A O T I 硬 件 。 按 回 车 继 续 。
6 .系 统 提 示 是 否 所 有 硬 件 都 被 正 确 识 别 。 如 果 是 , 按 Y 选 择 Y E S 继 续 安 装 ,
否 则 , 选 择 N O 。 然 后 ,你 要 选 择 用 a u t o - p r o b e 工 具 自 动 探 测 还 是 手 动 探 测 未 被
识 别 的 硬 件 ,如 果 选 择 手 动 探 测 ,进 入 内 核 模 块 管 理 器 ,在 这 里 ,你 能 装 入 具 体 硬 件
模 块来探测和配置你的硬件。
首 先 ,选 择 需 要 的 硬 件 类 型 ,再 选 择 需 要 的 模 块 。 必 要 时 键 入 硬 件 参 数 (详 见
附 录 A )。
7 .接 下 来 ,你 应 该 创 建 或 改 变 L i n u x 分 区 。第 一 次 安 装 ,你 必 须 创 建 O p e n L i n u x
系 统 被 安 装 的 分 区 。 按 Y 选 择 Y E S 创 建 Linux 分 区 。 如 果 你 打 算 升 级 Linux 系
统 ,可 使 用 原 有 分 区 。 这 个 分 区 类 型 应 当 是 8 3 , e t x 2 的 L i n u x 分 区 。 在 这 种 情 况
下 ,按 N 键 继 续 格 式 化 分 区 。 跳 到 步 骤 1 1 ,开 始 安 装 O p e n L i n u x 系 统 。
8. 屏 幕 显 示 系 统 硬 盘 列 表 ,如 果 多 于 一 个 ,选 择 你 要 分 区 的 硬 盘 。
9 . 系 统 询 问 是 否 转 换 分 区 表 ,按 Y 选 择 Y E S 。
现 在 , 你 以 进 入 L i n u x f d i s k 程 序 ,将 使 用 前 面 为 L i n u x 操 作 系 统 创 建 的 自 由 空
间 进 行 分 区 并 把 它 格 式 化 。 如 果 使 用 全 部 硬 盘 运 行 Linux,你 将 创 建 整 个 硬 盘 分
区 。
你 需 要 创 建 两 个 L i n u x 分 区 :主 分 区 和 交 换 分 区 。 你 需 要 确 定 分 区 有 不 同 的
类 型 。 L i n u x f d i s k 是 一 个 行 编 辑 程 序 ,它 有 一 套 单 字 符 命 令 ,屏 幕 将 提 示 你 键 入 命
令 和 确 认 。 在 运 行 f d i s k 过 程 中 ,如 果 出 现 任 何 问 题 ,可 按 P 键 退 到 先 前 的 屏 幕 ,且
不 会 有 任 何 改 动 。 按 W 键 以 前 ,硬 盘 不 会 有 任 何 变 化 ,它 应 是 你 的 最 后 一 个 命 令 。
它 将 真 正 改 变 硬 盘 并 退 出 fdisk 命 令 ,使 你 回 到 安 装 程 序 。 表 2-1 列 出 fdisk 常 用
命令。
表 2-1fdisk 命 令 列 表
命令 动作
a 转换启动标记
1 列出未知分区类型
m 命令列表
n 新增一个分区
p 显示分区表
q 不保存所做修改而退出
t 改变分区类型
w 保存所做修改后退出
执 行 下 面 的 步 骤 创 建 L i n u x 分 区 ,首 先 你 要 创 建 交 换 分 区 。
a .按 p 键 显 示 你 当 前 分 区
b. 按 n 定 义 一 个 新 分 区 ,你 会 被 询 问 新 分 区 是 否 为 主 分 区
c. 按 p 指 出 这 是 一 个 主 分 区
d. 键 入 你 正 在 创 建 的 分 区 号 码
e . 键 入 分 区 的 起 始 号 码 ,这 是 在 提 示 符 末 端 括 号 内 的 第 一 位 数 字 。 这 决 定 了
分 区 的 大 小 。 换 言 之 , 你 可 以 在 数 字 前 键 入 一 个 ”+ ”号 并 在 后 面 键 入 一 个 字 母 m
来 确 定 分 区 尺 寸 。 + 3 2 M 就 是 确 定 了 一 个 3 2 M B 的 分 区 ,在 这 种 情 况 下 ,你 不 必 决
定最后一个确定分区尺寸的数字。

f. 键 入 交 换 分 区 的 尺 寸 ,在 1 6 M B 和 3 2 M B 之 间 。
g . 按 t 键 指 示 出 你 设 置 的 L i n u x 分 区 的 类 型 ,键 入 分 区 号 码 ,然 后 H E X 码 提
示 你 键 入 82 。 这 是 Linux 交 换 分 区 的 类 型 。
h. 按 n 键 来 定 义 另 一 个 分 区 。 并 且 按 P 键 把 它 设 置 成 为 一 个 主 分 区 。
i. 键 入 你 正 在 创 建 的 分 区 号 码 。
j. 键 入 分 区 的 起 始 号 码 ,这 是 在 提 示 符 末 端 括 号 内 的 第 一 个 数 字 。
k. 然 后 在 提 示 键 入 最 后 一 个 确 定 分 区 大 小 的 数 字 ,你 也 可 以 键 入 + 3 0 0 M 来
代 表 分 区 的 大 小 是 3 0 0 M B 。 记 住 ,一 个 标 准 的 安 装 最 少 使 用 3 0 0 M B 。 如 果 你 有
更 多 的 空 间 ,你 可 以 使 它 变 得 更 大 ,但 你 不 能 让 它 超 出 你 的 自 由 空 间 。 全 部 文 件 的
安 装 要 花 6 6 4 M B。 Linux 分 区 的 缺 省 类 型 是 8 3。 你 不 必 设 置 它 。
l. 按 w 转 换 到 硬 盘 上 , 然 后 按 回 车 键 继 续 。
下 面 是 一 个 f d i s k 程 序 的 运 行 例 子 ,显 示 出 用 于 创 建 的 分 区 的 界 面 和 你 要 使 用
的 命 令 。 在 这 个 例 子 中 ,你 可 以 用 上 述 两 种 方 法 来 确 定 一 个 5 0 0 M B 分 区 的 大 小 。
注 意 ,当 你 被 提 示 键 入 第 一 个 分 区 起 使 数 字 的 时 候 ,你 可 以 在 提 示 符 下 发 现 它 。 在
这 个 例 子 中 ,用 的 是 2 0 5 ,然 后 是 2 3 8 。
屏 幕 将 警 告 你 ,你 的 分 区 表 已 经 被 转 换 , 按 回 车 键 , 屏 幕 将 显 示 出 系 统 的 硬 盘 ,
这 个 选 项 ”1 . N o f u r t h e r d i s k c h a n g e s ”将 变 亮 ,如 果 不 打 算 在 你 系 统 上 建 立 另 一 个
分 区 ,就 按 回 车 键 继 续 。
如 果 你 已 经 有 一 个 你 不 想 要 的 老 的 L i n u x 分 区 ,你 可 以 用 L i n u x 的 f d i s k 把
它 删 去 , 记 住 :只 有 L i n u x 的 f d i s k 能 删 除 L i n u x 分 区 , 首 先 ,按 p 键 显 示 你 要 删 除
的 分 区 号 码 。 按 d 键 提 示 你 删 除 的 分 区 号 码 , 选 择 正 确 的 号 码 ,如 果 你 不 小 心 键 入
一 个 D O S 分 区 ,你 就 必 须 用 f d i s k 删 除 它 , 如 果 发 生 了 这 种 情 况 ,你 就 要 按 q 键 退
出 F d i s k 命 令 ,而 不 要 按 w 键 , 这 样 的 话 就 不 会 删 除 任 何 东 西 。 然 后 在 硬 盘 的 选
择 菜单上再选你的硬盘并重新开始。
10. 下 一 个 屏 幕 提 示 你 重 新 启 动 你 的 计 算 机 ,记 住 你 的 Linux 启 动 盘 仍 然 在
你 的 软 驱 内 , 如 果 不 在 ,就 要 插 入 它 , 按 回 车 键 启 动 。 你 将 再 次 安 装 所 有 的 内 容 , 现
在 你 的 硬 盘 分 区 已 经 准 备 完 毕 ,继 续 下 面 的 部 分 来 执 行 安 装 。

2.4.2 安 装 你 的 Linux 系 统 :Open Linux Lite


现 在 你 已 将 创 建 了 L i n u x 分 区 ,可 以 安 装 L i n u x 系 统 了 。
在 步 骤 1 0 中 ,已 经 重 新 启 动 了 你 的 计 算 机 ,前 面 显 示 了 一 引 起 介 绍 性 信 息 ,在
屏幕的底部将显示出启动提示符。再次重复第二步骤到第六步骤来安装程序。
但 这 次 你 要 跳 过 分 区 ,你 将 继 续 进 行 L i n u x 系 统 的 真 正 安 装 。
1 1 . 重 复 前 面 步 骤 中 的 2 , 3 , 4 , 5 , 6 当 被 询 问 是 否 转 换 分 区 表 时 ,按 N 键 或 回 车
键。
1 2 . 下 一 个 屏 幕 显 示 你 创 建 的 L i n u x 交 换 分 区 , 通 过 选 择 它 ,你 可 以 把 它 格 式
化 ,要 确 定 L i n u x 交 换 分 区 已 经 被 选 中 ,它 的 类 型 是 8 2 ,按 回 车 键 来 格 式 化 你 的 交
换空间。
1 3 . 下 一 屏 将 出 现 3 个 选 项 :C D - R O M ,硬 盘 或 网 络 。 选 择 C D - R O M 来 安 装
OpenLinux Lite 系 统 。
14. 按 回 车 键 盘 来 确 认 你 的 C D - R O M 驱 动 器 。 如 果 你 确 认 你 的 C D - R O M
有 问 题 的 话 ,你 可 以 用 硬 盘 来 进 行 安 装 。 你 可 以 把 C D - R O M 复 制 到 一 个 D O S 分
区 ,然 后 从 那 里 开 始 安 装 ,网 络 安 装 允 许 你 通 过 一 个 像 N F S 的 一 个 网 络 到 达 远 距
离 的 O p e n L i n u x 光 盘 ,你 也 可 以 把 光 盘 考 贝 到 硬 盘 的 某 个 分 区 上 ,然 后 通 过 网 络
来 安 装 。 如 果 你 选 择 硬 盘 来 安 装 ,你 必 须 确 定 这 个 已 经 拷 贝 的 硬 盘 分 区 和 放 置 光
驱 的 目 录 。 \ d e v \ h d a 1 表 明 了 第 一 个 分 区 ,如 果 你 选 择 了 网 络 安 装 ,你 必 须 确 定 服
务 器 的 地 址 和 放 置 Linux 光 驱 目 录 的 路 径 。
1 5 . 再 次 显 示 硬 盘 上 的 分 区 目 录 。 为 L i n u x 主 分 区 创 建 的 分 区 将 会 变 亮 ,其
类 型 为 8 3 。 确 定 主 L i n u x 分 区 变 亮 ,然 后 按 回 车 将 其 格 式 化 。
1 6 . 格 式 化 的 同 时 可 以 使 L i n u x 检 测 磁 盘 碎 片 。 片 刻 后 ,将 完 成 分 区 格 式 化 。
按 下 来 ,你 要 选 择 安 装 选 项 ,根 据 空 间 大 小 将 有 不 同 的 选 择 。 共 有 七 种 选 项 ,同 时
还有几种小型安装。下面列举四种常用选项。
・ 标 准 的 O p e n L i n u x  L i t e :标 准 的 缺 省 安 装 ;占 2 1 2 M B
・ 最 小 安 装 :无 W i n d o w s 支 持 的 或 无 很 多 标 准 应 用 程 序 的 完 整 的 L i n u x 系
统 ,仅 占 5 8 M B 。
・ 小 型 标 准 :包 括 普 通 用 途 软 件 包 ;约 占 9 1 M B 。
・ 完 全 系 统 包 括 在 OpenLinux 光 盘 上 的 整 套 软 件 包 和 开 发 工 具 ;约 占
667MB。
17. 你 应 该 选 择 X-Windows 图 形 服 务 器 。 通 过 选 择 表 中 的 服 务 器 并 按 空 格
键 ,可 以 选 择 多 个 X - W i n d o w s 图 形 服 务 器 。 完 成 后 按 回 车 键 。 为 满 足 不 同 显 示
卡 中 特 殊 芯 片 集 的 要 求 ,可 以 选 择 标 准 的 S V G A 服 务 器 和 一 个 专 用 的 加 速 服 务
器 。 加 速 服 务 器 的 名 字 包 含 芯 片 集 的 名 字 ( S 3 系 列 )。 V G A - 1 6 服 务 器 总 是 被 安
装 (详 见 表 2 - 2 )。 一 旦 系 统 被 安 装 ,就 会 发 现 不 同 服 务 器 的 详 细 信 息 ,以 及 该 系 统
在 / u s e / X 1 1 R 6 / l i b / X 1 1 / d o c 目 录 和 / u s r / d o c / H O W T O /X F r e e 8 6 - H O W T O 文 件 所
支 持 的 芯 片 集 信 息 。 XFree86-HOWTO 列 出 了 所 有 被 支 持 的 芯 片 集 。
1 8 . 阅 读 屏 幕 显 示 的 注 意 事 项 ,然 后 按 回 车 键 开 始 安 装 。
标 准 安 装 大 约 占 1 5 分 钟 。 这 段 时 间 内 屏 幕 将 显 示 安 装 过 程 ,指 示 已 完 成 的
百 分 率 及 已 安 装 的 软 件 包 。 L i n u x 屏 幕 保 护 程 序 将 被 激 活 ,过 一 会 显 示 器 将 变 黑 。
要 恢 复 显 示 器 只 需 按 SHIFT,CTRL 或 ALT 键 。
表 2-2XFREE86 服 务 器
服务器 类型
XFree86_SVGA 彩 色 SVGA 服 务 器
XFree86_ VGA16 16 色 SVGA 及 VGA 非 加 速 服 务 器
XFree86_ MonoMonochrome 非加速服务器
XFree86_ S3 S3 加 速 服 务 器
XFree86_ S3V S 3 V i R G E 和 V iR G E / V X 加 速 服 务 器
(许 多 3 D 卡 )
XFree86_ 1128 Number 9 Image 128 加 速 服 务 器
XFree86_ 8514 8514/A 加 速 服 务 器
续表
XFree86_ Mach8 ATI Mach8 加 速 服 务 器
XFree86_ Mach32 ATI Mach32 chipset 加 速 服 务 器
XFree86_ P9000 P9000 加 速 服 务 器
XFree86_ W32 ET4000/W32 加 速 服 务 器
XFree86_ AGX IIT AGX 加 速 服 务 器
XFree86_ Mach64 ATI Mach64 加 速 服 务 器

2.4.3 网 络 配 置
完 成 安 装 过 程 后 ,系 统 将 提 出 一 系 列 网 络 配 置 的 问 题 。 如 果 你 正 联 接 一 个 网
络 ,你 会 需 要 前 部 分 列 举 的 信 息 ,”网 络 配 置 信 息 ”去 配 置 L i n u x 用 于 网 络 的 界 面 。
如 果 你 正 用 一 个 调 制 解 调 器 ( M O D E M )进 入 I n t e r n e t 网 ,你 只 需 D N S 信 息 或 某 些
情 况 下 的 网 关 信 息 。 O p e n L i n u x 也 提 供 了 N IS 网 络 支 持 。
・ 计算机主机名
・ 你的域名
・ 分 配 给 计 算 机 的 IP 地 址
・ 网 络 IP 地 址
・ 子网屏蔽
・ 网 络 的 广 播 IP 地 址
・ 网 关 路 由 器 的 IP 地 址 ( 如 果 存 在 网 关 )
・ 网 络 使 用 的 域 名 服 务 器 的 IP 地 址
・ 如 果 网 络 使 用 了 N I S 服 务 器 ,要 知 道 N IS 域 和 IP 地 址
只 有 了 解 上 述 信 息 才 能 实 行 网 络 配 置 。 以 后 ,你 可 以 轻 松 地 使 用 O p e n L i n u x
工 具 键 入 配 置 信 息 。但 是 , 有 了 这 些 信 息 后 ,你 可 以 按 下 列 步 骤 继 续 网 络 配 置 。 屏
幕 将 提 示 键 入 计 算 机 主 机 名 。如 果 无 主 机 名 , 则 应 自 己 决 定 一 个 名 字 - 通 常 4 到 2 0
字 节 长 ( 如 果 计 算 机 已 联 网 , 则 其 应 有 一 个 主 机 名 ,如 果 不 知 其 名 则 应 与 网 络 管 理
员 确 认 )。
1 9 . 键 入 系 统 主 机 名 ,然 后 回 车 。
2 0 . 系 统 将 询 问 你 是 否 有 网 卡 。 如 有 ,选 Y e s ,系 统 将 继 续 提 问 。 如 果 未 联 网 ,
键 入 n ,然 后 继 续 ”最 终 配 置 ”步 骤 ( 如 果 你 有 一 个 单 机 ,你 将 无 法 联 网 ) 。
・ 你 应 该 确 认 网 络 设 备 是 eth0。 这 是 以 太 网 设 置 的 缺 省 设 备 。 如 果 不 是 以
太 网 , 选 择 ”N O ”。 然 后 会 提 示 网 络 信 息 。
・ 键 入 你 的 四 部 分 IP 地 址
・ 键入子网屏蔽。多数配置将是一个缺省值。
・ 键入网络的广播地址。
2 1 . 系 统 将 询 问 网 络 是 否 有 路 由 器 或 网 关 系 统 。 如 果 有 ,则 键 入 其 IP 地 址 。
如 果 不 是 ,按 n 选 择 N O 。
2 2 . 指 示 你 是 否 有 一 个 D N S 域 名 服 务 器 。 如 有 则 键 入 其 IP 地 址
2 3 . 系 统 询 问 是 否 有 N IS 系 统 , 选 Y 配 置 它 , 否 则 选 N 。 要 配 置 N IS 系 统 , 需
要 键 入 N I S 域 和 N IS 服 务 器 的 IP 地 址 , 现 在 , 网 络 配 置 已 经 完 成 。
2.4.4 最 终 配 置
下 面 的 两 个 屏 幕 提 示 选 择 当 地 时 间 和 格 林 威 治 时 间 及 正 确 的 时 区 。 对 PC
用 户 来 说 ,普 遍 选 当 地 时 间 ,D O S 系 统 通 常 根 据 当 地 时 间 来 操 作 ,然 而 ,对 U n ix 系
统 ,格 林 威 治 时 间 ( G M T ) 是 标 准 的 ,并 且 格 林 威 治 时 间 会 给 I n t e r n e t 网 中 其 它 U n i x
计算机提供更好的转换能力。
2 4 . 选 时 间 类 型 后 ,按 回 车 ,在 下 一 个 屏 幕 选 一 个 时 区 ,然 后 按 回 车 。
25. 下 一 个 屏 幕 将 列 出 一 系 列 鼠 标 类 型 。 选 择 鼠 标 类 型 ,按 回 车 。
26. 下 一 屏 幕 提 示 选 择 鼠 标 所 使 用 的 一 系 列 端 口 , 选 后 按 回 车 ( 通 常 是
COM1)。
2 7 . 然 后 ,提 示 设 置 打 印 机 。 首 先 , 屏 幕 提 供 打 印 机 各 列 表 ,然 后 用 光 标 选 择 其
中之一。
2 8 . 选 择 打 印 机 端 口 (通 常 是 第 一 个 并 行 端 口 ) 。
29. 选 择 缺 省 的 打 印 结 果 (对 多 数 打 印 机 是 3 0 0 * 3 0 0 )
30. 选 择 缺 省 纸 张 的 尺 寸 ( 通 常 是 信 纸 的 尺 寸 ),键 入 简 单 易 记 的 超 级 用 户 指
令 。 你 必 须 以 超 级 用 户 的 身 份 来 配 置 系 统 ,执 行 类 似 于 安 装 软 件 或 配 置 应 用 程 序
等的管理操作。
3 1 . 在 口 令 提 示 符 下 ,键 入 超 级 用 户 口 令 。
3 2 . 再 次 键 入 超 级 用 户 口 令 ,以 确 认 。
33. 屏 幕 提 示 键 入 另 一 口 令 ,该 口 令 是 称 作 c o l 的 普 通 用 户 帐 号 。 创 建 并 键
入 一 个 口 令 ,重 新 键 入 以 确 认 。 可 以 用 类 似 于 u s e c f g 的 管 理 工 具 来 增 加 新 用 户 。
2.4.5 安 装 L I L O
接 下 来 ,屏 幕 将 显 示 L I L O 的 启 动 设 置 分 析 。 L I L O 是 L i n u x 的 装 载 工 具 ,启 动
时 , L I L O 会 开 启 L i n u x 系 统 。 然 而 ,如 果 硬 盘 上 存 在 多 个 操 作 系 统 , L I L O 会 提 供 选
择 机 会 。 如 果 你 未 选 定 任 何 操 作 系 统 ,LILO 将 以 缺 省 形 式 指 派 其 中 一 个 。 如 果
硬 盘 上 有 D O S 和 Linux,LILO 将 让 你 选 择 。
34. 按 回 车 键 继 续 。
3 5 . 选 择 将 要 安 装 L I L O 启 动 管 理 器 的 分 区 。 如 果 无 法 确 定 安 装 位 置 ,则 选 缺
省 状 态 ,该 选 项 将 会 发 亮 。 缺 省 是 根 据 系 统 分 析 选 定 的 (通 常 是 L i n u x 根 区 )。
36. 选 择 做 为 缺 省 状 态 开 启 的 系 统 。 通 常 是 Linux 或 D O S 。 Linux 将 由
/ v m l i n u x ( L i n u x 核 心 映 像 ) 。D O S 或 W i n d o w s 9 5 系 统 将 包 含 未 端 带 D O S 或 O S / 2
的 DOS 术 语 。
37. 键 入 一 系 统 标 志 。 将 会 显 示 一 缺 省 名 词 。 d o s 是 D O S 系 统 标 志 。 Linux
是 Linux 系 统 标 志 。 按 回 车 键 确 认 这 些 标 志 。 如 想 变 更 按 后 退 键 后 更 改 。
3 8 . 如 果 选 L i n u x 系 统 ,则 特 殊 的 启 动 参 数 将 需 确 认 ,如 无 特 殊 参 数 ,则 该 选 项
为 空 白 ,选 O K 继 续 。
39. 现 在 可 另 选 其 它 的 操 作 系 统 ,屏 幕 会 显 示 硬 盘 上 所 有 的 系 统 ,包 括 D O S
和 L i n u x 。 如 果 你 既 有 D O S 又 有 L i n u x ,你 要 选 择 其 一 。 例 如 , 选 D O S 为 缺 省 系
统 ,则 必 须 选 L i n u x 为 其 它 操 作 系 统 。
40. 选 择 D O S 或 Linux 来 做 缺 省 的 操 作 系 统 。
41. 屏 幕 提 示 键 入 另 外 一 个 操 作 系 统 的 名 字 , 如 果 选 Linux ,屏 幕 会 显 示
L i n u x 然 后 选 O K ,否 则 ,键 入 其 它 的 操 作 系 统 标 志 。
42. 你 可 以 用 同 样 方 式 为 许 多 操 作 系 统 设 置 标 志 。 如 果 有 第 三 个 操 作 系 统
选 择 其 分 区 ,重 复 前 面 的 步 骤 。
4 3 . 一 旦 完 成 上 述 选 项 ,选 择 ”N o f u r t h e r e n t r i e s t o a d d t o L I L O "选 项 ,按 回 车 ,
屏 幕 会 显 示 ”l i l o . c o n f”文 件 , 这 是 配 置 L I L O 的 文 件 。 然 后 会 看 见 你 想 进 入 的 操 作
系 统 选 项 。 按 回 车 确 认 L I L O 的 安 装 。 你 将 按 配 置 安 装 L I L O 。 然 后 按 ”y ”或 回 车
结 束 L I L O 安 装 后 再 按 回 车 。 然 后 标 记 带 有 L I L O 的 分 区 ,再 按 回 车 。

2.4.6 完 成 配 置
现在你将完成配置的最后步骤
4 4 . 当 L i n u x 启 动 时 ,系 统 自 动 提 供 服 务 器 列 表 , 包 括 A p a c h e W e b S e r v e r 。
所 有 在 OpenLinux Lite 中 所 有 可 获 得 的 都 是 已 经 被 选 好 的 服 务 器 。 你 可 以 将 光
标 移至该选项并按回车键来加选服务器。按回车键继续。
4 5 . 应 该 选 择 X - W i n d o w s 服 务 器 。 将 光 标 移 动 到 你 想 要 的 选 项 ,然 后 按 回 车
键 继续。
4 6 . 系 统 询 问 是 否 想 要 配 置 X - W i n d o w s 服 务 器 。 对 此 最 好 的 回 答 是 ”N O ”。
然 后 完 成 安 装 过 程 。 X - W i n d o w s 的 配 置 会 很 复 杂 。 如 果 不 当 ,系 统 将 会 崩 溃 。
这 将 损 坏 整 个 安 装 , 你 必 须 重 新 安 装 。 按 ”n ”键 或 回 车 键 来 结 束 安 装 。 你 已 经 全 部
完 成了你的安装。
4 7 . 拿 出 软 驱 中 的 驱 动 软 盘 , 然 后 按 回 车 键 ,几 分 钟 后 系 统 将 自 动 启 动 。 当 系
统 初 始 化 完 成 后 ,注 册 提 示 符 将 出 现 。 然 后 就 可 为 任 何 用 户 设 置 一 个 注 册 名 和 口
令 。 安 装 期 间 ,你 已 经 设 置 了 一 个 超 级 用 户 和 一 个 名 叫 c o l 用 户 的 名 字 和 口 令 。
用 它 们 其 中 的 一 个 来 注 册 。 如 果 以 超 级 用 户 的 身 份 来 注 册 ,就 可 以 执 行 象 安 装 新
软 件 和 创 建 新 用 户 的 管 理 操 作 。 键 入 r o o t 和 回 车 键 ,实 现 超 级 用 户 的 注 册 , 然 后
在 用 户 口 令 提 示 符 下 键 入 超 级 用 户 口 令 。 然 后 回 车 ,在 某 种 情 况 下 ,你 打 算 运 行 一
个 程 序 时 ,收 到 了 丢 失 文 件 的 错 误 时 ,用 L i s a 去 核 对 是 否 安 装 了 此 软 件 包 ,如 果 没
安 装 ,就 装 上 它 ,如 何 注 册 和 推 出 系 统 详 见 第 3 章 。
如 果 你 正 在 升 级 一 个 L i n u x 系 统 ,并 且 打 算 使 用 已 经 备 份 的 配 置 文 件 ,那 么 现
在 就 可 以 恢 复 它 了 。 安 装 存 储 这 些 文 件 的 软 盘 ,复 制 配 置 文 件 到 你 的 新 系 统 。 你
也 可 以 用 tar xvMf/dev/fdo 命 令 来 恢 复 tar 文 件 及 软 件 包 。
完 成 以 后 用 logout 命 令 退 出 你 的 帐 户 。
$ logout
然 后 你 需 要 关 闭 整 个 系 统 ,无 论 什 么 时 候 你 打 算 关 闭 系 统 ,同 时 按 一 下
C T R L - A L T - D E L 键 ,对 于 关 闭 系 统 来 说 , 总 是 用 这 三 个 键 是 十 分 重 要 的 , 如 果 用
DOS 系统就不用这种方法关机了。
在 任 何 情 况 下 ,一 旦 你 启 动 失 败 ,你 可 以 用 执 行 紧 急 启 动 的 安 装 盘 ,把 安 装 盘 放
入 软 驱 里 ,在 启 动 提 示 符 下 ,键 入 " b o o t r o f o o t = "和 启 动 L i n u x 分 区 的 设 备 名 。
例 如 :如 果 启 动 L i n u x 分 区 时 / d e r / h d a 2 ,然 后 键 入 b o o t r o r o o t = / d e r / h d a 2 。
boot>boot ro root=/der/hda2

2.5 安 装 和 配 置 X-W i n d o w s

首 先 你 要 用 超 级 用 户 身 份 注 册 在 L I L O 提 示 符 下 ,键 入 L i n u x 并 按 回 车 键 。
1 .在 注 册 提 示 符 下 ,键 入 r o o t , 然 后 回 车 。
2 .系 统 立 刻 提 示 你 键 入 超 级 用 户 口 令 。
3 .在 口 令 提 示 符 下 ,键 入 你 为 超 级 用 户 设 置 的 口 令 ,然 后 回 车 。
使 用 X-W i n d o w s 以 前 , 你 必 须 配 置 鼠 标 键 盘 ,显 示 卡 和 显 示 器 , 以 支 持 X -
W i n d o w s 界 面 ,用 X F 8 6 s e t u p 程 序 配 置 X - W i n d o w s 。 这 是 一 个 全 屏 幕 的 图 形
用 户 界 面 ,在 界 面 上 单 击 按 钮 和 菜 单 来 选 项 。 任 何 时 候 你 都 可 以 重 新 配 置 你 的 X -
W i n d o w s 界 面 。 配 置 你 的 显 示 卡 ,可 以 从 列 表 中 选 择 。
配 置 X - W i n d o w s 以 前 ,找 到 显 示 器 垂 直 和 水 平 的 刷 新 频 率 ( 然 后 参 考 显 示 器
的 硬 件 文 件 , 这 个 频 率 是 一 个 数 字 或 者 范 围 , 例 如 一 个 N E C 3 V 的 显 示 器 ,水 平 频
率 是 3 1 - 5 0 ,垂 直 频 率 是 ( 5 - 9 0 ) 。
4 .执 行 X F 8 6 s e t u p 程 序
在 S h e l l 提 示 符 下 ,键 入 这 个 命 令 来 执 行 X F 8 6 s e t u p 程 序 ,这 处 程 序 安 放 在
/usr/X11R6/bin 目 录 下 。 它 将 创 建 用 于 系 统 的 X-Windows 配 置 文 件 . 名 叫
/etc/XF86Config 。
$/usr/X11R6/bin/ XF86setup
如 果 你 的 X F 8 6 s e t u p 没 有 执 行 ,原 因 可 能 是 安 装 时 没 有 完 全 安 装 X free86
库 文 件 。 用 第 3 章 所 述 的 L i s a 工 具 ,安 装 X f r e e 8 6 软 件 和 X f r e e 8 6 m i s c 软 件 。
然 后 执 行 X F 8 6 s e t u p 文 件 。 如 果 仍 然 不 行 ,你 就 用 X F 8 6 C o n f i g 。
5 .你 应 该 键 入 图 形 模 式 ,按 回 车 。
如 果 正 在 运 行 XF86setup 程 序 ,需 要 完 成 5 个 配 置 任 务 。 每 一 个 显 示 在
XF86setup 窗 口 顶 部 的 一 个 按 钮 。 这 个 按 钮 分 别 标 有
Mouse,Keyvoard,Card,Monitor 和 O t h e r。 每 一 个 按 钮 可 以 产 生 一 个 配 置 该 项
任务的屏幕。

图 2-1 描 述 鼠 标 内 容 的  XF86setup 程 序
屏 幕 的 底 部 有 三 个 按 扭 : A b o r t , D o n e ,和 H e l p . A b o r t 将 取 消 X F 8 6 s e t u p
程 序 。 如 果 你 不 能 确 定 任 何 配 置 选 项 ,你 只 要 单 击 Abort, 就 可 以 安 全 地 结 束 程
序 。 当 你 完 成 了 所 有 的 配 置 任 务 。 单 击 Done 按 钮 ,存 储 你 的 配 置 ,然 后 退 出
X F 8 6 s e t u p 程 序 。 然 后 用 startx 命 令 初 始 化 X - W i n d o w s。
6 .按 回 车 或 者 A L T - M 键 ,可 以 出 现 鼠 标 屏 幕 。 鼠 标 屏 幕 第 一 次 出 现 是 列 出
了 许 多 键 盘 命 令 。 鼠 标 配 置 以 前 ,建 议 你 不 要 使 用 鼠 标 。 你 可 以 用 键 盘 命 令 来 选
择 屏 幕 上 的 选 项 (看 图 2 - 1 )。
鼠 标 屏 幕 列 出 发 一 系 列 的 鼠 标 品 牌 。 在 标 有 "选 择 鼠 标 协 议 "的 标 志 下 ,按 动
屏 幕 顶 部 的 按 钮 来 选 择 要 的 鼠 标 品 牌 。 Microsoft 是 大 部 分 鼠 标 都 兼 容 的 协 议 。
大 部 分 标 准 的 鼠 标 是 M icrosoft 系 列 。 你 可 以 根 据 鼠 标 的 不 同 特 点 来 设 置 按 钮 ,
缺 省 设 置 已 经 被 键 入 。 对 于 鼠 标 的 路 径 来 说 ,/der/ttys0 指 定 了 第 一 个 串 行
口 ,/der/ttys1。
指 定 了 第 二 个 串 行 口 。 系 统 已 经 选 择 了 / d e r / t t y s 0 ,这 是 鼠 标 常 用 的 端 口 。 B
键 设 置 了 波 特 率 。 e 命 令 显 示 出 中 间 按 钮 的 配 置 内 容 ,c 命 令 可 以 使 用 中 间 按 钮
的 配 置 内 容 。 完 成 上 述 命 令 后 按 a 键 选 择 右 下 角 的 Apply 按 钮 。 你 就 配 置 好 了
你 所 要 用 的 鼠 标 ,并 且 可 以 用 它 来 配 置 其 它 内 容 。
7 .单 击 键 盘 按 钮 显 示 出 键 盘 屏 幕 , 会 出 现 一 个 选 择 键 盘 模 式 和 语 言 的 下 拉 菜
单 。 你 可 以 设 置 不 同 的 控 制 键 ,或 者 使 用 缺 省 值 。 完 成 这 些 以 后 ,选 择 键 盘 图 像 中
的 A p p l y 按 钮 (看 图 2 - 2 )。
图 2-2XF86setup 的 键 盘 屏 幕
8 .用 于 显 示 卡 配 置 的 两 个 屏 幕 :详 细 的 设 置 和 卡 的 列 表 屏 。 正 常 情 况 下 , 你 必
须 使 用 卡 的 列 表 屏 。 单 击 Card 按 钮 启 动 。 如 果 你 前 面 没 有 运 行 XF86setup 程
序 ,就 立 刻 会 出 现 卡 的 列 表 屏 。 如 果 你 已 经 运 行 了 X F 8 6 s e t u p 程 序 ,首 先 会 显 示
出 详 细 设 置 屏 幕 。 在 屏 幕 的 右 下 角 是 一 个 标 有 Card List 的 按 钮 。 选 择 这 个 按 钮
来 开启卡的列表屏。
卡的列表屏显示了当前大部分的显示卡。右侧是能移动列表的流动条。找
到 系 统 所 使 用 的 显 示 卡 ,单 击 它 选 择 。 然 后 单 击 R E A D M E 文 件 ,查 看 卡 的 信 息 服
务 ( 见 图 2 - 3 )。 然 后 继 续 配 置 显 示 器 。

图 2-3 支 持 显 示 卡 的 XF86setup 的 卡 的 列 表 屏
图 2-4XF86setup 的 显 示 器 配 置 屏
如 果 你 的 卡 没 有 列 在 列 表 中 ,选 择 详 细 设 置 现 详 细 设 置 窗 口 ,你 可 以 对 你 的 卡
进 行 详 细 设 置 。 在 详 细 设 置 窗 口 中 ,你 将 看 到 顶 部 有 一 排 按 钮 指 示 不 同 的 X -
W i n d o w s 服 务 器 。 它 们 的 下 面 是 一 个 选 择 芯 片 集 的 下 拉 菜 单 ,也 有 选 择 键 盘 方 式
和语言的下拉菜单。
9 .单 击 显 示 器 按 钮 弹 出 后 显 示 器 屏 幕 , 设 置 显 示 器 的 水 平 的 垂 直 扫 描 频 率 的
范 围 。 但 是 ,这 个 频 率 的 设 置 是 非 常 重 要 的 。 不 正 确 的 频 率 可 以 损 坏 显 示 器 ( 见 图
2 - 4 )。
注 意 选 择 显 示 器 频 率 以 前 ,核 对 你 的 硬 件 文 件 ,如 果 你 设 置 的 频 率 高 于 显 示 器
的 要 求 ,将 严 重 损 坏 显 示 器 。
屏 幕 的 顶 部 标 有 Horizontal 和 Vertical 的 方 框 。 在 这 里 你 可 以 键 入 水 平 和
垂 直 的 扫 描 频 率 ,按 回 车 键 。 你 能 看 到 这 个 频 率 被 再 次 打 印 到 有 关 的 栏 目 中 ,如 果
你 的 显 示 器 支 持 每 一 个 选 项 范 围 ,你 可 以 分 别 地 来 键 入 它 。 例 如 一 个 老 的 多 信 号
显 示 屏 ,它 可 能 有 3 1 - 5 0 的 水 平 扫 描 频 率 和 一 个 55-90 的 垂 直 的 扫 描 频 率 。 垂 直
和 水 平 的 方 框 下 面 ,有 一 个 图 显 示 出 你 键 入 的 范 围 。 在 屏 幕 的 中 心 , 有 一 个 方 框 ,
列 出 了 普 通 的 显 示 器 类 型 , 你 能 够 单 击 其 中 一 个 ,选 择 标 准 的 频 率 设 置 。 一 定 要 核
对显示文件设置的正确频率。
1 0 . 单 击 其 他 的 按 钮 产 生 服 务 器 设 置 , 列 出 了 五 个 选 项 ,前 2 个 选 项 是 已 经 被
选 中 的 。 一 般 来 说 你 不 用 改 变 屏 幕 上 的 任 何 选 项 。 第 1 个 选 项 允 许 你 用 CTRL-
A L T - B A C K S P A C E 键 退 出 X - W i n d o w s。 第 2 个 选 允 许 你 用 C T R L - A L T 和 任 意
一键来改变显示类型。不同结果之间的转换是容易的。第 3 项允许你退出服务
器 。 第 4 项 和 第 5 项 允 许 你 从 远 处 的 工 作 站 来 改 变 显 示 器 ,鼠 标 和 键 盘 的 配 置 。
1 1 .完 成 X - W i n d o w s 配 置 后 ,选 择 屏 幕 下 面 的 D o n e 按 钮 , X - W i n d o w s 启 动 ,
然 后 出 现 3 个 按 钮 : R u n x v i d t u n e , s a v e t h e c o n f i g u r a t i o n 和 exit, 或 者 A b o r t。
如 果 X - W i n d o w s 启 动 失 败 ,原 因 可 能 是 没 有 安 装 X F r e e 8 6 服 务 器 。 回 到 命 令 行 ,
用 Lisa 命 令 安 装 你 需 要 的 服 务 器 (详 见 第 2 章 )。
1 2 .选 择 s a v e t h e c o n f i g u r a t i o n 和 e x i t 。
1 3 .你 能 用 s t a r t x 命 令 启 动 X - W i n d o w s 。这 个 命 令 可 以 启 动 X - W i n d o w s , f v w m
窗 口 管 理 器 和 C a l d e r a 工 作 平 台 ,然 后 你 就 能 看 到 这 个 工 作 平 台 显 示 在 屏 幕 上 。
如 果 这 个 显 示 出 的 平 台 比 你 想 要 的 大 或 是 小 ,人 以 用 C T R L - A T L 和 任 意 键 命 令 来
改 变显示结果。这样你就会得到你想要的平台的尺寸。
从 文 件 菜 单 中 选 择 退 出 工 作 平 台 ,就 可 以 退 出 C a l d e r a 平 台 。然 后 退 出 f v w m
窗 口 管 理 器 。 单 击 f v w m 菜 单 的 任 意 处 ,选 择 退 出 平 台 。 这 将 出 现 退 出 平 台 的 一
个 子菜单。

2.5.1 实 际 的 工 平 台
最 初 ,你 工 作 平 台 的 屏 幕 面 积 可 能 会 不 理 想 。 这 是 因 为 f v w m 窗 口 管 理 器 实
现 了 一 个 实 际 的 工 作 平 台 , 这 意 味 着 你 的 工 作 平 台 要 比 实 际 的 屏 幕 大 ,移 动 光 标 到
屏幕的边缘。你将看见不同结果的影响。你能设置实际的工作平台和的实际屏
幕 一 样 大 。 例 如 :一 个 1 5 寸 显 示 器 的 标 准 输 出 是 8 0 0 * 6 0 0 ,你 需 要 设 置 相 同 结 果
的 实 际 工 作 平 台 ,通 过 选 择 / e t c / X F 8 6 c o n f i g 文 件 中 的 V i r t u a l 选 项 ,来 配 置 你 的 工
作 平 台 。 下 面 的 选 项 就 是 为 绝 大 多 数 15 寸 显 示 器 设 置 的 。 如 果 你 想 要 一 个 更 大
的 实 际 工 作 平 台 ,你 可 以 用 V i r t u a l 1 0 2 4 7 6 8 来 实 现 较 大 的 尺 寸 。 或 者 用 V i r t u a l
1152 864 来 实 现 更 大 的 尺 寸 。
你 的 这 个 文 件 被 分 成 几 个 控 制 X-W indows 显 示 器 的 若 干 部 分 。 在 文 件 末
端 放 置 看 屏 幕 选 项 的 显 示 子 目 录 下 的 实 际 设 置 。 屏 幕 部 分 有 Section,"Screen"
标 题 。 其 显 示 部 分 有 Subsection ,"Display"标 题 。 系 统 中 的 不 同 驱 动 器 有 更 多
的 屏 幕 。 如 果 安 装 了 一 个 加 速 卡 ,就 用 屏 幕 中 的 D r i v e r " A c c e l " 选 项 ( 详 见 2 1 章 ) 。
加 速 卡 的 屏 幕 中 通 常 有 几 个 显 示 子 目 录 ,包 含 了 显 示 卡 支 持 的 各 个 部 分 , 例 如
8 . 1 6 . 2 4 ,缺 省 的 深 度 是 8 。 在 显 示 子 目 录 部 分 中 ,增 加 V i r t u a l 选 项 。 如 果 你 要 用
另 一 个 深 度 ,就 要 用 Default Color Depth 选 项 。 这 将 作 为 缺 省 状 态 选 择 其 他 显
示 子 目 录 的 方 法 。 深 度 决 定 了 显 示 屏 上 颜 色 的 1 6 位 ,为 1 6 0 0 万 种 颜 色 的 2 4 倍 。
参 考 X F 8 6 S e t u p 程 序 中 关 于 你 的 显 示 卡 信 息 ,( 通 常 是 8 位 , 1 6 位 或 2 4 位 ) 例 如 :
如 果 你 设 置 了 Default Color Depth 为 16 位 , 深 度 16 的 显 示 子 程 序 就 会 被 使
用 。 确 定 你 有 一 个 想 使 用 的 V i r t u a l 选 项 ,下 面 的 例 子 表 明 发 加 速 驱 动 器 的 屏 幕
程 序 和 为 8 和 1 6 位 的 显 示 子 目 录 。 为 8 位 的 使 用 的 工 作 平 台 是 : 1 0 2 4 * 7 6 8 ,然 而
用 16 位 深 度 的 800*600 的 工 作 平 台 将 适 合 15 寸 的 显 示 器 的 尺 寸 。
Section "Screen"
D river "Accel"
Device "Primary Card"
Monitor "Primary Monitor"
DefaultColorDepth 16
SubSection "Display"
Depth 9
Modes "1152X864""1024x768""800x600""640x480"
"640x400""480x300""400x300""320x240""320x200"
virtual 1 0 2 4 7 6 8
EndSubSection
SubSection "Display"
Depth 16
Modes "1154X864""1024X768""800X600""640X480""640X400"
V irtual 800 600
EndSubSection
你 能 用 第 4 章 中 的 Crisplite 编 辑 器 来 编 辑 文 件 ,用 m c r / e c t / X F 8 6 C o n f i g 文
件 在 命 令 行 中 编 辑 文 。 或 者 用 V i 或 X ( x E m a c s )。 首 先 要 给 这 个 文 件 作 备 份 。 要
确认已经选择的显示屏上的显示目录。注意其它的部分不能有剩余。

2.6 安 装 声 卡 的 驱 动 程 序 :声 音

你 必 须 安 装 声 卡 的 驱 动 程 序 ,它 不 会 由 O p e n L i n u x 安 装 来 完 成 。 声 卡 驱 动 程
序 放 在 S o u n d . o 的 内 核 模 块 中 ,并 且 在 /lib/modules/2.0.29/misc 目 录 下 (2.0.29
是 O p e n L i n u x 内 核 的 当 前 版 本 ) 。 L i n u x 内 核 支 持 O p e n L i n u x 版 本 的 模 块 ,是 老
版 本 不 能 支 持 了 。这 个 模 块 包 含 了 当 前 的 标 准 声 卡 , 用 一 个 地 址 是 2 2 0 的 IR Q 7 和
DMA1。
你 安 装 了 带 有 insmod 命 令 的 模 块 被 显 示 在 这 (insmod sound 将 卸 载 声 音
模 块 ):
$ insmod sound
不 管 你 何 时 启 动 这 个 系 统 , 声 音 模 块 将 自 动 装 入 , 你 必 须 在
/ e t c / m o d u l e s / 2 . 0 . 2 9 目 录 下 的 缺 省 文 件 里 加 入 s o u n d 。 在 你 的 这 个 系 统 中 ,文 件
的 名 字 是 以 带 有 defaults 扩 展 名 的 Linux 系 统 的 双 版 本 。 一 个 容 易 的 方 法 是 用
*.default 或 ′ u n a m e - v ′ .default 做 为 文 件 名 来 编 辑 它 。
用 u n a m e - v 显 示 商 业 版 本 的 名 字 。 在 / e t c / m o d u l e s / 2 . 0 . 2 9 目 录 中 ,下 面 的 命
令 可 以 使 缺 省 模 块 文 件 的 末 尾 加 上 "sound"一 词 。 ′ uname-v ′ 两 边 的 单 引 号
和 全 名 两 边 的 双 引 号 以 及 > > 均 必 不 可 少 .这 个 缺 省 文 件 的 当 前 名 字 是 # 1 T u e
Feb//20:36:48 MET 1997. default 。
$ e c h o " s o u n d " " ′ u n a m e - v ′ .default"
你 能 核 对 下 面 命 令 的 声 卡 。 如 果 你 收 到 没 有 设 备 的 信 息 ,那 么 证 明 声 卡 没 被
安装。
$cat/dev/sndstat
用 C D 播 放 器 ,或 声 卡 文 件 中 的 c a t 测 试 你 的 声 卡 。 如 果 听 不 到 声 音 ,那 么 卡
就 没 有 配 置 好 。 带 有 .au 扩 展 名 的 声 音 文 件 被 重 新 指 到 了 /dev/audio 设 备 上 带
有 .wal 或 .voc 扩 展 名 的 文 件 指 到 了 /dev/dsp 设 备 上 。 下 面 的 例 子 播 放 了 一 个 声
音文件:
$ cat sample.au >/dev/audio
首 先 你 必 须 产 生 一 个 用 于 你 的 光 区 设 备 名 字 的 /dev/cdrom 连 接 运 行 C D 播
放 程 序 。 如 果 你 的 声 卡 有 不 同 的 I R Q 和 D M A 设 置 ,或 者 是 不 被 当 前 的 配 置 所 支
持 ,你 就 必 须 重 新 编 辑 新 配 置 的 sound.o 模 块 。 这 个 声 音 模 块 的 原 代 码 是 在
/ u s r / s r c / l i n u x / d r i v e r s / s o u n d 目 录 下 。 查 看 R E A D M E 文 件 ,了 解 怎 样 配 置 和 编 辑
模 块 ,特 别 是 R E A D M E 模 块 。 从 这 个 目 录 下 ,键 入 m a k e c o n f i g 命 令 来 配 置 声 音
模 块 , 系 统 会 询 问 你 一 些 声 卡 的 信 息 。 配 置 完 成 后 , 用 m a k e 命 令 ,编 辑 新 的 卡 模
块 ,然 后 用 make install 命 令 ,把 新 的 s o u n d . o 考 贝 到 /lib/modules/2.o.29/misc
目 录 下 , 重 写 s o u n d . o 文 件 ,然 后 用 i n s m o d s o u n d 安 装 新 的 文 件 。
2.7 L isa

L i n u x 安 装 和 系 统 管 理 ( L i s a )程 序 执 行 整 个 过 程 的 安 装 。 你 能 用 相 同 的 程 序
来 改 变 全 部 的 配 置 . 用 L i s a 能 修 改 你 的 系 统 。 例 如 :增 加 新 用 户 ,安 装 新 的 分 区 或
者 安 装 新 的 打 印 机 (见 图 2-5)。 你 也 可 以 增 加 和 删 除 光 盘 上 的 软 件 改 变 网 络 配
置 。 Lisa 是 一 个 简 单 的 下 拉 菜 单 的 工 具 。
从 命 令 行 键 入 Lisa 命 令 来 启 动 。
#Lisa
通 过 光 标 移 动 键 来 选 择 菜 单 和 按 扭 ,当 项 目 变 时 ,说 明 已 经 被 选 中 。 实 际 上 第
3 章 中 详 述 了 用 Lisa 管 理 系 统 和 增 加 新 软 件 。 第 7 章 中 描 述 发 用 Lisa 管 理 你 的
文 件 系 统 。 用 Lisa 来 获 得 系 统 信 息 。 浏 览 帮 助 文 件 及 增 加 和 删 除 特 殊 硬 件 中 内
核模块。
选 择 Lisa 主 菜 单 中 ,"Vervose system analysis"选 项 获 得 有 关 系 统 的 信 息
( 见 图 2 - 6 )在 这 个 菜 单 中 , 可 以 找 到 你 的 系 统 是 怎 样 配 置 的 。 例 如 :"Automatic
P a r t i t i o n A n a l y s i s "列 出 了 系 统 上 所 有 分 区 。 " A u t o m a t i c N e t w o r k A n a l y s i s " 列
出所有的网络信息。你可以用这些项目去核对安装过程中所提供的信息是否正
确 。如 果 不 正 确 ,就 用 Lisa 改 变 它 。Lisa 主 菜 单 中 的 " S y s t e m Configuration" 选
项让你进入增加或者改变系统配置特点的其他菜单。
如 果 你 的 计 算 机 有 特 殊 的 部 件 使 系 统 出 现 问 题 ,你 需 要 安 装 L i n u x 驱 动 器 ,或
者 使 用 具 体 的 硬 件 参 数 。 Lisa 可 以 运 行 内 核 模 块 管 理 器 安 装 这 些 驱 动 器 或 者 设
置 硬 件 参 数 (详 见 附 录 A -硬 件 参 数 列 表 )。 从 L i s a 主 菜 单 中 选 择 系 统 配 置 。 再 从
下 一 个 菜 单 中 选 择 系 统 配 置 。 选 择 "Kernel Module Administration"从 这 个 菜 单
中你能看到已安装的内核模块列表及装入和删除的模块。

图 2-5Lisa 主 菜 单
图 2-6Lisa 系 统 分 析
第 3 章 Linux 系 统 的 启 动 和 安 装

要 想 用 L i n u x 启 动 , 你 需 要 知 道 如 何 访 问 L i n u x 系 统 ,一 旦 你 已 登 录 到 L i n u x
系 统 ,要 知 道 如 何 运 行 应 用 程 序 。 一 旦 L i n u x 在 运 行 ,你 必 须 用 预 先 设 定 的 注 册 名
和 口 令 来 注 册 系 统 。 进 入 系 统 后 ,你 可 以 执 行 命 令 和 应 用 程 序 。 用 命 令 行 界 面 和
图 形 用 户 界 面 与 你 的 Linux 系 统 相 连 。 Linux 系 统 使 用 带 有 商 口 管 理 器 的 X -
w i n d o w s 和 带 有 图 形 用 户 界 面 的 工 作 平 台 ,这 样 你 可 以 用 窗 口 , 菜 单 和 与 你 的 系
统进行交互。
当 注 册 进 系 统 后 ,可 以 容 易 获 得 L i n u x 系 统 的 命 令 和 使 用 工 具 的 信 息 。 L i n u x
几个网上工具提供信息和帮助。你能得到描述每个命令的网上在线说明和不同
L i n u x 特 点 的 详 细 解 释 。 系 统 中 L i n u x 资 料 提 供 了 完 整 的 说 明 ,可 以 通 过 打 印 或
者 网 络 浏 览 器 来 获 得 这 些 信 息 。 这 章 主 要 讨 论 了 怎 样 登 录 你 的 L i n u x 系 统 ,包 括
用 户 帐 号 的 注 册 和 退 出 以 及 系 统 和 启 动 和 关 闭 。 Caldera 工 作 平 台 的 基 本 操 作
包 含 了 Linux 命 令 和 使 用 工 具 。 本 章 的 未 尾 解 释 了 基 本 的 系 统 管 理 操 作 。 例 如
产生新的用户帐号和安装软件包。
3.1 用 户 帐 号

你 永 远 不 会 直 接 访 问 L i n u x ,因 为 L i n u x 设 置 了 一 个 你 和 他 交 互 的 一 个 界 面 ,
L i n u x 系 统 能 一 次 设 置 几 个 用 户 界 面 ,同 时 满 足 几 个 用 户 的 需 要 。 事 实 上 , 许 多 用
户 可 以 工 作 在 一 台 L i n u x 系 统 的 计 算 机 上 。 对 于 不 同 的 用 户 来 说 ,只 有 他 一 个 人
在 使 用 这 个 系 统 。 实 际 的 计 算 机 是 独 立 的 管 理 用 户 和 Linux 系 统 交 互 的 界 面 。
这 些 用 户 界 面 经 常 被 指 定 为 一 个 帐 号 。 作 为 U n ix 基 础 的 U n i x , 第 一 个 首 先 被 用
在 小 型 机 和 大 型 机 上 ,能 同 时 满 足 上 万 个 用 户 的 要 求 。 用 一 些 终 端 和 主 计 算 机 相
连 ,用 户 能 够 通 过 它 们 注 册 到 U n ix 系 统 。 所 有 的 这 些 活 动 由 系 统 管 理 员 来 管 理 。
为 了 登 录 到 系 统 上 ,你 要 有 一 个 设 置 好 的 用 户 界 面 ,这 就 是 众 所 周 知 的 一 个 开 放 帐
号 。 一 个 系 统 管 理 员 能 在 U n ix 系 统 上 创 建 帐 号 ,分 配 注 册 名 和 口 令 ,然 后 就 可 以
用 此 收 号 登 录 和 使 用 系 统 。 一 个 注 册 名 能 识 别 一 个 帐 号 ,并 用 一 个 口 令 来 保 护 。
当 然 ,如 果 你 知 道 注 册 名 和 密 码 ,你 可 以 用 任 何 的 帐 号 来 登 录 。 在 你 的 Linux 系
统 中 ,可 创 建 几 个 帐 号 ,其 他 的 人 想 要 登 录 你 和 系 统 就 要 使 用 你 提 供 给 他 们 的 注 册
名 和 帐 号 ,其 结 果 ,他 们 会 在 自 己 的 系 统 上 拥 有 自 己 的 帐 号 ,在 前 一 章 L i n u x 系 统
中 ,你 已 经 创 建 了 一 个 你 自 己 的 注 册 名 和 口 令 。 当 你 创 建 注 册 名 和 口 令 时 ,就 创 建
了一个新的帐号。
事 实 上 ,你 能 用 特 殊 的 系 统 管 理 工 具 去 创 建 新 的 用 户 帐 号 ,当 你 以 超 及 用 户 的
身 份 登 录 时 ,就 可 以 使 用 这 些 工 具 。 超 级 用 户 是 一 个 特 殊 的 用 户 帐 号 ,它 是 系 统 保
留 的 执 行 管 理 用 户 的 帐 号 。 例 如 :创 建 新 用 户 和 安 装 新 软 件 。 这 一 章 讨 论 了 基 本
的 系 统 管 理 操 作 。 在 第 7 , 1 9 , 2 0 章 中 将 再 次 详 细 讨 论 了 这 个 内 容 。 现 在 ,人 需 要
普通用户的注册名和口令。

3.2 登 录 L i n u x 系 统

根 据 下 面 的 启 动 和 关 闭 程 序 来 登 录 和 使 用 Linux 系 统 。 你 有 能 象 D O S 系
统 那 样 开 机 和 关 机 。 你 要 认 为 Linux 操 作 系 统 正 操 作 在 三 个 不 同 的 水 平 上 。 第
一 层 是 开 机 时 系 统 的 装 入 和 运 行 。 它 控 制 你 的 计 算 机 和 外 周 设 备 。 但 是 ,你 仍 然
不 能 和 它 交 互 。 L i n u x 启 动 后 ,会 出 现 一 个 注 册 启 示 符 ,等 待 用 户 的 注 册 。
第 二 层 是 Linux 的 使 用 。 现 在 你 可 以 使 用 命 令 来 执 行 任 务 。 用 一 些 编 辑 器 ,
编 译 器 或 者 游 戏 等 的 工 具 和 使 用 程 序 。 但 是 ,开 始 注 册 时 ,你 是 用 命 令 行 界 面 和 系
统 连 接 , 通 过 输 入 命 令 和 回 车 键 来 完 成 系 统 的 活 动 。 L i n u x 的 C a ldera 分 支
O p e n L i n u x ,支 持 许 多 窗 口 管 理 器 和 工 作 平 台 。 包 括 了 它 自 己 的 工 作 平 台 外 形 , 使
你 能 使 用 X - W i n d o w s 图 形 用 户 界 面 。 在 Linux 中 , Startx 命 令 将 启 动 X -
W i n d o w s 图 形 用 户 界 面 ( G U I ) 。 然 后 用 窗 口 ,菜 单 和 图 标 来 和 系 统 交 互 。 第 三 层
是 窗 口 管 理 器 。 X-Windows 窗 口 管 理 器 运 行 在 命 令 行 界 面 上 。 在 关 机 的 过 程
中 ,第 三 层 变 得 非 常 重 要 ,如 果 你 正 在 使 用 X - W i n d o w s 界 面 并 想 关 机 的 话 ,首 先 你
必 须 退 出 X - W i n d o w s 界 面 ,回 到 命 令 行 界 面 ,然 后 退 出 你 的 S h e l l , 回 到 系 统 的 注
册 提 示 符 下 ,最 后 通 过 s h u t d o w n 命 令 通 知 系 统 关 机 。 同 时 按 住 C T R L - A L T - D E L
键 ,系 统 将 自 动 关 闭 并 重 新 启 动 开 始 时 ,你 才 能 关 闭 计 算 机 。
可 以 用 一 些 快 捷 键 来 进 行 层 次 转 换 。 超 级 用 户 可 以 通 过 shutdow 命 令 来 退
出 和 关 机 ( 详 见 第 1 9 章 关 机 的 过 程 ) 。当 你 注 册 时 ,还 有 一 种 自 动 启 动 X - W i n d o w s
窗口器的方法。

3.2.1 初 始 化 和 关 闭 L i n u x
当 你 开 机 时 , L i n u x 引 导 器 ( L I L O )将 首 先 决 定 装 入 和 运 行 的 操 作 系 统 。 你 将
看 见 下 面 的 提 示 符 ,键 入 L i n u x 启 动 Linux 操 作 系 统 。
LILO: Linux
如 果 你 不 这 样 做 ,Linux 将 装 入 缺 省 的 操 作 系 统 。 如 果 你 要 进 入 D O S 系 统 ,
Linux 将 给 你 几 分 钟 提 示 你 输 入 D O S 系 统 的 名 字 。 如 d o s。
当 L i n u x 装 入 时 , 就 会 出 现 一 些 信 息 ,然 后 出 现 一 些 注 册 提 示 符 ,系 统 保 持 等 待
用 户 注 册 和 使 用 。 键 入 用 户 名 和 口 令 ,系 统 和 主 机 名 将 处 理 注 册 提 示 符 。 在 这 个
例 子 中 ,主 机 名 是
turtle.trek.com:
Caldera OpenLinux(TM)
Lite 1
Version 1.1
Copyright(c) 1996-1997 Caldera Inc.
turtle.trek.com login:
完 成 Linux 系 统 后 ,首 先 要 撤 销 帐 号 , Linux 系 统 就 会 出 现 一 个 注 册 提 示 符 等
待 另 一 个 用 户 注 册 。 如 果 你 要 关 机 ,首 先 使 用 s h u t d o w n 命 令 ,通 过 同 时 按 C T R L -
A L T - D E L 键 来 关 闭 系 统 。 当 L i n u x 系 统 关 闭 时 , 你 会 看 到 一 些 信 息 ,然 后 L i n u x
重 新 启 动 计 算 机 ,启 动 过 程 中 ,你 可 以 关 机 。
下面描述了全部的启动和关机程序。
1 .启 动 计 算 机
2 .在 L I L O 提 示 符 直 接 键 入 L i n u x , 按 回 车 ( 如 果 L i n u x 系 统 是 缺 省 的 ,只 按 回
车 )。
3 .出 现 一 些 信 息 后 ,注 册 提 示 符 出 现 ,你 可 以 注 册 到 系 统 , 开 始 使 用 它 。
4 .在 注 册 提 示 符 上 ,你 可 以 关 闭 系 统 ,当 你 注 销 帐 户 后 ,注 册 提 示 符 会 重 现 。
5 .关 机

3.2.2Linux 的 注 册 和 注 销
命令行
一 旦 你 注 册 ,你 可 以 执 行 系 统 命 令 。 完 成 后 ,并 在 关 机 前 退 出 系 统 。 你 也 可 以
不 必 关 机 。 在 注 册 提 示 符 下 ,注 册 另 一 个 用 户 。
Linux 系 统 的 注 册
Linux 系 统 的 注 册 包 括 两 个 步 骤 :键 入 用 户 名 和 口 令 。 如 果 犯 了 错 误 ,使 用 后
退 键 就 可 以 删 除 字 符 。 在 下 面 例 子 中 ,用 户 的 名 字 是 r i c h l p ,提 示 你 键 入 口 令 。
Caldera OpenLinux(TM)
Lite 1
Version 1.1
Copyright (c) 1996-1997 Caldera Inc.
turtle.trek.com login:richlp
Password:
当 你 键 入 口 令 后 , 它 不 会 显 示 在 屏 幕 上 ,这 是 对 你 口 令 的 保 护 ,如 果 注 册 名 和 密
码 有 错 误 ,系 统 会 显 示 注 册 不 正 确 的 错 误 信 息 ,要 求 你 重 新 注 册 。
一 旦 你 已 经 正 确 输 入 用 户 名 和 口 令 ,就 可 以 作 用 本 系 统 了 。 系 统 的 命 令 行 和
提 示 符 将 出 现 ,等 待 你 键 入 命 令 。 注 意 :普 通 的 命 令 行 提 示 符 是 $ , 而 不 是 # 。 $ 是 普
通 用 户 的 提 示 符 ,# 是 超 级 用 户 的 提 示 符 。
[turtle/home/richlp]$
改变你的口令
第 一 次 用 超 户 注 册 时 ,你 创 建 了 用 户 帐 号 的 密 码 , 创 建 后 ,你 可 以 给 你 的 个 人 帐
号 改 变 口 令 ,只 有 你 的 个 人 帐 号 注 册 时 ,才 能 改 变 口 令 ,你 不 必 以 超 级 用 户 的 身 份
注 册 ,每 个 用 户 都
可以改变他自己的口令。
注 册 后 ,通 过 P a s s w d 命 令 来 改 变 口 令 。 首 先 要 决 定 新 口 令 是 什 么 , 那 是 容 易
记 的 ,至 少 8 位 到 7 位 。 为 了 安 全 起 见 ,口 令 = 包 括 行 键 入 P a s s w d 命 令 ,再 按 回
车 ,命 令 提 示 符 你 键 入 当 前 的 口 令 ,然 后 提 示 你 进 入 新 的 口 令 。 系 统 会 要 求 你 键 入
两 次 口 令 ,以 确 认 真 地 改 变 口 令 。 由 于 口 令 不 会 出 现 屏 幕 口 ,所 以 可 能 会 按 错 键 。
$ passwd
Old password:
New password:
Retype new password:
$
键 入 新 口 令 时 犯 了 错 误 ,系 统 会 显 示 出 错 信 息 ,口 令 不 会 被 改 变 。 系 统 通 过 两
个 新 口 令 的 比 较 ,如 果 他 们 不 相 匹 配 ,错 误 就 会 被 探 测 到 。
P a s s w d 命 令 使 你 很 快 更 改 新 口 令 ,当 你 再 次 注 册 时 ,你 就 必 须 使 用 新 口 令 。
注销
键 入 l o g o u t 命 令 注 销 帐 号 ,回 到 注 册 提 示 符 下 ,系 统 等 待 另 一 个 命 令 。
$ logout

3.2.3 启 动 和 退 出 窗 口 管 理 器 : X-W i n d o w s
一 旦 注 册 到 系 统 后 ,选 择 使 用 X - W i n d o w s 界 面 和 你 的 L i n u x 系 统 交 互 ,通 过
在 命 令 行 键 入 Startx 命 令 启 动 X - W i n d o w s 界 面 。 X - W i n d o w s 装 入 指 定 的 窗 口
管 理 器 。 L i n u x 的 C a l d e r a 分 支 也 会 装 入 一 个 工 作 平 台 ,并 提 供 文 件 和 程 序 管 理
器 。 使 用 L i n u x 的 C a l d e r a 分 支 的 界 面 被 指 定 为 C a l d e r a 工 作 平 台 ,一 旦 被 装
入 ,用 鼠 标 使 用 菜 单 打 开 窗 口 和 启 动 程 序 ( 图 3 - 1 显 示 了 C a l d e r a 工 作 平 台 的 外
表 )。
图 3-1Caldera 工 作 平 台
Caldera 工 作 平 台 的 特 点 就 像 其 它 窗 口 环 境 一 样 。 可 用 鼠 标 来 选 中 不 同 的
图 标 ,菜 单 和 窗 口 。 窗 口 显 示 信 息 ,列 举 文 件 或 打 开 应 用 程 序 。 像 所 有 的 系 统 一 样 ,
可 同 时 打 开 多 个 窗 口 。 然 而 ,只 有 一 个 窗 口 是 激 活 的 ,此 窗 口 有 紫 色 边 框 ,其 它 未
被 激活的窗口具有灰白边框。鼠标指针可通过窗口间移动改变和激活窗口。不
必 像 W indows 或 Mac O S 系 统 那 样 需 击 鼠 标 来 改 变 激 活 窗 口 。
随着窗口重叠会产生令人费解问题。因为激活的窗口不能自动跳到前端。
一 个 激 活 窗 口 的 一 部 分 仍 被 其 它 窗 口 覆 盖 ,需 点 该 窗 口 的 标 题 栏 窗 口 才 能 跳 到 前
端 。 除 此 以 外 ,单 击 窗 口 其 它 部 位 无 效 。
选 择 退 出 工 作 平 台 选 项 来 退 出 Caldera 工 作 平 台 。 屏 幕 顶 部 有 几 个 选 项 菜
单 。 一 个 是 文 件 菜 单 ,当 点 中 其 时 ,即 显 示 菜 单 。 最 末 一 项 是 退 出 工 作 平 台 。 一 旦
选 择 退 出 , 则 回 到 蓝 色 背 景 的 窗 口 管 理 器 ,然 后 需 退 出 窗 口 管 理 器 。 击 屏 幕 任 何 部
位 ,下 拉 窗 口 管 理 器 菜 单 ,单 击 窗 口 管 理 器 菜 单 以 便 退 出 工 作 平 台 。 然 后 出 现 你 要
选 择 的 Q u i t 工 作 平 台 子 菜 单 ,这 将 关 闭 X - W i n d o w s 。 L i n u x 将 关 闭 X - W i n d o w s
界 面 然 后 出 现 $ 提 示 符 , 通 过 键 入 Startx 命 令 , 在 任 何 时 候 , 重 新 启 动 X -
W indows。 记 住 ,使 用 X-Windows 界 面 时 ,你 要 退 出 帐 号 时 ,必 须 先 退 出 X -
W i n d o w s 界 面 。 你 要 回 到 命 令 行 界 面 后 ,才 能 使 用 L o g o u t 或 exit 命 令 。

3.3 L i n u x 命 令 和 命 令 行 编 辑

Linux 有 一 大 套 可 以 与 其 他 用 户 通 迅 和 管 理 编 辑 文 件 的 命 令 。 Linux 命 令
用 命 令 行 界 面 来 执 行 。 即 使 用 一 个 图 形 用 户 界 面 ,你 也 经 常 需 要 使 用 命 令 行 界 面
来 执 行 命 令 。 Linux 命 令 广 泛 地 使 用 选 项 和 参 数 。 在 你 的 命 令 行 要 小 心 使 用 选
项 和 参 数 。 Linux 命 令 包 括 选 项 和 参 数 的 格 式 被 显 示 在 下 面 :
$ 命 令 名 ,选 项 ,参 数
一 个 选 项 是 一 个 前 面 带 有 一 个 短 横 线 的 字 母 ,它 可 以 修 改 命 令 执 行 的 类 型 。
例 如 l s 命 令 可 以 加 上 - s 选 项 ,显 示 一 个 目 录 下 的 文 件 列 表 。 - s 选 项 增 加 了 每 个
文件的大小。在命令行中键入命令和选项。例如:
$ls -s
一 个 参 数 是 命 令 需 要 执 行 它 的 数 据 ,在 许 多 情 况 下 ,将 是 一 个 文 件 名 。 例 如 : 用
m a n 命 令 显 示 一 个 特 殊 命 令 的 信 息 。特 殊 命 令 的 命 令 名 作 为 其 参 数 。用 m a n 命
令 来 显 示 l s 命 令 ,作 为 一 个 例 子 ,显 示 如 下 :
$ man ls
这 个 命 令 行 实 际 上 是 一 个 可 编 辑 的 文 件 的 缓 冲 区 , 按 回 车 以 前 ,编 辑 命 令 。 这
个 编 辑 过 程 包 括 了 修 改 敲 错 的 命 令 及 选 项 的 能 力 。 BACKSPACE 和 DEL 键 ,
允许你删除命令行的字母。用这种方法来删除已经打印出来的整行命令。
工 作 在 其 中 的 Shell 是 B A S H Shell,它 是 你 的 缺 省 Shell。 此 Shell 有 特 殊
的 命 令 行 编 辑 能 力 ,你 会 发 现 在 你 学 习 L i n u x 过 程 中 , 它 是 有 帮 助 的 , 你 可 以 方 便
的 修 改 命 令 ,在 命 令 行 的 任 意 部 位 插 入 和 删 除 字 符 。 对 复 杂 的 命 令 来 说 ,它 有 特 殊
的 帮 助 。 然 后 你 可 以 用 CTRL-F 键 或 右 移 键 向 前 移 动 一 个 字 符 。 也 可 以 用
CTRL-B 键 或 移 键 向 后 移 动 一 个 字 符 。 CTRL-D 和 DEL 键 能 删 除 光 标 所 在 的 字
符 。 CTRL-H 键 或 BACKSPACE 键 可 以 删 除 光 标 前 面 的 字 符 。 增 加 文 本 就 用
光 标 移 动 键 把 光 标 移 动 到 你 想 插 入 文 本 的 地 方 。 然 后 打 印 新 的 字 符 ,在 任 何 时 候 ,
你 可 以 按 回 车 键 执 行 这 个 命 令 ,例 如 ,如 果 你 在 键 入 一 个 命 令 时 犯 了 拼 写 错 误 ,你
可以用它来改正错误。你也能用键去重新显示先前执行过的命令。你能再执行
这 个 命 令 或 者 编 辑 它 。 当 你 重 复 这 些 操 作 的 时 候 ,你 会 发 现 这 个 工 具 是 有 帮 助 的 ,
当 键 入 错 误 的 命 令 时 ,它 也 是 很 有 帮 助 的 ,在 这 种 情 况 下 ,你 被 提 示 一 个 错 误 信 息
和 新 的 命 令 行 。 按 光 标 上 移 键 可 以 显 示 先 前 的 命 令 , 修 改 它 ,然 后 再 执 行 。
BASHSHELL 程 序 保 持 一 个 叫 做 历 史 记 录 的 列 表 。 上 边 列 出 先 前 的 列 印 命
令 。 通 过 键 入 光 标 上 移 键 来 显 示 在 命 令 行 使 用 过 的 命 令 ,光 标 下 移 键 可 以 关 闭 这
个 列 表 。 你 可 以 修 改 和 执 行 任 何 先 前 显 示 和 执 行 命 令 。 第 15 章 中 详 述 了 历 史 记
录的特点。
3.4 网 络 在 线 帮 助

Linux 系 统 有 编 辑 器 和 说 明 等 使 用 工 具 。 这 些 工 具 有 它 们 自 己 的 界 面 和 一
套 命 令 , m a n 在 线 帮 助 允 许 显 示 任 何 L i n u x 命 令 和 程 序 的 信 息 ,在 命 令 m a n 后 ,
打 印 你 想 要 显 示 的 命 令 名 ,在 下 面 的 例 子 中 , 用 户 激 活 了 ls 命 令 的 在 线 帮 助 信 息 。
$ m a n ls
在 一 个 命 令 的 m a n 文 件 可 以 被 组 织 或 不 同 的 层 次 ,从 其 中 的 一 个 启 动 。 第 一
个 层 次 给 出 命 令 的 基 本 信 息 。 另 一 个 层 次 提 供 了 更 多 的 信 息 。 例 如 :用 8 个 层 次
来 显 示 crontab 的 帮 助 文 件
$ m a n 8 crontab
无 论 m a n 什 么 层 次 产 生 的 文 件 ,其 他 层 次 的 文 件 将 列 印 在 后 面 。 大 部 分 的 文
件 只 有 一 个 用 man 命 令 产 生 的 层 次 。
按 回 车 键 后 ,你 就 进 入 了 m a n 工 具 ,显 示 了 ls 文 件 的 第 一 页 , m a n 有 它 自 己
的 一 套 命 令 ,通 常 由 单 个 键 组 成 , 按 空 格 键 和 F 键 将 翻 到 下 一 页 ,按 B 键 右 翻 到 上
一 页 。 按 Q 键 退 出 m a n 工 具 ,回 到 命 令 行 。
一 个 说 明 选 项 有 几 部 分 组 成 。 普 通 的 五 个 部 分 是 摘 要 ,描 述 ,选 择 ,文 件 和 对
命 令的参考。摘要表了命令的语法。打印它可能的选项和参。命令的描述确切
地 告诉你系统在做什么。接下来选项被显示并解释。文件部分显示了命令使用
的 系 统 文 件 。 交 叉 的 参 考 文 件 显 示 了 其 它 相 关 的 命 令 和 帮 助 选 项 。 下 面 上 ls 命
令 选项的一个缩短的版本。
m a n 工 具 还 有 几 种 有 益 的 特 征 ,例 如 :它 有 搜 索 功 能 ,通 过 按 /或 者 ? 来 激 活 一
个 搜 索 。 /代 表 向 前 搜 索 。 ? 代 表 向 后 搜 索 ,按 下 / 后 ,在 你 的 屏 幕 底 下 将 会 出 现 一
条 横 线 ,然 后 你 键 入 你 所 搜 索 的 词 。 键 入 回 车 ,激 活 搜 索 。 搜 索 其 实 是 一 种 模 式 搜
索 ,所 以 你 可 以 键 入 词 的 一 部 分 或 词 的 几 个 字 符 ,通 过 按 下 N 键 来 重 复 同 样 的 搜
索 而不必重新键入模式。

3.4.1Whatis 和 apropos
W h a t i s 和 a p r o p o s 将 收 录 m a n 题 目 的 数 据 库 ,并 根 据 每 一 个 W h a t i s 的 短
小描述显示结果。
W h a t i s 将 整 句 话 寻 找 m a n 标 题 。 例 如 :如 果 想 寻 找 带 有 字 母 X 的 帮 助 选 项 ,
应 使 用 下 列 命 令 (为 给 也 了 处 理 X-Windows 主 题 的 帮 助 目 录 )

W h a t i s 和 a p r o p o s 使 你 进 入 一 个 m a n 类 型 的 界 面 。 如 果 结 果 超 过 一 页 ,可
用 F 和 B 键 进 行 前 后 移 动 。 可 以 用 / 和 ? 键 执 行 模 式 搜 索 ,用 Q 键 退 出 ,回 到 命 令
行 。
A p r o p o s 命 令 执 行 了 W h a t i s 相 同 的 任 务 ,但 其 是 通 过 模 式 来 搜 索 而 非 整 句 搜
索 。 例 如 : A p r o p o s x 命 令 将 产 生 几 页 长 的 结 果 ,列 出 所 以 以 x 打 头 的 m a n 选 项 ,
例 如 xwpe 和 Xloadimage。
下 面 例 子 中 ,用 户 列 出 了 全 部 以 ls 打 头 的 所 有 帮 助 选 项 。 这 包 括 了 ls 命 令 ,
以 及 其 它 的 例 如 lseek 或 lsearsh 命 令 。
你 也 能 使 用 H e lptool 工 具 寻 找 Linux 帮 助 文 件 中 的 关 键 字 。 Helptool 能 搜
索 所 有 的 信 息 页 或 者 文 本 文 件 。 只 要 键 入 helptool 从 显 示 出 来 的 主 题 列 表 中 选
择就可以了。

3.4.2 X m a n 和 t k m a n
如 果 你 在 工 作 平 台 上 工 作 ,就 要 使 用 Xman 程 序 来 搜 索 和 显 示 帮 助 文 件 。
X m a n 是 X-W i n d o w s 为 基 础 的 程 序 ,用 鼠 标 单 击 扫 纽 和 菜 单 寻 找 和 显 示 帮 助 文
件 。 单 击 f v w m 工 具 栏 中 的 X m a n 按 钮 ,可 以 启 动 X m a n 。 屏 幕 出 现 带 有 二 个 按
钮 的 小 窗 口 ,分 别 是 H e l p , Q u i t 和 M a n u a l P a g e 。 单 击 M a n u a l P a g e 文 件 能 够
打 开 X m a n 显 示 窗 口 ,顶 部 出 现 两 个 菜 单 按 钮 。O p t i o n s 和 S e c t i o n s 。在 O p t i o n s
菜 单 中 你 可 让 选 择 寻 找 选 项 ,开 启 一 个 搜 索 窗 口 ,在 这 里 键 入 想 要 显 示 的 命 令 或 者
主 题 ,你 可 以 用 S e c t i o n s 菜 单 来 设 置 命 令 。 这 个 菜 单 列 出 了 用 户 命 令 ,系 统 管 理 ,
设 备 和 游 戏 等 几 项 ,选 择 一 个 用 m a n 项 目 显 示 的 面 板 。 例 如 U s e r 命 令 选 项 将 列
印 所 有 的 用 户 命 令 。 然 后 ,单 击 其 中 的 一 个 和 来 显 示 其 命 令 的 m a n 文 件 。 你 用
左 侧 的 滚 动 条 浏 览 m a n 文 件 (图 3-2 表 明 了 m a n 文 件 的 窗 口 和 最 初 的 X m a n
窗 口 )。
T k m a n 提 供 了 X m a n 文 件 同 样 的 特 点 ,并 且 有 一 个 容 易 使 用 的 界 面 ,在 窗 口
的 顶 部 有 一 个 方 块 ,你 可 以 键 入 一 个 文 件 名 , 然 后 单 击 标 有 m a n 的 按 钮 。 对 于
a p r o p o s 寻 找 来 说 ,在 相 同 的 方 块 内 ,键 入 要 寻 找 的 字 符 串 ,单 击 标 有 a p r o p o s 的
按 钮 ,Volumes 菜 单 允 许 你 轻 松 地 选 择 主 题 。 Sections 菜 单 允 许 你 设 置 选 项 并 提
供 帮 助 。 一 个 滚 动 条 允 许 你 浏 览 man 文 件 。 通 过 选 择 在 应 用 程 序 菜 单 中 的
" O t h e r A p p l i c a t i o n s "另 的 T k m a n 项 目 或 者 从 一 个 终 端 窗 口 里 使 用 T k m a n 命 令
来 启 动 Tkman。
图 3-2 显 示  man 文 件 的  Xman 窗 口
3.5 网 络 在 线 文 件

当 启 动 你 的 浏 览 器 时 , 一 个 缺 省 的 网 页 连 接 着 你 的 系 统 和 Caldera 和
R e d h a t 网 址 ,要 想 使 用 这 两 个 网 址 ,首 先 你 必 须 要 与 I n t e m e t 相 连 。 但 是 你 的 光
盘 和 系 统 中 已 经 包 含 了 广 泛 的 文 件 。这 些 文 件 是 关 于 怎 样 使 用 工 作 平 台 来 L i n u x
系 统 的 详 细 解 释 ,包 括 V i 编 辑 器 和 S h e l l 操 作 。 这 里 列 出 了 与 这 些 文 件 的 连 接 。
在 不 同 的 L i n u x 主 题 上 ,其 他 的 文 件 提 供 了 详 细 说 明 。
・ 工作平台界面的用户指导。
・ Linux 的 安 装 和 启 动 指 导 。
・ Crisplite 编 辑 器 的 用 户 指 导 。
・ 大 众 的 监 听 器 列 表 Bugs。
・ 其 他 的 linux 文 件 。
/usr/doc 目 录 包 含 了 许 多 Linux 应 用 程 序 的 在 线 文 件 。 一 些 带 有 安 装 Linux
应 用 程 序 名 字 的 子 目 录 包 含 了 像 R E A D M E 文 件 。 在 /usr/doc/HOW T O 目 录 下 ,
你 可 以 获 得 整 套 的 HOWTO 文 本 文 件 。HOWTO 文 件 包 含 了 详 细 的 硬 件 安 装
和 网 络 配 置 的 Linux 的 主 题 。 另 外 ,/doc/ HOW T O / H T M L 目 录 包 含 了 可 用 网 络
浏 览 器 显 示 的 网 页 格 式 文 件 (使 用 Lisa 安 装 H O W T O h t m l 软 件 包 )。
也 有 一 些 像 gcc 编 译 器 和 Emacs 编 译 器 等 的 G N U 应 用 程 序 。 你 可 以 通 过
键 入 命 令 来 获 得 这 个 文 件 , 这 将 出 现 带 有 不 同 G N U 应 用 程 序 的 特 殊 屏 幕 。 info
界 面 有 它 自 己 的 整 套 命 令 ,你 可 通 过 键 入 info 来 学 到 更 多 的 东 西 。 在 屏 幕 的 底
部 的 一 行 内 键 入 m ,它 代 表 了 某 个 应 用 程 序 的 另 一 个 字 母 。 回 车 就 可 在 应 用 程 序
上 得 到 info 文 件 。

3 . 6 配 置 你 的 系 统 :用 L i s a 设 置

如 果 你 是 L i s a 系 统 管 理 员 ,就 需 要 执 行 一 些 例 如 创 建 一 些 新 帐 户 和 新 软 件 等
的 管 理 任 务 。 用 叫 做 r o o t 的 系 统 管 理 帐 号 来 执 行 。 作 为 一 名 超 级 用 户 ,你 可 以 完
全 控 制 你 的 系 统 , 并 可 以 任 意 的 改 变 他 。 你 能 够 安 装 软 件 包 ,创 建 新 用 户 , 给 你 的
系 统 增 加 新 设 备 或 者 是 磁 盘 ,配 置 X - W i n d o w s 或 网 络 界 面 。
执 行 使 用 L i n u x 安 装 和 系 统 管 理 程 序 ,可 以 执 持 管 理 任 务 , Lisa 提 供 了 容 易
使 用 的 能 够 管 理 任 务 的 界 面 ,可 获 得 一 套 R E D H A T 管 理 工 具 。 根 据 系 统 的 管 理
任 务 ,这 些 将 被 详 述 在 第 7 , 1 9 和 2 0 章 ,但 是 用 L i s a 你 能 执 行 许 多 基 本 的 任 务 。
L i s a 有 一 个 带 有 详 细 提 示 的 全 屏 界 面 ,帮 助 你 完 成 象 安 装 打 印 机 或 者 安 装 新 分 区
的 任 务 。 L i s a 有 一 个 详 细 的 在 线 描 述 ,你 可 以 通 过 w w w . c a l d e r a . c o m 网 址 来 获
得 它 ,单 击 在 线 文 件 ,选 择 O p e n L i n u x 为 基 础 或 O p e n L i n u x 标 准 的 选 项 ,然 后 选
择 管 理 OpenLinux 的 章 节 。
要 使 用 Lisa ,你 必 须 要 以 超 级 用 户 的 身 份 注 册 。 安 装 期 间 你 已 经 确 定 了 超 级
用户的口令。这个口令就是在超级用户注册时使用。如果其他的人正在用你的
L i n u x 系 统 。 要 注 意 保 密 你 的 超 级 口 令 。 任 何 以 超 级 用 户 注 册 的 人 ,都 可 破 坏 你
整 个 的 L i n u x 系 统 。 在 注 册 提 示 符 下 ,键 入 r o o t , 就 可 以 以 超 级 用 户 的 身 注 册 , 然
后键入超级用户口令。
Caldera OpenLinux(TM)
Lite 1
Version 1.1
Copyright(c) 1996-1997 Caldera Inc.
turtle.trek.com login: root
Password:
运 行 Lisa 最 容 易 的 方 式 是 在 命 令 行 键 入 Lisa 命 令 。 你 也 可 以 通 过 工 作 平 台
来 运 行 它 。 但 必 须 先 用 s t a r t x 命 令 来 启 动 工 作 平 台 。 一 旦 注 册 后 ,系 统 将 提 示 超
级 用 户 提 示 符 #。 注 意 它 其 与 普 通 用 户 提 示 符 的 区 别 。
# Lisa
L i s a 最 初 显 示 了 带 有 4 个 选 项 的 菜 单 , 复 杂 地 系 统 分 析 ,系 统 配 置 软 件 包 管
理 和 帮 助 系 统 。 要 使 用 文 件 管 理 ,设 备 配 置 或 增 加 新 用 户 的 系 统 配 置 ,软 件 包 管 理
让 你 容 易 地 增 加 和 软 件 包 。 这 个 帮 助 系 统 将 列 出 在 的 系 统 上 可 获 得 的 HOW-TO
文 件 。 如 果 你 运 行 时 出 现 困 难 ,你 就 可 以 参 阅 恰 当 地 H O W - T O 文 件 。 复 杂 系 统
分 析 提 供 了 当 前 系 统 如 何 配 置 的 信 息 ,第 2 章 图 2 - 5 表 明 了 最 初 的 L i s a 菜 单 。
大 部 分 的 Lisa 屏 幕 显 示 了 底 部 的 按 钮 。 一 个 Call 按 钮 将 启 动 一 个 菜 单 和 选 择 ,
C o n t i n u e 按 钮 将 离 开 这 一 屏 转 到 前 面 的 一 屏 ,在 主 菜 单 的 情 况 下 ,就 会 退 出 程 序
如 果 有 , 两 个 按 钮 ,一 个 被 选 择 了 , 另 一 个 就 不 会 被 选 择 。 然 后 按 回 车 键 来 选 择 已
被选中的一个。
你 用 向 右 或 向 左 的 光 标 来 选 择 另 一 个 ( 你 也 可 台 用 T A B 键 )。 按 右 移 键 选 择
右 侧 的 按 钮 ,按 左 移 键 选 择 左 侧 的 按 钮 ,然 后 按 回 车 键 。 L i s a 也 提 供 了 在 线 帮 助 ,
在 任 何 情 况 下 ,按 F 1 键 会 出 现 一 个 当 前 选 项 的 解 释 。 C o n t i n u e 按 钮 或 者 E S C
键 使 你 退 回 前 面 的 屏 幕 。 连 续 地 选 择 Continue 键 就 会 回 到 主 菜 单 。
选 择 系 统 配 置 的 选 项 进 行 执 行 管 理 任 务 (见 图 3-3)会 出 现 不 同 面 积 的 选 择
列 表 ,然 后 你 可 以 从 硬 件 系 统 网 络 或 者 启 动 管 理 器 配 置 中 选 择 , 网 络 选 项 允 许 你 执
行 网 络 配 置 ,硬 件 管 理 允 许 你 增 加 象 打 印 机 一 样 的 新 设 备 。 系 统 配 置 允 许 你 执 行
例如增加新用户或者安装分区等任务。

图 3-3 系 统 配 置 领 域
系 统 管 理 选 择 菜 单 中 的 系 统 配 置 一 项 ,一 个 带 有 选 择 项 目 的 屏 幕 将 会 出 现 , 当
系 统 启 动 的 时 候 配 置 安 装 表 选 项 允 许 指 定 分 区 和 设 备 。 你 的 主 要 的 Linux 分 区
和交换分区就被键入。第 7 章详述了分区的解释和如何安装它们。
图 3-4Lisa 系 统 配 置
图 3-5Lisa 用 户 管 理 系 统
用 户 管 理 建 立 了 一 个 带 有 管 理 用 户 和 主 群 的 选 项 的 菜 单 ,( 见 图 3 - 5 ) 选 择 " 添
加 新 用 户 " 选 项 来 增 加 一 个 新 的 用 户 , 一 系 列 的 提 示 让 你 键 入 注 册 名 和 ID 号
( 1 0 0 - 6 4 0 0 0 之 间 的 任 意 数 ) ,一 个 主 名 ,一 个 h o m e 目 录 ,一 个 启 动 s h e l l ( 通 常 是
B A S H 和 口 令 ) 选 择 。 ”创 建 新 主 群 ”选 项 可 以 增 加 一 个 新 主 群 。
硬 件 管 理 菜 单 列 出 一 系 列 硬 件 , 例 如 调 制 解 调 器 ,打 印 机 , 硬 盘 和 鼠 标 以 及
XFree86 服 务 器 。 选 择 你 想 要 配 置 文 件 的 选 项 系 统 将 列 出 一 系 列 可 供 选 择 的 硬
件 型 号 。例 如 对 于 C D - R O M , 你 将 从 不 同 的 C D - R O M 类 型 中 做 选 择 , X F r e e 8 6 服
务器选项允许你选择不同的服务器。这样有利于你改变你的显示卡或服务器。
从 工 作 台 中 有 几 种 方 式 可 以 开 启 Lisa 工 具 。 首 先 通 过 键 入 startx 命 令 来 启
动 工 作 平 台 。 在 工 作 平 台 中 ,你 可 以 击 f v w m 工 具 栏 中 的 A d m i n 按 钮 。 这 将 产
生 一 个 具 有 L i s a 按 钮 的 小 的 按 纽 栏 。 你 也 可 以 用 f r w m 程 序 菜 单 ,选 择 在 系 统 管
理 菜 单 下 面 的 L i s a ,这 是 应 用 菜 单 的 一 部 分 。 最 后 你 可 以 在 C a l d e r a 工 作 平 台 上
选 择 Admin 系 统 文 件 夹 。

3.7 安 装 软 件 包

现 在 你 知 道 如 何 启 动 L i n u x 和 进 入 超 级 用 户 帐 号 ,你 就 可 以 安 装 你 想 要 的 软
件 包 。 安 装 软 件 包 是 由 超 级 用 户 执 行 的 一 种 管 理 功 能 。 在 安 装 过 程 中 ,除 非 你 选
择 完 全 安 装 ,否 则 ,在 你 的 系 统 中 ,能 安 装 部 分 的 工 具 。 附 录 B 包 含 了 关 于
OpenLinux CD-ROM 的 系 列 软 件 包 。
有 几 种 安 装 软 件 的 方 式 。 你 可 以 使 用 工 作 平 台 中 被 称 作 glint 的 图 形 界 面 。
也 可 以 使 用 工 作 平 台 中 或 命 令 行 中 的 Lisa 工 具 。 这 些 是 安 装 几 个 软 件 包 的 最 简
便 最 有 效 的 方 法 。 可 以 用 命 令 行 中 rpm 命 令 直 接 激 活 Redhat 软 件 包 管 理 器
( R P M )。 然 而 这 是 一 个 非 常 复 杂 的 操 作 。 最 后 , 你 可 从 网 上 下 载 软 件 , 然 后 用 r p m
命 令 安 装 它 们 。 这 只 是 简 单 地 操 作 描 述 ,在 第 7 章 将 有 更 详 尽 的 描 述 。
L i n u x 的 C a l d e r a 和 R e d h a t 两 个 系 统 都 用 R e d h a t 软 件 包 管 理 器 ( R P M )。
将 你 要 安 装 或 删 除 的 软 件 装 进 软 件 包 。 一 个 RPM 软 件 包 象 它 自 己 的 软 件 应 用
安 装 程 序 一 样 运 行 。 一 个 Linux 软 件 安 装 程 序 通 常 由 安 装 在 不 同 目 录 直 的 几 个
文 件 组 成 。 程 序 本 身 最 可 能 放 在 /usr/bin 的 目 录 下 ,网 络 帮 助 文 件 将 放 在 另 一 个
目 录 。库 文 件 在 另 外 一 个 目 录 中 ,另 外 安 装 可 能 要 求 系 统 中 配 置 文 件 的 修 改 。R P M
软 件 包 将 为 你 执 行 所 有 任 务 。 如 果 你 决 定 删 除 一 个 具 体 的 应 用 程 序 ,你 可 以 卸 载
软 件 包 ,删 除 系 统 上 所 有 的 文 件 和 配 置 信 息 。 使 用 Lisa 或 者 glint 程 序 选 择 你 计
划 安 装 或 者 删 除 的 软 件 包 。 Lisa 或 glint 有 不 同 的 优 点 ,然 后 Lisa 按 字 母 列 出 所
有 的 软 件 包 ,而 glint 把 它 们 放 在 分 类 的 文 件 夹 中 。 如 果 你 知 道 你 需 要 安 装 软 件
包 的 名 字 ,Lisa 是 非 常 有 帮 助 的 (附 录 B 列 印 了 这 样 软 件 包 )你 只 需 浏 览 这 个 列 表 ,
并 选 择 它 ,但 是 如 果 要 设 置 特 殊 的 软 件 包 ,你 必 须 知 道 它 的 和 所 在 的 文 件 。

3.7.1 命 令 和 程 序 目 录 :路 径
程 序 和 命 令 通 常 安 装 在 标 准 系 统 目 录 下 的 , 例 如
/bin/usr/bin,/usr/X11R6/bin 或 /usr/local/bin 。   但 是 ,一 些 软 件 包 将 把 它 的 软 件
包 放 置 在 标 准 目 录 下 的 子 目 录 中 , 或 者 一 个 全 部 分 开 的 目 录 ,在 某 种 情 况 下 , 你 不
能 运 行 这 些 命 令 ,因 为 你 的 系 统 不 能 在 新 的 子 目 录 上 安 放 它 们 。 你 的 系 统 包 含 了
一 系 列 的 用 于 命 令 查 询 的 目 录 。 这 套 目 录 被 放 在 一 个 叫 作 P A T H 系 统 中 ,它 的 名
字 可 更 改 ,启 动 系 统 时 ,它 就 会 被 创 建 。 如 果 一 个 命 令 不 在 列 表 中 的 目 录 里 ,那 么
你 的 系 统 将 不 能 设 置 和 运 行 它 ,为 了 使 用 一 些 命 令 ,你 必 须 首 先 在 P A T H 目 录 系
统里增加新的目录。
在 O p e n L i n u x 系 统 中 ,路 径 被 目 录 系 统 分 配 到 / e t c / p r o f i l e 文 件 下 ,这 个 文 件 是
一个文本文件。当你的系统启动和配置用户工作环境时运行它。在这个文件中,
你 将 发 现 以 P A T H =为 开 头 的 一 行 ,并 且 其 后 跟 着 一 系 列 目 录 用 冒 号 分 开 ,许 多 目
录包含命令和程序。
用 G r o p L i t e . X E m a c s . E m a c s 或 V i 等 编 辑 器 编 辑 / e t c / p r o f i l e 文 件 ,用 来 创 建
新 目 录 。 在 一 系 目 录 末 端 ,在 双 引 号 添 加 一 个 带 有 全 部 路 径 名 的 目 录 。 确 认 新 目
录 与 最 后 一 个 用 冒 号 隔 开 。 在 最 后 亦 应 有 一 冒 号 。 例 如 :如 果 安 装 M H 邮 件 工 具 ,
在 | u s r | bin 目 录 下 的 m h 子 目 录 安 装 M H 命 令 。 该 目 录 的 全 部 路 径 名 是
/ u s r / b i n / m h。 应 该 在 一 系 列 目 录 中 加 入 表 明 / e t c / p r o f i l e 文 本 路 径 内 的 目 录 ( 软 件
包 名 命 令 r p m - q p )将 列 出 安 装 R P M 软 件 包 的 全 部 命 令 ) 下 面 的 例 子 表 明 随 目 录
系 列 的 变 化 路 径 亦 是 变 化 的 ,和 目 录 / u s r / b i n / m h 的 添 加 (将 在 下 栏 中 显 示 )。
PATH="/bin:/usr/bin:/opt/bin:/usr/X11R6/bin:/usr/openwin/bin:/usr/
local/bin:/usr/bin/mh:"
/etc/profile 文 件 是 为 用 户 注 册 时 使 用 的 可 执 行 文 本 。 个 别 用 户 可 通 过
用 : b a s h r c 或 . p r o f i l e 文 件 设 置 P A T H 。 用 这 使 方 法 ,用 户 可 以 在 自 己 的 目 录 下 创
建 和 安 装 所 要 使 用 的 命 令 和 程 序 ,并 能 顺 利 地 使 用 它 们 ( 详 见 1 5 章 ) 在 . p r o f i l e 文
件 里 的 选 项 中 ,有 一 个 是 在 P A T H 里 增 加 一 个 用 户 的 m y b i n 目 录 ,用 $ P A T H 将 列
出 / e t c / p r o f i l e 文 件 中 的 全 部 目 录 。 不 要 忘 记 在 新 目 录 前 放 一 个 冒 号 ,并 用 $ H O M E
来 确 定 用 户 的 home 目 录 的 录 径 名 。
PATH=$PATH:$HOME/mybin:

3 . 7 . 2 L i s a :软 件 包 管 理
在 L i s a 主 菜 单 下 选 择 软 件 包 管 理 。 会 出 现 四 个 选 择 :第 一 个 是 安 装 程 序 来 源
的 选 择 。 要 从 L i n u x 光 盘 上 增 加 软 件 ,就 必 须 先 通 知 Lisa 软 件 正 放 在 光 盘 上 。 选
择 这 一 选 项 ,一 系 列 设 备 会 显 示 出 来 ,其 中 C D - R O M 设 备 选 项 是 发 亮 的 , 按 回 车 即
可 选 择 它 ,Lisa 将 检 测 光 盘 并 要 求 确 认 ,按 回 车 键 转 到 软 件 包 菜 单 ,用 光 盘 移 动 移
选 择 增 加 软 件 包 选 项 ,按 回 车 , L i s a 会 显 示 全 部 未 安 装 的 软 件 包 ,这 可 能 花 一 点 时
间 。
每 个 选 项 的 左 侧 有 一 个 空 的 括 号 ,接 下 来 是 用 黄 色 显 示 的 软 件 包 的 文 件 , 右 侧
是 对 软 件 的 描 述 。 用 光 标 移 动 键 选 中 一 个 软 件 包 ,然 后 按 空 格 键 确 认 选 中 。 你 会
看 到 括 号 中 出 现 x 。 如 果 你 又 不 想 选 中 它 ,就 再 按 一 次 空 格 键 ,x 会 消 失 。 如 果 你
确 定 选 中 ,按 回 车 ,你 选 择 的 全 部 软 件 包 会 被 安 装 。 图 3 - 6 显 示 了 L i s a 的 软 件 包
列 表 。 也 可 以 用 T a b 键 来 选 中 C a n c e l 按 钮 再 回 车 ,以 便 取 消 安 装 。
选 择 ”删 除 软 件 包 ”选 项 可 以 删 除 已 被 安 装 的 软 件 包 , 选 中 后 , 屏 幕 显 示 所 有 被
安 装 的 软 件 包 。 同 样 的 方 法 ,可 以 选 中 并 回 车 。 你 可 以 删 除 任 何 一 个 软 件 包 。

3.7.3Linux 安 装 管 理 器 g lint
通 过 g l i n t 使 工 具 的 用 户 友 好 界 面 安 装 软 件 是 很 简 单 的 ,用 鼠 标 就 可 以 完 成 。
glint 可 以 自 动 把 软 件 或 专 用 配 置 文 件 复 制 到 正 确 的 目 录 下 ,glint 能 在 增 加 和 删 除
软 件 包 过 程 中 处 理 ,全 部 的 文 件 。
图 3-6Lisa 安 装 列 表
像 使 用 Lisa 一 样 ,你 首 先 必 须 用 超 级 用 户 身 份 来 注 册 ,如 果 从 光 盘 上 安 装 软
件 ,首 先 要 使 系 统 识 别 光 驱 。 不 像 L i s a , g l i n t 不 能 自 动 完 成 这 一 点 ,你 必 须 执 行 一
个 被 称 作 安 装 一 个 系 统 文 件 的 命 令 ,首 先 把 光 盘 放 入 光 驱 ,然 后 键 入 下 面 的 命 令 ,
这 使 光 驱 上 的 一 个 盘 区 与 Linux 系 统 相 通 。 安 装 文 件 系 统 将 在 第 7 章 详 细 讨 论 。
$mount/mnt/cdrom
glint 是 一 个 从 工 作 台 上 运 行 的 X - W i n d o w s 程 序 。 键 入 Startx 来 起 动 工 作 平
台 ,用 开 启 L i s a 工 具 相 同 的 方 法 来 开 启 g l i n t , 选 择 f w m 工 具 栏 中 的 A d m i n 按 钮 ,
它 在 应 用 程 序 , 菜 单 中 ,系 统 管 理 下 的 f w m 程 序 菜 单 中 。 A d m i n - T o o l s 文 件 夹 放
在 C a l d e r a 工 作 平 台 中 ,一 旦 你 开 启 了 g l i n t 图 3 - 1 7 中 的 g l i n t 窗 口 就 会 显 示 出
来 ,glint 看 起 来 就 像 一 个 文 件 管 理 器 窗 口 ,它 显 示 出 应 用 程 序 和 文 件 夹 图 标 ,同 类
的 应 用 程 序 放 在 相 同 的 文 件 夹 中 ,例 如 , E m a c s 编 辑 器 放 在 叫 做 编 辑 器 的 文 件 夹
中。此文件夹放在应用程序文件夹中。
在 你 已 经 看 到 的 文 件 夹 和 图 标 是 已 经 被 安 装 在 系 统 中 的 ( 只 图 3 - 7 )你 可 以 通
过 窗 口 来 阅 读 这 些 软 件 包 或 删 除 它 们 。 只 要 选 中 适 合 的 文 件 夹 中 的 图 标 ,然 后 按
右 侧 的 拆 御 按 钮 (Uninstall) 。 当 你 选 中 了 一 个 软 件 包 ,它 的 图 标 就 会 出 现 红 色 边
框。你可以通过单击它们同时选中几个图标。一次就可把它们全部删除。要想
取 消 已 经 选 中 的 图 标 ,只 要 再 单 击 它 一 次 就 可 以 了 。 你 会 看 到 红 色 的 边 框 消 失 。
图 3-7glint 使 用 工 具
当 你 打 开 并 显 示 一 个 文 件 夹 的 内 部 时 ,会 看 到 一 个 带 有 大 黑 箭 头 名 字
叫 ”B a c k ”的 图 标 , 通 过 点 中 它 , 可 以 退 回 先 前 文 件 夹 , 也 就 是 关 闭 当 前 文 件 夹 。 例
如 , 双 击 应 用 程 序 文 件 夹 , 像 游 戏 等 的 文 件 夹 会 出 现 , 同 时 会 出 现 ”B A C K ”黑 箭 头 图
标 , 打 开 游 戏 文 件 夹 。 会 看 到 一 些 游 戏 的 图 标 和 一 个 ”B A C K ”大 黑 箭 头 图 标 。 单
击 大 黑 箭 头 图 标 ,可 退 回 到 前 一 个 文 件 夹 。 直 到 退 回 应 用 程 序 文 件 夹 。 通 过 用 鼠
标 击 中 文 件 夹 和 黑 箭 头 图 标 ,就 可 以 自 由 的 打 开 和 关 闭 文 件 夹 来 使 用 其 中 的 文 件
了 。
要 想 安 装 新 的 软 件 包 、 首 先 选 择 g l i n t 窗 口 右 侧 的 ”A v a i l a b l e ”按 钮 。 这 将 打
开 一 个 标 有 ”A v a l a b l e P a c k a e s ”的 一 个 g l i n t 新 窗 口 (见 图 3 - 8 ) , C a l d e r a 光 盘 中 未
安 装的软件包将会以文件夹和图标的方式显示在这个窗口中。它们被分别放在
适 合的文件夹中。打开文件夹可以把它们显示出来。单击打算安装的软件包的
图 标 , 按 下 窗 口 右 侧 的 ”I n s t a l l ”按 钮 。 软 件 包 就 会 自 动 安 装 到 系 统 上 , 可 以 同 时 选
中 个 软 件 包 的 图 标 、 把 它 们 一 次 安 装 ,当 你 要 取 消 已 经 选 中 的 图 标 时 ,只 要 用 鼠 标
再 单 击 一 次 就 可 以 了 。 被 选 中 的 软 件 包 的 图 标 仍 然 会 出 现 红 色 边 框 ,按 下 ”I n s t a l l ”
按 钮 后 , 这 个 图 标 就 会 从 ”A v a i l a b l e p a e k a g e s ”窗 口 下 消 失 。 并 出 现 在 它 被 安 装 的
窗 口。

图 3-8glint 的 Available Packages 窗 口
在 g l i n t 窗 口 中 选 择 任 何 文 件 的 图 标 并 按 下 ”I n f o ”窗 口 , 就 可 以 获 得 文 件 的 简
单 描 述 , 它 们 试 图 打 开 ”A v a i l a b l e P a d c o g e s ”窗 口 时 , 收 到 了 没 有 可 安 装 的 P R M S
文 件 ( 并 且 不 能 选 择 完 全 安 装 选 项 ) 时 ,最 大 的 可 能 是 你 没 有 安 装 O p e n L i n u x 光 盘
驱 动 器 。 你 需 要 打 开 终 端 窗 口 , 在 其 中 键 入 m o u n t 命 令 ,单 击 f w m 任 务 栏 中 的
Xterm 按 钮 。 然 后 在 终 端 窗 口 的 提 示 符 下 键 入 mount/mnt/cdom 命 令 。

3 . 7 . 4 命 令 行 安 装 :R e d h a t P a c k a g e M a n a g e r
如 果 你 不 使 用 工 作 平 台 ,可 以 在 命 令 行 用 r p m 命 令 来 管 理 和 安 装 软 件 包 , r p m
是 R e d h a t 软 件 包 管 理 的 行 命 令 ,它 通 常 执 行 软 件 包 的 安 装 , 删 除 和 确 认 。 实 际 上
L i s a 和 g l i n t 也 是 使 用 r p m 命 令 来 安 装 和 删 除 软 件 包 ,每 个 软 件 包 通 常 是 一 个 由
包 含 软 件 文 件 和 关 于 如 何 安 装 这 些 文 件 的 信 息 文 档 组 成 的 RPM 软 件 包 。 每 个
文 档 驻 留 在 一 个 带 有 .rpm 文 件 名 的 文 件 中 ,表 明 它 是 一 个 可 被 R e h a t 软 件 包 管
理器安装的软件包。
你 能 用 rpm 命 令 来 安 装 和 删 除 软 件 包 。 rpm 使 用 了 一 套 决 定 完 成 各 种 功 能
的 选 项 。 表 3 - 1 列 出 了 这 套 r p m 选 项 。 - i 选 项 将 安 装 指 定 的 软 件 包 ,-e 选 项 将 删
除 软 件 包 , - q i 选 项 将 访 问 系 统 是 否 安 装 了 某 个 软 件 包 并 显 示 此 软 件 包 的 信 息 (-qpi)
选 项 将 询 问 一 个 未 安 装 的 软 件 包 文 件 )。--h 选 项 列 出 了 全 套 的 rpm 选 项 。--force
选 项 是 用 来 进 行 无 条 件 的 强 制 安 装 。下 面 是 r p m 命 令 的 语 法 ( r p m - p a c k a g e - n a m e
是 你 要 安 装 的 软 件 包 的 名 子 )。
rpm options rpm-package-name
软 件 包 的 名 字 通 常 是 非 常 长 ,包 含 了 发 行 日 期 和 版 本 ,所 有 的 都 是 从 .rpm 结 尾 ,
在 光 盘 Packages/RPMS 目 录 下 是 一 套 标 准 的 Linux 应 用 程 序 。 在 OpeLinux
目 录 以 及 子 目 录 下 ,驻 留 了 像 X a p p s 1 和 d e v e l p 1 等 类 型 的 应 用 程 序 。 一 些 软 件
包 通 常 被 发 现 在 名 叫 R P M S 的 子 目 录 下 。 像 J a v a D e v e l o p m e n t K i t 和 Xfm 的
专 用 程 序 ,放 在 O p e n L i n u x / C o n t r i b 目 录 下 。 从 C a l d e r a 光 驱 上 安 装 软 件 包 。 先
进 入 适 当 的 R P M 目 录 ,再 安 装 , 你 想 要 的 软 件 包 , 如 果 你 不 能 进 入 此 目 录 ,可 能 是
因 为 你 的 系 统 可 能 没 有 安 装 光 盘 驱 动 器 , 如 果 是 这 样 ,参 考 前 面 部 分 如 何 安 装 你 的
光 驱 ( m o u n t / m n t / c d r o m ) , 例 如 ,要 想 出 入 包 含 J a v a D e v e l o p m e n t K i t ( J D K )的 子 目
录 ,键 入 如 下 命 令 。
$ cd/mnt/cdrom/openLinux/contrib/RPMS
L s 命 令 是 列 出 了 全 部 的 软 件 包 ,如 果 你 知 道 一 个 软 件 包 的 开 头 一 个 或 几 个 字
母 ,可 以 用 L s 命 令 和 匹 配 等 来 显 示 它 ,文 件 包 的 列 表 通 常 很 长 超 出 一 个 屏 幕 ,用 通
配 符 *和 L s 命 令 显 示 软 件 包 的 详 细 名 字 是 很 有 效 果 。 下 面 的 例 子 表 明 了 如 何 列
出 X-Windows 软 件 包 。
$ ls x*
下 面 的 例 子 中 ,用 r p m 命 令 安 装 J D K 软 件 包 ,注 意 :因 为 要 键 入 文 件 的 全 名 ,可
以 用 Ls 命 令 显 示 JDK * 来 查 找 全 名 。
$rpm -i JDK_static_1.0.2.p 12-3.i386.rpm
安 装 和 载 卸 软 件 包 之 间 并 没 有 什 么 不 同 ,当 你 想 安 装 一 个 软 件 包 时 , 必 须 知 道
它 是 否 已 被 安 装 。 可 以 用 rpm 命 令 的 -qi 选 项 来 安 装 一 个 软 件 包 。 下 面 的 例 子 中 ,
用 户 可 以 来 确 认 J D K 是 否 已 被 安 装 在 系 统 中 ,注 意 不 用 键 入 J D K 文 件 名 全 名 。
如 果 已 经 被 安 装 ,文 件 的 名 字 及 安 装 的 目 录 已 经 注 册 在 系 统 中 。
$ rpm -ql JDK_static
用 -qpi 选 项 来 查 看 已 被 安 装 的 软 件 包 的 目 录 及 软 件 包 里 的 所 有 文 件 。 下 面
的 例 子 是 列 出 JDK 文 件 包 中 的 所 有 文 件 。
$ rpm -e JDK_static
要 删 除 一 个 系 统 中 的 软 件 包 ,首 先 用 r p m - q p i 来 确 定 此 文 件 包 的 确 已 被 安 装
在 系 统 中 ,然 后 ,用 - e 选 项 来 删 除 它 , 用 - q p i 选 项 ,不 必 知 道 文 件 的 全 名 ,只 要 知 道 应
用 程 序 的 名 字 就 可 以 了 。 在 下 面 的 例 子 ,是 用 户 删 除 系 统 中 的 JDK_static 文 件 。
用 -qpl 选 项 来 查 看 已 被 安 装 的 软 件 包 的 目 录 及 软 件 包 里 的 所 有 文 件 。 下 面
的 例 子 是 列 出 JDK 文 件 包 中 的 所 有 文 件 。
$ rpm -e JDK_static
联 机 帮 助 中 说 明 了 rpm 命 令 的 全 部 功 能
$man rpm

3.7.5 安 装 网 络 资 源 中 的 软 件
从 网 上 安 装 软 件 是 很 复 杂 的 ,你 必 须 先 登 录 到 远 端 的 资 源 位 置 。 你 需 要 知 道
软 件 安 放 的 地 点 , 然 后 用 N e t s c a p e 或 ftp 工 具 来 下 载 软 件 包 。 如 果 正 和 一 个
I n t e r n e t 相 连 ,首 先 必 须 使 用 p p p d ( 表 3 - 2 列 出 了 R P M 软 件 包 的 几 个 f p t 网 址 ) 。
有 些 软 件 包 是 被 压 缩 的 文 件 , 并 不 是 R P M 格 式 ,你 可 以 用 g n u z i p 和 t a r 命 令 来 打
开 压 缩 文 件 再 安 装 它 。 第 7 章 详 述 了 这 一 过 程 ,所 有 的 R P M 软 件 包 都 是 从 . r p m
结 尾 的 ,当 下 载 这 样 的 软 件 包 时 ,必 须 用 r p m 命 令 来 安 装 它 。 最 好 使 用 R P M 格 式
的软件包。
通 常 , 一 个 软 件 应 用 程 序 是 一 个 R P M 格 式 的 软 件 包 :或 者 对 一 些 系 统 上 没 有
R e d h a t 软 件 包 管 理 器 的 系 统 来 说 是 一 个 tar 文 档 ,许 多 R P M 软 件 包 是 放
Redhattp 网 址 :ftp.redhat.com 下 /pub/contrib/i386 目 录 中 。 你 可 以 轻 松 地 从 这
个 网 址 下 载 软 件 并 且 安 装 它 ,从 其 它 的 L i n u x 相 关 信 息 网 址 如 Snnsite 和 tsx-11
中 可 获 得 一 些 压 缩 的 文 件 和 R P M 软 件 包 , 在 ftp.caldera.com 网 址 中 的
/ p u b / n e t s c a p e / n a r i g a t o r 目 录 下 ,可 以 找 到 为 L i n u x 系 统 使 用 并 且 是 R P M 格 式
的 N e t s c a p e 流 览 器 版 本 。 或 在 N e t s c a p e 的 .ftp 网 址 ( f t p 5 . n e t s c a p e . c o m )下 找
到这文件的压缩版本。
下 面 的 例 子 是 用 ftp 连 接 L i n u x f t p 网 址 f t p . c a l d e r a . c o m 来 下 载 N e t s c a p e
网 络 浏 览 器 ,用 户 键 入 一 个 a n o n y m o u s 作 为 一 个 注 册 ID 和 一 个 I n t e r n e t 地 址 作
为 一 个 口 令 ,经 常 ,一 个 映 射 网 址 列 表 将 被 显 示 。 映 射 网 址 包 含 了 那 个 ftp 网 址 中
的 所 有 文 件 , 当 由 于 ftp 网 址 太 繁 快 以 至 于 不 允 许 进 入 或 太 慢 时 , 可 以 试 着 进 入 一
个映射网址。
进 入 ftp 网 址 后 ,用 c d 命 令 ,用 户 可 以 转 到 放 置 L i n u x N e t s c a p e 浏 览 器 的
/ p u b / n e t s c a p e / n a v i g a t o r 目 录 下 。然 后 用 户 进 入 3 . 0 1 目 录 找 到 N a v i g a t o r 的 3 . 0 1
版 本 ,键 入 L s 命 令 和 带 有 通 配 符 的 ,软 件 包 开 头 几 个 字 母 , 显 示 像 需 要 的 软 件 包 的
列 表 。 用 户 首 先 键 入 L s n e t s * 来 显 示 此 文 件 包 的 全 名 , 要 用 ftp 下 载 软 件 包 , 你 必
须 使 用 文 件 的 全 名 。 像 ftp.caldera.com 指 示 的 那 样 ,用 户 第 一 次 注 册 时 ,大 部 分
网 址 会 以 二 进 制 格 式 自 动 下 载 文 件 。 如 果 不 是 自 动 下 载 ,你 必 须 用 b i n a r y 命 令 来
指 定 二 进 制 格 式 ,使 用 g e t 命 令 然 后 下 载 软 件 包 ,一 旦 完 成 你 所 需 的 软 件 包 下 载 任
务 ,你 就 能 通 过 用 c l o s e . q u i t 命 令 离 开 这 个 ftp 网 址 。
下 载 后 ,通 过 r p m - i 命 令 安 装 R P M 软 件 包 ,被 下 载 的 文 件 通 常 包 括 R E A D M E
文 件 和 其 它 文 件 。 不 要 忘 了 阅 读 它 们 。 学 生 和 老 师 可 以 免 费 注 册 使 用 Netscape
N a v i g a t o r 。而 其 它 人 不 是 免 费 注 册 的 , 注 册 后 你 能 够 被 提 供 技 术 支 持 和 升 级 服 务 ,
否 则 ,可 以 免 费 使 用 非 注 册 的 N e t s c a p e N a v i g a t o r。
$ rpm -i package-name
在 N e t s c a p e 软 件 包 中 ,你 必 须 使 用 强 行 安 装 的 选 项 , O p e n L i n u x 系 统 中 已 经
存 在 / u s r / b i n / n e t s c a p e 文 件 (这 个 文 件 只 是 不 含 有 N e t s c a p e ) ,你 可 以 用 --force 选
项 使 带 有 N e t s c a p e 程 序 的 文 件 覆 盖 原 有 文 件 (注 意 ,--force 选 项 中 有 两 个 -)。
$rpm -i --force netscape -3.01 -6.i386.rpm
另 一 方 面 , 你 能 够 用 N e t s c a p e 来 寻 找 浏 览 和 下 载 软 件 , 而 不 必 使 用 全 部 ftp
命 令 。 在 N e t s c a p e 下 , 用 ftp:// 代 替 h t t p : / / 来 处 理 一 个 ftp 网 址 名 , 例 如 R e d h a t , 你
应 键 入 f t p : / / f t p . r e d h a t . c o m . N e t s c a p e 浏 览 器 将 列 出 此 目 录 下 的 全 部 文 件 ,你 可 以
用 滚 动 栏 来 浏 览 。 双 击 一 个 目 录 的 名 ,可 以 转 到 别 的 目 录 。 每 个 目 录 名 字 前 存 一
个 黄 色 文 件 夹 的 图 标 ,例 如 , 你 必 须 用 鼠 标 双 击 / p u b 目 录 , 然 后 屏 幕 显 示 此 目 录 的
内 容 。 双 击 c o n t r i b 文 件 夹 ,再 从 c o n t r i b 文 件 夹 中 的 目 录 和 文 件 中 ,选 择 i 3 8 6 目
录 ,才 可 能 到 达 / p u b / c o n t r i b / i 3 8 6 目 录 ,图 3 - 9 是 用 N e t s c a p e 显 示 一 个 ftp 目 录 。
图 3-9Netscape ftp 显 示
选 择 一 个 要 下 载 的 软 件 包 ,首 先 必 须 按 住 S H I F T 键 ,然 后 用 鼠 标 来 单 击 软 件
包 名 字 ,这 会 出 现 一 个 对 话 框 ,显 示 出 包 名 字 并 指 出 要 下 载 到 的 目 录 名 。 单 击 O K
按 钮 来 下 载 ,图 3 - 9 表 明 了 这 样 一 个 窗 口 ,然 后 你 能 用 r p m - i 命 令 来 安 装 它 。

3.8 远 程 通 讯

用 L i n u x 直 接 和 远 程 系 统 相 连 是 非 常 容 易 的 。简 单 地 配 置 调 制 解 调 器 ( m o d e m )
后 ,你 就 可 以 使 用 几 个 通 讯 程 序 来 拨 号 并 注 册 入 网 。 最 流 行 的 两 个 流 行 远 程 通 讯
程 序 是 m inicom 和 seyon 提 供 了 容 易 使 用 的 界 面 和 像 自 动 注 册 等 的 高 级 特 点 。

3.8.1 调 制 解 调 器 的 设 置
如 果 你 的 P C 有 一 个 调 制 解 调 器 ,它 可 被 连 接 四 个 通 讯 端 口 中 的 一 个 ,这 些 端
口 的 名 字 分 别 是 : C O M 1 , C O M 2 , C O M 3 和 C O M 4 ,这 些 端 口 也 被 用 于 像 鼠 标 等 的
串 行 口 设 备 。 通 常 ,鼠 标 使 用 C O M 1 , C O M 2 , C O M 3 和 C O M 4 ,这 些 端 口 也 被 用 于
像 鼠 标 等 的 串 行 口 设 备 。通 常 ,鼠 标 使 用 C O M 1 , m o d e n 使 用 C O M 2 ,或 者 C O M 4 ,
要 配 置 调 制 解 调 器 , 你 需 要 知 道 你 的 鼠 标 和 m o d e m 使 用 的 端 口 。C O M 1 与 C O M 3
是 计 算 机 上 的 同 一 端 口 ,所 以 ,千 万 不 要 让 你 的 鼠 标 使 用 C O M 1 端 口 ,而 让 m o d e m
使 用 C O M 3 端 口 。 否 则 当 你 使 用 modem 时 会 发 现 鼠 标 被 切 断 。 如 果 你 的 鼠 标
与 C O M 1 相 连 ,那 么 你 的 m o d e m 应 用 C O M 2 或 C O M 4 端 口 。
在 L i n u x 系 统 中 ,四 个 端 口 有 不 同 的 名 字 ,调 制 解 调 器 的 端 口 是 以 /dev/cua0
为 起 始 的 ( 注 意 , 开 始 的 数 字 是 0 , 而 不 是 1) 。 /dev/cua0 是 第 一 个 端 口
COM1,/dev/cual,/dev/cua2,/dev/cua3 分 别 是 二 、 三 、 四 端 口 ,许 多 L i n u x 通 讯
程 序 里 ,你 需 要 知 道 m o d e m 所 连 的 端 口 。
一 些 通 讯 程 序 允 许 / d e v / m o d e m 来 访 问 m o d e m 的 端 口 ,通 常 这 个 名 字 不 存
在 你 的 系 统 中 ,它 是 m o d e m 所 用 端 口 的 别 名 , 你 一 旦 知 道 m o d e m 所 用 端 口 可 以
用 ln-s 命 令 来 创 建 别 名 。 下 面 的 例 是 为 . c o m 2 , 端 口 ,/dev/cua1 创 建 别 名
/dev/modem 。 首 先 你 必 须 是 超 级 用 户 的 身 份 注 册 。
#ln -s/dev/cua1/dev/modeo
鼠 标 所 使 用 端 口 的 另 名 通 常 设 置 为 /dev/mouse, 这 个 端 口 通 常 是
/C O M 1 , / d e v / c a u 0 。
# ln -s/dev/cua0/dev/mouse

3.8.2 远 程 通 讯 程 序 :m i n i c o m 和 s e y o n
m incom 是 一 个 可 以 使 你 注 册 到 其 它 系 统 的 终 端 仿 真 器 ,它 不 是 一 个 X -
W indows 程 序 。 任 何 用 户 帐 户 口 都 可 以 通 过 命 令 行 来 运 行 它 。 键 入 m inicom 命
令 就 可 以 启 动 它 ,可 以 用 C T R L - A 加 另 外 一 个 字 符 来 使 用 命 令 ,例 如 C T R L - A - D
键 将 出 现 一 个 拨 号 目 录 ,按 E S C 键 可 以 退 出 任 何 窗 口 。 C T R L - A - Z 键 显 示 列 出
不 同 命 令 的 帮 助 屏 幕 。 在 这 个 屏 幕 中 ,你 能 够 按 命 令 相 对 应 的 字 符 来 执 行 命 令 , 按
C T R L - A - P 键 会 出 现 一 个 屏 幕 ,要 求 你 键 入 你 的 m o d e m 参 数 。 按 C T R L - A - O 键
出 现 一 个 屏 幕 ,要 求 你 键 入 你 的 m o d e m 参 数 。 按 C T R L - A - O 键 出 现 一 个 配 置 菜
单 ,端 口 设 置 选 项 会 产 生 一 个 选 择 m o d e m 使 用 端 口 的 屏 幕 。 例 如 / d e v / c u a 1 。 调
制 解 调 器 选 项 产 生 一 个 键 入 modem 信 息 的 屏 幕 。 文 件 名 和 路 径 选 项 让 你 选 择
上或和下载文件的路径。
按 下 C T R L - D 键 ,出 现 一 个 拨 号 目 录 , 选 择 你 要 与 之 连 接 的 系 统 号 码 , 设 置 一
个远程连接。拨号目录允许你用屏幕底部的命令增加和编辑选项。用左右光标
移 动 键 选 择 选 项 ,用 上 下 光 标 键 选 择 准 备 拨 打 的 号 码 然 后 选 择 拨 号 命 令 。 在 屏 幕
上 可 看 到 注 册 和 口 令 提 示 符 ,你 也 可 以 创 建 一 个 自 动 执 行 拨 号 和 注 册 操 作 的 文
本。
m i n i c o m 支 持 z m o d e m , y m o d e m , x m o d e m 和 K e r m i t 转 换 协 议 ,用 C T R L - A -
S 键 可 以 发 送 文 件 用 CTRL-A-R 键 接 收 它 们 ,minicom 允 许 你 增 加 可 获 得 的 新 协
议 C T R L - A - H 键 挂 机 ,CTRL-A-X 键 退 出 m inicom 。
S e y o n 是 一 个 运 行 在 工 作 平 台 上 的 一 个 远 程 通 讯 程 序 ,它 提 供 了 一 个 终 端 仿
真 和 支 持 用 于 下 载 ,上 载 文 件 的 传 输 协 议 。 它 包 括 一 个 拨 号 目 录 和 一 个 自 动 注 册
和 下 载 的 脚 本 语 言 , S e y o n 界 面 由 分 布 式 窗 口 ,按 钮 和 菜 单 组 成 ,每 个 部 件 支 持 各
种 特 点 。 拨 号 目 录 允 许 你 编 辑 注 册 文 本 , 来 选 择 像 自 动 重 播 等 优 点 ,终 端 仿 真 使 用
X t e r m 窗 口 ,使 它 具 有 像 滚 动 缓 冲 器 ,剪 切 和 粘 贴 的 功 能 。 当 S e y o n 启 动 时 ,它 显
示 了 一 个 带 有 不 同 按 钮 的 命 令 中 心 窗 口 ,每 个 按 钮 执 行 不 同 的 任 务 。 Tranfer 按
钮 是 用 来 下 载 文 件 ,用 D i a l 按 钮 ,可 以 拨 号 和 注 册 到 一 个 远 程 系 统 。
3.9 使 用 调 制 解 调 器 和 I n t e r n e t 连 接 , p p p d 和 e z p p p

如 果 使 用 m o d e m 通 过 电 话 线 与 I n t e r n e t 相 连 ,你 就 必 须 设 置 P P P 连 接 ,点 对
点 ( P P P )协 议 是 大 部 分 使 用 m o d e m 与 I n t e r n e t 相 连 的 协 议 ( 你 的 计 算 机 是 通 过
网 卡 直 接 与 一 个 Intranet 相 连 。 你 的 网 络 连 接 应 该 是 它 配 置 好 的 。 如 果 没 被 配
置 好 ,可 以 用 L i s a 来 配 置 它 ) 。
在 L i n u x 系 统 中 , p p p d 命 令 完 成 了 P P P 连 接 , 2 0 章 将 会 详 述 ,你 可 以 用 下 面
部 分 描 述 的 方 法 直 接 执 行 p p p d 命 令 ,也 可 以 通 过 E z p p p I n t e r n e t 连 接 工 具 来 实
现 。 E z p p p 并 没 有 放 在 你 的 光 盘 上 ,你 必 须 从 R e d h a t C o n t r i b 目 录 下 下 载 它 。 要
热 这 样 做 ,首 先 要 设 置 一 个 p p p 连 接 ,下 面 部 分 简 要 叙 述 了 如 何 用 p p p d 命 令 设 置
的 ppp 连 接 ,20 章 将 再 次 详 述 。

3.9.1pppd
大 部 分 的 Internet 服 务 器 在 它 们 与 Internet 的 连 接 中 使 用 动 态 的 本 地 和 远 程
地 址 。这 里 描 述 了 一 个 简 单 的 动 态 连 接 , 2 0 章 详 细 讨 论 了 p p p d 和 静 态 地 址 。p p p d
使 用 两 个 文 件 来 建 立 连 接 。 chat 文 件 规 定 了 如 何 用 注 册 名 和 口 令 与 服 务 器 相 连 。
Option 文 件 包 括 了 一 套 pppd 用 来 配 置 连 接 的 标 准 选 择 。
你 首 先 应 该 设 置 p p p d 选 项 , p p p d 有 很 多 选 项 。 例 如 , n o i p d e f a n l t 选 项 ,指 示
了 p p p d 从 I S P 远 程 系 统 中 探 测 和 使 用 一 个 动 态 IP 地 址 。 你 可 以 在 P P P 命 令
行 的 S p e e d 后 面 列 出 各 种 选 项 ,但 这 可 能 使 命 令 行 变 得 十 分 长 和 复 杂 。 另 一 种
方 式 ,pppd 允 许 你 键 入 /etc/ppp/Options 文 件 中 的 选 项 ,pppd 将 自 动 阅 读 和 使 用
这 个 文 件 中 的 选 项 ,这 里 列 出 了 你 需 要 使 用 的 标 准 选 项 ,用 Crisplite Vi 或 X E m a e s
编 辑 器 来 编 辑 ,/etc/ppp/Option 选 项 并 键 入 这 些 命 令 。
/etc/ppp/Options
C rtscts
defaultroute
medem
as yncmap o
noi pdefault
现 在 准 备 设 置 连 接 信 息 ,Chat 命 令 会 完 成 拨 号 连 接 ,Chat 必 须 明 确 全 部 连 接
信 息 , 电 话 号 码 , 注 册 提 示 符 , 用 户 ID 号 , 口 令 提 示 符 和 口 令 , 及 一 些 连 接 用 的 字 符
串 ,C h a t 操 作 由 一 对 期 待 与 回 答 的 字 符 串 形 成 的 一 些 选 项 组 成 , 第 一 个 字 符 串 是
期 望 接 收 的 内 容 ,第 二 个 字 符 串 是 收 到 时 发 送 回 答 的 内 容 ,如 果 你 不 想 收 到 任 何 内
容 , 使 用 一 个 无 效 的 空 串 ””。 下 面 的 例 子 中 , 首 先 是 期 望 不 收 到 正 文 回 答 准 备 拨
号。
"" ATDT 5556666
远 程 系 统 通 常 发 送 一 个 注 册 提 示 符 ,经 常 是 一 个 带 冒 号 的 ”l o g i n ”, 你 只 需 要 最
后 几 个 字 符 O g i n , 不 要 忘 了 冒 号 , 你 键 入 用 户 的 ID 号 , 回 答 依 据 不 同 的 I S P , 你 可
能 需 要 在 用 户 ID 号 后 加 上 n 如 m y l o g i n \ n 。
ogin:mylogin.
注 册 进 入 系 统 后 , 你 能 期 望 收 到 口 令 提 示 符 ,仍 仅 需 要 最 后 几 个 字 符 W o r d :回
答你的口令。
Word :mypass
用 C h a t 命 令 把 期 望 回 答 对 合 并 在 对 话 操 作 中 , 通 常 使 用 - v 选 项 ,以 便 C h a t
报告其行动。
' Chat -v -f " "ATDT 5556666 Ogin:mylogin Word:mypass'
你 必 须 把 对 话 操 作 放 进 p p p d 命 令 可 调 用 的 执 行 中 ,整 个 对 话 操 作 用 单 引 号
引 起 来 ,并 键 入 p p p d 命 令 的 同 一 行 中 , C h a t 程 序 用 C h a t 文 件 中 的 信 息 初 使 化 调
制 解 调 器 ,向 远 程 主 计 算 机 拨 号 入 网 ,然 后 用 用 户 ID 和 口 令 注 册 。
然 后 , 你 需 要 键 入 带 有 C h a t 调 用 m o d e m 的 设 备 名 ,及 速 度 的 p p p d 命 令 。 标
准 的 语 法 显 示 如 下 , 如 果 你 对 I S P 有 一 个 静 态 连 接 ,在 速 度 后 还 要 加 上 I S P 静 态
Internet 地 址 。
pppd Options Serial-device-name Speed
S e r i a l - d e v i c e - n a m e 是 调 制 解 调 器 ( m o d e m )的 设 备 名 , 通 常 是 / d e v / c u a 加 上
从 0 到 3 的 一 个 数 字 。 速 度 是 波 特 率 ,V44 modem 的 波 特 率 是 14400。 V.28
modem 的 波 特 率 是 38400 或 57600 在 modem 文 件 中 找 到 它 能 支 持 的 最 高 速
度。
C o n n e c t 选 项 指 示 p p p d 完 成 一 个 连 接 ,在 p p p d 后 键 入 C o n n e c t 选 项 和 C h a t
命 令 。 整 个 C h a t 操 作 用 单 引 号 引 起 来 。 下 面 的 例 子 中 ,用 户 用 C h a t 操 作 激 活
p p p d 。 调 制 解 调 器 连 在 端 口 2 . / d e v / C n a 1 速 度 是 5 7 6 0 0 波 特 ,单 引 号 中 包 括 了
期望回答对。
# pppd c o n n e c t 'C h a t - v " " A T D T 5 5 6 6 6 6 O g i n : m y l o g i n w o r d :
mypass' plev/cua1 57600
现 在 , 可 以 试 着 用 p p p d 与 远 程 系 统 相 连 了 。 一 些 号 码 可 能 是 错 误 的 ,也 可 能
你 没 有 使 用 正 确 的 字 符 串 或 modem 初 使 化 出 错 ,pppd 会 把 每 一 步 的 操 作 级 在
/ v a r / l o g / m e s s a g e s 文 件 中 ,你 可 以 m o r e , t a i l 或 c a t 来 查 看 ,对 于 p p p d 操 作 的 描
述 ,如 果 连 接 成 功 , 它 会 列 出 I P 地 址 。 下 列 的 命 令 将 显 示 p p p 操 作 , 完 成 后 , 用
CTRL-C 键 回 钮 提 示 符 下 。
$tail -f/var/log/messages
下 面 是 一 个 简 单 的 ppp 操 作 ,显 示 了 pppd 和 chat 注 册 到 远 程 系 统 时
/ v a r / l o g / m e s s a g e s 文 件 中 的 内 容 ,当 看 到 本 地 和 远 程 系 统 的 IP 地 址 时 , 连 接 已 经
建 立 。键 入 C T R L - C 结 束 报 告 ,也 可 以 使 用 几 个 不 带 - f 选 项 的 t a i l / v a r / l o g / e s s a g e s
命 令 ,可 以 使 不 用 使 用 C T R L - C 。
用 d i s c o n n e c t 选 项 击 活 p p p d ,断 开 p p p 连 接 , 必 须 用 C h a t 指 示 m o d e m 挂
机 , 你 可 能 必 须 键 入 H O 等 modem 命 令 一 定 要 包 括 modem 设 备 行 或
/dev/modem 。
# pppddisconnect 'Chat" " +++ATHO OK' dev/cua1
有 几 种 方 法 自 动 完 成 这 一 过 程 ,你 可 以 创 建 一 个 含 有 期 望 回 答 对 的 C h a t 文
件 ,也 可 以 把 整 个 p p p d 命 令 放 在 一 个 S h e l l 脚 本 里 ,单 独 使 用 S h e l l 脚 本 名 来 执
行 全 部 命 令 ,20 章 详 述 了 其 它 的 特 点 。

3.9.2Ezppp
使 用 E z p p p 程 序 , 可 以 不 必 亲 自 配 置 连 接 。J a y p a i n t o r 编 写 的 E z p p p 使 P P P
配 置 过 程 与 在 W i n d o w s 9 5 中 , 配 置 I n t e r n e t S e t u p W i n z a r d 一 样 简 单 ,屏 幕 出 现
要 求 键 入 Internet 和 m o d e m 信 息 的 , 对 话 框 , 一 旦 配 置 完 成 , 只 要 单
击 ”C O N N E C T ”。 按 钮 连 接 就 被 完 成 了 。 E z p p p 是 在 超 级 用 户 下 运 行 的 , 但 需 要
系 统 上 其 它 用 户 可 以 使 用 这 些 专 门 文 件 的 允 许 设 置 ,见 / u s r / d o c / e x p p p * 目 录 下 的
文件。它也包含了你可用网络浏览器浏览的详细信息。
Ezpppp 并 没 有 存 放 在 你 的 光 盘 中 。 但 可 能 过 rpm-i 命 令 来 下 载 它 的 R P M
软 件 包 并 安 装 它 们 。 这 些 软 件 包 放 在 /pub/contrib/i386 目 录 中 ftp.redhat.com 下
的 R e d h a t C o n t r i b 目 录 下 。 目 前 ,这 个 程 序 是 二 级 发 行 ,但 仍 很 稳 定 , E z p p p 网 页
放 在 w w w . s e v . n e t / ~ c a m e r o n / e x p p p 网 址 下 (你 可 以 通 过 第 1 章 表 1-3 所 列 的
L i n u x 网 页 资 源 来 连 接 它 ) 。 在 这 里 ,可 以 发 现 更 多 的 信 息 和 E z p p p H o w - T o 文 件 ,
并 下 载 软 件 )。 这 部 分 描 述 了 要 求 使 用 Q T 共 享 库 第 一 版 本 — — 二 级 发 行 9 的 安
装 和 使 用 。 Q T 共 享 库 也 在 Redhat Contrib 目 录 下 由 rpm 配 置 并 自 动 安 装 。 现
在 可 获 得 E z p p p 的 最 新 版 本 ,包 括 静 态 和 非 静 态 的 版 本 , 如 果 下 载 非 静 态 版 本 ,不
必 使 用 QT 库 。
下 面 的 例 子 是 使 用 ftp 从 f t p . r e d h a t . c o m 网 址 上 下 载 E z p p p 用 c d 命 令 、 用
户可转到 放 置 Linux 软 件 的 /pub/Contrib/i386 目 录 下 。 这 个 目 录 包 含 大 量 软 件
包。
键入 L s 和 带 通 配 符 的 文 件 包 开 头 几 个 字 符 ,可 以 列 出 准 备 获 得 的 软 件 包 在 这
个例子中 用 Ls ezppp*显 示 Ezppp 软 件 的 全 名 。 用 get 命 令 下 载 Ezppp RPM
文件然后 用 另 一 个 get 命 令 下 载 Q T 库 。 hash 命 令 用 于 下 载 大 的 文 件 。 它 为 每
个接收到 的 数 据 包 设 置 一 个 h a s h 标 志 使 你 了 解 ftp 正 在 工 作 。
一 旦 下 载 后 ,你 能 用 r p m - i 命 令 来 安 装 R P M 软 件 包 。
$ rpm-i ezpppp-1.0139-z.i386.rpm
$ rpm-i qt-1.31-1.i386.rpm
你 安 装 了 E z p p p 后 ,可 能 打 开 X t e r m 窗 口 键 入 e z p p p 命 令 来 运 行 这 个 程 序 。
你 也 能 通 过 fvwm 程 序 菜 单 来 运 行 它 。 此 菜 单 放 在 应 用 程 序 菜 单 里 的 其 它 应 用
菜 单 中 。 图 3 - 1 0 显 示 了 主 屏 幕 单 击 ”c o n f i g u r e ”按 钮 来 设 置 一 个 连 接 。 屏 幕 会 出
现 带 有 一 个 面 板 的 配 置 窗 口 , 就 好 像 W i n d o w 9 5 的 配 置 工 具 一 样 ,一 个 面 板 在 最
前 端 。 其 它 面 板 的 标 签 显 示 在 上 部 ,在 配 置 窗 口 里 有 三 个 面 板 。 一 个 帐 号 ,另 一
个 调 制 解 调 器 的 设 置 ,还 有 一 个 是 一 般 的 特 点 。 帐 号 包 括 了 你 的 I n t e r n e t 信 息 。
根 据 你 开 设 不 同 I n t e r n e t 服 务 商 的 个 数 。 你 可 以 有 多 个 帐 户 (大 部 分 的 用 户 只 有
一 个 帐 号 ) 。 单 击 ”N e w ”按 钮 创 建 帐 号 。 这 会 出 现 带 有 一 套 I n t e r n e t 信 息 面 板 的
窗 口 。 拨 号 面 板 为 了 键 入 是 像 用 于 连 接 Internet 电 话 号 码 等 的 连 接 信 息 的 地 方 。
确 定 键 入 一 个 用 于 连 接 的 名 子 , 它 可 以 是 任 何 名 。 ”A r g n m e n t”按 钮 将 产 生 一 个 可
键 入 PPP 要 点 的 另 一 个 窗 口 ,20 章 详 述 了 P P P 保 护 选 项 。 通 常 只 需 要 已 经 被
键 入 的 -detach 和 defaultrout 选 项 。
图 3-10EzPPP main window
大 部 分 的 准 标 选 项 做 为 缺 省 值 ,图 3-11 显 示 了 Configration,New Account,
和 A r g u m e n t s 窗 口 在 N e w A c c o u n t ( 新 帐 号 ) 窗 口 中 IP 面 板 用 于 键 入 任 何 本 地 和
远 处 的 IP 地 址 ,和 子 网 屏 蔽 。 每 个 选 项 有 一 个 动 态 ( D y n a m i c ) 和 静 态 ( s t a t i c )的 确
认 按 钮 。 并 且 动 态 的 按 自 己 被 缺 省 设 置 。 如 果 你 的 Internet 服 务 商 提 供 你 一 个
动 态 的 IP 地 址 和 子 网 屏 蔽 号 。 你 可 以 离 开 这 个 面 板 ,否 则 ,如 果 你 有 一 个 静 态 的
本 地或远程地址、你就必须用这个面板键入它们。
图 3-11 配 置 Ezppp, 新 帐 号 、 和 CustomizepppD Argument 窗 口
单 击 标 有 D N S 的 标 题 栏 ,屏 幕 出 现 了 域 名 服 务 器 面 板 。 在 这 里 ,键 入 I n t e r n e t
服 务 商 的 域 名 服 务 器 的 I P 地 址 。 单 击 IP 地 址 的 方 框 。 键 入 地 址 。 再 单 击 ”A d d ”
按 钮 增 加 它 到 域 名 服 务 器 的 列 表 中 。 图 3 - 1 2 表 明 了 带 有 IP 地 址 例 子 的 面 板 。

图 3-12Ezpppp 域 名 服 务 器 面 板
然 后 ,你 必 须 创 建 一 个 可 以 输 入 用 户 名 和 口 令 的 注 册 文 件 ,以 便 能 和 Internet
服 务 器 相 连 。 为 了 做 到 这 一 点 ,你 可 以 单 击 S c r i p t 标 题 栏 产 生 S c r i p t 面 板 。 你 会
看 到 一 个 叫 L o g i n S c r i p t 的 面 板 ,其 中 有 几 个 按 钮 和 方 框 ,可 以 用 S e n d 和 R e c e i v e
两个指令创建一个执行如下任务的简单文本。
Receive ogin:
Send username
Receive word
Send password
你 将 看 到 一 个 E x p e c t 按 钮 ,这 通 常 是 一 个 带 有 几 个 可 能 列 出 注 册 指 令 选 项 的
一 个 弹 出 式 菜 单 , 当 选 中 跳 出 式 菜 单 , 选 项 会 出 现 , 包
括 : E x p e c t , S e n d , P a u s e , H a n g u p 和 A n s w e r。 S e n d 和 E x p e r t 指 令 通 常 发 送 和
期 望 接 收 一 个 字 符 串 。 如 果 你 想 发 送 一 个 指 令 , 选 择 S e n d 选 项 ,期 望 收 到 指 令 ,
选 择 E x p e c t 选 项 。 按 钮 右 侧 的 方 框 是 键 入 你 想 操 作 的 指 令 的 地 方 。 例 如 ,如 果
期 望 收 到 ”o g i n ”指 令 , 你 应 选 择 E x p e c t 选 项 并 在 方 框 里 键 入 o g i n 。 单 击 A d d 按
钮 , 把 它 放 在 文 件 中 , 在 A d d 按 钮 下 的 框 中 你 会 看 到 ”e x p e c t”项 目 中 对 应 ”o g i n ”。
如 果 你 单 击 此 项 ,按 R e m a v e 按 钮 ,可 将 其 删 除 。 如 果 打 算 插 入 一 个 指 令 用 I n s e r t
按钮。
大 部 分 注 册 文 本 只 需 包 含 两 对 发 送 和 期 望 收 到 指 令 ,一 个 是 为 了 注 册 名 ,另 一
个 是 为 了 口 令 , 第 一 个 口 令 是 期 望 收 到 ”o g i n ”第 二 个 口 令 是 发 送 用 户 名 ,第 三 个 口
令 期 望 收 到 文 本 ”w o r d ”,第 四 个 发 送 口 令 。 根 据 I n t e r n e t 供 应 商 的 不 同 , 这 可 能 会
有 一 点 变 化 。 图 3 - 1 3 表 明 了 一 个 注 册 文 本 的 例 子 。 ”m y - l o g i n - n a m e ”做 为 用 户
名 ”m y - p a s s w o r d ”做 为 口 令 。
图 3-13Ezppp 注 册 文 本 面 板
你 已 经 完 成 了 键 入 I n t e r n e t 信 息 ,单 击 O K 按 钮 关 闭 S o r i p t 和 新 帐 户 窗 口 ,在
Configure 窗 口 中 单 击 调 制 解 调 器 标 题 打 开 调 制 解 调 器 面 板 ,确 定 调 制 解 调 器 的
端 口 是 正 确 的 ,以 / d e v / c u a 开 头 附 加 从 0 到 3 的 数 字 ,在 微 机 中 ,有 四 个 端 口 供 选
择 通 常 一 个 调 制 解 调 器 与 第 2 个 或 第 4 个 端 口 相 连 。 名 字 分 别 是 /dev/cua1 和
/ d e v / c u a 3 (计 数 从 0 开 始 , 所 以 端 口 1 是 c u a o , 端 口 2 是 c u a 1 ) 。
可 以 设 置 / d e v / m o d e m 做 为 端 口 的 别 名 。 然 后 ,你 需 要 核 对 拨 号 前 缀 和 一 些
特 殊 设 置 。单 击 E d i t 按 钮 产 生 一 个 窗 口 , 显 示 一 系 列 的 配 置 m o d e m 的 方 框 , 通 常 ,
一 些 缺 省 设 置 已 被 键 入 再 分 别 核 对 Connect 选 项 和 Hangup 选 项 。 缺 省 连 接
C O N N E C T 对 于 大 多 数 ISP 都 是 有 效 的 。 Hangup 字 符 串 是 大 部 分 modem 使
用的挂执字符串。
完 成 后 ,单 击 O K 按 钮 ,准 备 使 用 E z P P P 。 单 击 主 E z p p p 窗 口 中 的 C o n n e c t
按 钮 ,如 果 出 现 问 题 ,单 击 调 试 按 钮 ,出 现 一 个 显 示 连 接 过 程 和 错 误 的 窗 口 ,当
E z P P P 完 成 一 个 连 接 ,它 会 显 示 接 通 的 时 间 ,按 D i s c o n n e c t 按 钮 , 可 退 出 E z P P P
程序。
你 也 可 以 在 fvwm 工 具 栏 中 设 置 一 个 按 钮 , 单 击 它 时 启 动 E z P P P 。
/U S R / l i b / X 1 1 / f v w m 目 录 下 的 S y s t e m . f v w m r c . g g o d s t u f f 文 件 末 尾 键 入 下 面 一 行
(在 f v w m 工 作 地 点 菜 单 里 的 工 作 平 台 菜 单 下 选 择 G o o d S t u f f 来 显 示 工 具 栏 )。
*GoodStuff E z P P P Game2.xpm E x e c "" Xlanrch e z p p p
E z P P P 是 运 行 在 超 级 用 户 帐 号 下 。 但 是 ,对 于 m o d e m 设 备 设 置 允 许 权 限 ,可
让 普 通 用 户 操 作 EzPPPP PPPd 程 序 和 域 名 配 置 文 件 可 以 允 许 普 通 用 户 使 用 它
们 ,第 7 章 详 述 了 允 许 权 限 , 看 / u s r / d o c / e z p p p 目 录 下 的 E 2 P P P H o w T o 文 件 。
用 c h m o d 命 令 和 数 字 6 6 6 来 获 得 使 用 调 制 解 调 器 ,下 面 的 例 子 设 置 了 连 接 C O M 2
端 口 /dev/cua1 的 调 制 解 调 器 允 许 权 限 。
# chmod 666/dv/cua1
用 chomd 命 令 +s 选 项 可 以 设 置 pppd 程 序 的 使 用 权 限 。
# chmod +s/usr/sbin/pppd
下 面 的 例 子 是 确 定 pppd 命 令 只 被 超 级 用 使 用 。
# chown root.root pppd
可 以 用 ls-l 命 令 查 看 p p p d 命 令 的 使 用 权 限
# ls -1/usr/sbin/pppd
-rwsr-sr-x | root voot 8460+Avg 14 1996
/usr/sbin/pppd
要 使 用 户 可 以 增 加 域 名 服 务 器 ,必 须 允 许 普 通 用 户 可 以 使 用 /etc/resolv.conf
文件。这是一个选择。超级用户可以容易地增加域名服务器。
#chmod 666/etc/ resolv.conf
每 个 用 户 可 以 用 前 面 的 几 个 步 骤 创 建 他 们 的 E z P P P 帐 号 ,用 户 h o m e 目 录
下 的 .ezpppre 文 件 包 含 了 这 些 信 息 ,事 实 上 ,不 同 用 户 可 以 E z P P P 与 不 同 的
Internet 服 务 器 相 连 。

3.10 电 子 邮 件 :XFMail

一 旦 你 与 I n t e r n e t 相 连 ,就 可 以 用 X F M a i l 程 序 从 I n t e r n e t 服 务 商 的 M a i l 服
务 器 中 收 到 邮 件 ,大 部 分 的 I S P 用 P O P 服 务 器 接 收 邮 件 , 首 先 ,找 到 服 务 器 的 地 址 ,
从 f v w m 工 作 地 点 菜 单 中 选 择 f v w m G o o d S t u f f 工 具 栏 ,单 击 X F M a il 按 钮 开 始
X F M a il 程 序 。 或 者 在 一 个 终 端 窗 口 内 键 入 x f m a i l 。 当 启 动 X F M a i l 后 ,会 出 现 一
系 列 用 于 一 般 配 置 的 配 置 窗 口 。 单 击 O K 键 接 收 缺 省 值 。 选 择 M ISC 菜 单 中 的
Config 选 项 ,配 置 与 P O P 服 务 器 的 连 接 。 这 会 打 开 一 个 带 有 几 个 完 成 不 同 配 置
任 务 按 钮 的 窗 口 。 单 击 P O P 标 题 , P O P 窗 口 被 激 活 ,在 这 里 你 可 以 键 入 P O P 服
务 器 的 I n t e r n e t 地 址 ,用 户 名 和 口 令 。

图 3-14XFMail
在 X F M a i l 窗 口 中 ,按 钮 执 行 了 各 种 邮 件 任 务 ( 见 图 3 - 1 4 ) 。 如 果 在 按 钮 上 放 置
鼠 标 箭 头 ,一 个 解 释 按 钮 功 能 的 标 鉴 将 显 现 ,单 击 正 确 按 钮 , 可 选 则 查 看 信 件 ,信 件
的 标 题 选 被 显 示 出 来 ,双 击 一 个 标 题 ,屏 幕 会 显 示 邮 件 的 全 部 信 息 。

3 . 1 1 X - W in d o w s 和 网 络 配 置

用 网 络 配 置 工 具 ,可 以 增 加 和 改 变 你 的 网 络 配 置 。 如 果 你 正 在 与 一 个 网 络 相
连 , 且 安 装 时 没 有 配 置 它 ,可 以 用 这 个 工 具 执 行 对 网 络 的 配 置 , 在 超 级 用 户 的 工 作
台 上 , A d m i n - T o o l s 文 件 夹 中 的 n e t c f g 图 标 代 表 网 络 配 置 工 具 ,双 击 图 标 ,配 置 窗
口 就 被 激 活 ,20 章 详 细 讨 论 了 netcfg 工 具 的 使 用 。
如 果 你 不 能 启 动 X - W i n d o w s ,可 能 是 因 为 系 统 没 有 安 装 正 确 的 显 示 驱 动 程 序 ,
尽 管 X F 8 6 S e t u p 程 序 提 供 了 大 多 会 显 示 卡 的 驱 动 程 序 ,但 有 几 个 是 它 不 支 持 的 ,
详 见 2 1 章 和 附 录 C 。 也 可 使 用 Xconfigurator 或 X86Config 等 其 它 X-W indows
配 置 程 序 ,它 们 是 用 行 来 配 置 的 工 具 。

3.12 总 结 :Linux 系 统 的 启 动 和 退 出

通 过 在 注 册 提 示 符 下 键 入 注 册 名 在 口 令 提 示 符 下 键 入 口 令 ,来 使 用 L i n u x 系
统 。 一 旦 注 册 后 ,屏 幕 显 示 可 以 键 入 命 令 的 命 令 行 界 面 。 命 令 带 有 选 项 和 要 点 , 在
命 令 行 键 入 命 令 再 回 车 来 执 行 命 令 ,当 完 成 后 , 用 l o g o u t 命 令 来 退 出 系 统 ,注 册 提
示 符 重 新 出 现 如 果 要 关 闭 计 算 机 ,必 须 用 C T R L - A L T - D E L 键 来 关 闭 L i n u x 系 统 。
操 作 Linux 系 统 时 ,一 定 要 记 住 必 要 的 启 动 和 关 闭 步 骤 ,采 取 下 述 2 个 步 骤 可
进 入 L i n u x 工 作 平 台 。 先 启 动 L i n u x 系 统 ,注 册 、 再 用 s t a r t x 命 令 启 动 C a l d e r a
工 作 平 台 的 X - W i n d o w s ,退 出 工 作 平 台 ,注 锁 帐 号 , 然 后 才 能 用 C T R L - A L T - D E L
键关闭系统。
你 也 可 以 用 一 个 窗 口 管 理 器 与 你 们 的 系 统 交 互 ,Startx 命 令 起 动 Caldera 工
作 平 台 , 它 使 用 f v w m 窗 口 管 理 器 和 它 自 己 的 文 件 和 程 序 管 理 器 ,从 File 菜 单 中 选
择 E x i t D e s k t o p 来 退 出 工 作 平 台 ,下 面 列 出 了 操 作 L i n u x 系 统 的 所 有 步 骤 ,记 住 注
册和图形用户界面的起动过程和图形用户界面的退出、注锁帐号和关机过程。
1 .启 动 计 算 机
2 .在 L I L O 提 示 符 下 键 入 L i n u x ,回 车
LILO:Linux
3 .在 注 册 和 口 令 提 示 符 下 分 别 键 入 用 户 名 和 口 令 。
Login: richlp
password:
4 .一 旦 注 册 后 ,出 现 s h e l l 命 令 行 提 示 符 $ 。
$
5 .在 S h e l l 提 示 符 下 键 入 S t a r t x 命 令 、 启 动 X - W i n d o w s 图 形 用 户 界 面 。
$ startx
这 个 命 令 安 装 了 X-Windows 图 形 用 户 界 面 ,包 括 X-W indows, 管 理 器 和
Caldera 工 作 平 台 外 形 。 他 们 的 集 合 叫 做 Caldera 工 作 平 台 。
6 .选 择 File 菜 单 中 的 E x i t D e s k T o p 选 项 退 出 工 作 平 台 ,即 退 出 X - W i n d o w s
图形用户界面、回到窗口管理器。
7 .单 击 屏 幕 上 任 一 键 ,跳 出 窗 口 管 理 器 菜 单 ,选 择 E x i t D e s k t o p 退 出 窗 口 管 理
器 。 这 时 出 现 一 个 子 菜 单 、 选 择 Q u i t D e k s k t o p ,回 到 命 令 行 提 示 符 。
$
8 .在 命 令 行 键 入 e x i t 或 l o g o u t 再 回 车 来 注 销 帐 号 。
$ logout
9 .然 后 可 以 再 以 其 它 用 户 名 注 册 另 一 个 帐 号 ,或 用 超 级 用 户 注 册 帐 号 。
login:
1 0 .现 在 可 以 用 C T R L - A L T - D E L 键 来 关 闭 系 统 。
1 1 .当 屏 幕 出 现 空 白 ,计 算 机 会 重 新 启 动 , 这 时 ,可 以 关 闭 计 算 机 。
你可能需要用超级用户身份执行一些如创建新用户和安装软件的系统管理
任 务 , 以 超 级 用 户 身 份 注 册 ,然 后 启 用 工 作 平 台 ,使 用 系 统 管 理 工 具 完 成 这 些 任
务 。 例 如 ,用 U s e r c f g 允 许 你 创 建 和 删 除 用 户 , n e t c f g 允 许 你 配 置 你 的 网 络 连 接 。
L i n u x 的 C a ldera 分 支 部 门 把 软 件 组 织 易 用 glint 工 具 和 r p m 命 令 安 装 和 拆
卸 的 软 件 包 。 g l i n t 工 具 放 在 工 作 平 台 上 。 在 命 令 行 ,可 用 r p m 命 令 执 行 相 同 的 操
作 ,表 3 - 1 列 出 了 r p m 命 令 的 选 项 。
表 3-1Redhat Package Manager(RPM)
操作方式 效果
表 3-2Linux Resoures W eb Pages(Links)and RPM Software ftp Sites
Linux RPM 软 件 目录 描述
ftp 站 点
第 4 章 窗 口 管 理 器 和 桌 面 :X-W i n d o w s

不 用 命 令 行 的 界 面 ,你 可 以 用 基 于 X - W i n d o w s 的 图 形 用 户 界 面 来 和 L i n u x 系
统 进 行 交 互 。 采 用 这 种 界 面 你 可 以 使 用 图 标 ,窗 口 , 和 菜 单 来 发 布 命 令 和 运 行 程
序 。 和 普 通 的 基 于 个 人 计 算 机 的 图 形 用 户 界 面 譬 如 像 W insows 或 者 是 M a c O S
不 同 的 是 ,Linux 和 Unix 系 统 把 图 形 用 户 界 面 分 成 三 个 分 离 的 部 分 :X-Windows,
窗 口 管 理 器 ,和 程 序 /文 件 管 理 器 。 X - W i n d o w s 是 底 层 的 标 准 图 形 工 具 , 它 提 供 所
有 基 本 的 图 形 操 作 ,譬 如 像 打 开 窗 口 或 者 显 示 图 象 。 一 个 窗 口 管 理 器 负 责 处 理 窗
口 的 操 作 ,像 改 变 大 小 或 者 移 动 窗 口 之 类 。 窗 口 管 理 器 在 窗 口 被 显 示 的 方 法 上 有
所 不 同 ,使 用 不 同 的 边 框 和 窗 口 菜 单 。 但 是 所 有 的 这 一 切 都 是 采 用 了 同 样 的 底 层
X - W i n d o w s 图 形 工 具 。 文 件 管 理 器 负 责 处 理 文 件 的 操 作 ,它 使 用 图 标 和 菜 单 , 和
一 个 程 序 管 理 器 来 运 行 程 序 ,通 常 允 许 你 从 一 个 工 具 条 上 选 取 常 用 的 操 作 。 不 像
窗 口 管 理 器 ,文 件 和 程 序 管 理 器 可 以 在 它 们 的 功 能 上 差 别 很 大 。 Caldera 桌 面 是
一 个 商 业 级 别 的 文 件 和 程 序 管 理 器 。 而 C a ldera 桌 面 和 Xfm 文 件 管 理 器 都 可 以
运 行 在 fvwm 窗 口 管 理 器 上 。
所 有 L i n u x 和 U n ix 系 统 都 使 用 同 样 标 准 的 底 层 X - W i n d o w s 图 形 工 具 。 这
意 味 着 ,在 大 多 数 情 况 下 ,基 于 X - W i n d o w s 的 程 序 可 以 运 行 在 任 何 一 个 窗 口 管 理
器 和 桌 面 的 系 统 上 。 基 于 X -W i n d o w s 的 软 件 常 常 可 以 在 L i n u x 和 U n i x 的 ftp 站
点 上 可 以 看 到 ,它 们 通 常 标 注 为 X 1 1 。 你 可 以 下 载 这 些 包 然 后 在 你 的 C a l d e r a 桌
面 上 或者 是 在 f v w m 下 直 接 运 行 它 们 。 有 些 可 能 已 经 是 L i n u x 的 二 进 制 形 式 ,你
可 以 下载 ,安 装 ,然 后 直 接 运 行 。 另 一 些 将 会 是 源 码 的 形 式 。 用 一 些 简 单 的 命 令 它
们 很 容易 被 设 置 ,编 译 ,然 后 安 装 在 你 的 系 统 上 。 一 些 应 用 程 序 , 像 M o t i f 应 用 程 序 ,
可 能 还需 要一些特别的库。

4.1 窗 口 、 文 件 和 程 序 管 理 器

采 用 一 个 窗 口 管 理 器 你 可 以 用 你 的 鼠 标 来 完 成 象 打 开 ,关 闭 ,改 变 大 小 ,和 移 动
窗 口 这 样 的 窗 口 操 作 。 有 几 种 窗 口 管 理 器 可 以 用 在 L i n u x 系 统 上 (如 表 4 - 1 )。 一
些 更 通 用 的 窗 口 管 理 器 象 自 由 虚 拟 窗 口 管 理 器 (Free Virtual Windows
Manager(fvwm)),fvwm95,LessTif(mwm),Motif(mwm),Xview(olwm), 和
A f t e r S t e p ( a f t e r s t e p )。 f v w m 是 R o b e r t N a t i o n 写 的 用 于 绝 大 多 数 L i n u x 系 统 上
的 主 窗 口 管 理 器 。它 使 用 简 单 ,功 能 强 大 , 而 且 灵 活 . f v w m 9 5 是 一 个 有 着 W i n d o w s
9 5 的 用 户 界 面 的 f v w m .它 使 用 和 W i n d o w s 9 5 操 作 系 统 使 用 的 相 类 似 的 窗 口 ,任
务 栏 ,和 菜 单 。 将 来 的 版 本 还 将 包 括 一 个 允 许 使 用 图 标 来 显 示 和 操 作 文 件 的 文 件
管 理 器 。 LessTif 是 Motif 的 一 个 免 费 的 克 隆 。 所 有 Motif 的 应 用 程 序 都 可 以 在
LessTif 下 运 行 。 Motif 是 一 个 和 它 所 使 用 的 Unix 一 样 的 商 业 产 品 。 Xview 是 一
个 L i n u x 版 本 的 S u n 系 统 的 O p e n L o o k 界 面 ( 不 是 S o l a r i s )。 A f t e r S t e p 是 用 于
NeXT 操 作 系 统 上 的 NeXTSTEP 界 面 的 一 个 克 隆 。
窗 口 管 理 器 在 底 蹭 的 X-Windows 图 形 工 具 之 上 运 行 。 X-Windows 实 际 上
提 供 了 让 你 打 开 ,移 动 和 关 闭 窗 口 以 及 显 示 菜 单 和 选 择 图 标 这 样 的 基 本 操 作 。
f v w m 和 X v i e w 用 各 自 的 方 式 管 理 这 些 操 作 ,提 供 不 同 的 界 面 以 供 选 择 。 所 有 的
窗 口 管 理 器 ,无 论 它 们 外 观 上 有 多 么 大 的 差 别 ,都 是 使 用 X - W i n d o w s 工 具 。 从 这
个 意 义 上 说 ,Linux 不 是 只 能 绑 定 于 一 种 图 形 用 户 界 面 。 在 同 一 个 Linux 系 统 上 ,
一 个 用 户 可 以 使 用 f v w m 窗 口 管 理 器 , 而 另 一 个 用 户 可 能 使 用 X v i e w ,还 有 可 能 使
用 Motif。
窗 口 管 理 器 一 般 仅 仅 提 供 非 常 基 本 的 窗 口 管 理 操 作 ,像 打 开 ,移 动 ,和 对 窗 口 改
变大小。而文件管理器和程序管理器让您用图标和菜单来管理和运行程序。使
用 文 件 管 理 器 ,你 可 以 在 不 同 的 目 录 窗 口 中 拷 贝 ,移 动 ,或 者 删 除 文 件 。 使 用 程 序
管 理 器 ,你 可 以 用 任 务 栏 和 程 序 图 标 来 执 行 命 令 和 运 行 程 序 。 一 个 桌 面 程 序 利 用
文 件 管 理 器 和 程 序 管 理 器 的 功 能 来 提 供 一 个 有 菜 单 和 图 标 的 虚 拟 桌 面 ,用 以 访 问
文 件 和 管 理 程 序 。 Caldera 桌 面 就 是 这 样 一 个 桌 面 程 序 。 表 4-1 列 出 了 几 种 其
他 的 桌 面 ,许 多 都 可 以 从 W e b 站 点 上 免 费 的 获 得 。
有 些 窗 口 管 理 器 的 功 能 增 强 包 括 了 桌 面 的 一 些 特 点 。 在 许 多 Linux 系 统 上
使 用 的 fvwm 就 在 窗 口 管 理 的 功 能 之 外 还 加 上 了 程 序 管 理 的 功 能 。 它 有 一 个 任
务 栏 和 一 个 工 作 区 菜 单 让 你 可 以 用 来 访 问 你 所 有 的 X-W indows 程 序 。 使 用 菜 单
或 者 是 任 务 栏 ,你 可 以 在 f v w m 中 直 接 运 行 任 何 X - W i n d o w s 程 序 。 其 他 的 窗 口
管 理 器 ,像 f v w m 9 5 ,提 供 了 一 个 和 W i n d o w s 9 5 一 样 的 任 务 栏 和 初 始 菜 单 的 桌 面
界 面 。 它 基 于 f v w m 2 ,但 是 使 用 W i n d o w s 9 5 的 界 面 。 除 了 程 序 管 理 , 它 还 计 划
最 终 支 持 一 个 名 叫 探 索 者 (explorer)的 文 件 管 理 器 。 使 用 f v w m 9 5 ,你 可 以 像 你 在
W indows 95 中 那 样 显 示 文 件 和 目 录 的 图 标 。
4.2 启 动 和 退 出 X - W i n d o w s 窗 口 管 理 器 和 文 件 桌 面

像 在 前 一 章 中 指 出 的 那 样 ,你 在 命 令 行 方 式 下 输 入 s t a r x 启 动 X - W i n d o w s 。
你 的 X-W indows 服 务 器 将 在 窗 口 管 理 器 之 后 加 载 。 你 的 OpenLinux 系 统 现 在
被 设 置 为 在 C a ldera 桌 面 中 自 动 加 载 窗 口 管 理 器 。 桌 面 运 行 在 窗 口 管 理 器 之 上 。
窗 口 管 理 器 的 背 景 颜 色 是 淡 蓝 色 。 你 可 以 在 Caldera 加 载 的 时 候 看 到 这 些 。
C a l d e r a 桌 面 是 一 个 棕 色 或 者 是 灰 色 的 窗 口 ,上 方 是 任 务 栏 ,在 窗 口 中 是 程 序 的 图
标 。 你 可 以 用 你 的 鼠 标 来 访 问 菜 单 ,打 开 窗 口 ,以 及 运 行 程 序 。
你 通 过 从 文 件 菜 单 里 选 择 退 出 桌 面 选 项 来 退 出 Caldera 桌 面 。 象 许 多 窗 口
应 用 程 序 一 样 , 它 的 桌 面 在 屏 幕 的 上 方 有 一 个 菜 单 栏 。 单 击 ”文 件 ”就 可 以 下 拉 菜
单。退出桌面是最后一个选项。
当 你 选 择 退 出 桌 面 的 时 候 ,Linux 仅 仅 关 闭 C a ldera 桌 面 。 它 并 不 关 闭 f v w m
窗 口 管 理 器 。 Fvwm 窗 口 管 理 器 在 你 的 屏 幕 上 显 示 为 深 蓝 色 的 背 景 。 你 必 须 退
出 窗 口 管 理 器 才 能 关 闭 X-W indows 退 回 到 Linux 命 令 行 方 式 界 面 。
要 关 闭 f v w m 窗 口 管 理 器 ,首 先 弹 出 f v w m 工 作 区 菜 单 。 通 过 在 深 蓝 色 的 背
景的任何一点上单击就可以看到这个菜单。你必须点住它然后往下拉一点才能
让 这 个 菜 单 停 留 在 屏 幕 上 。 选 择 这 个 菜 单 的 最 后 一 项 ,离 开 桌 面 。 这 个 操 作 打 开
一 个 子 菜 单 ,它 其 中 的 一 个 选 项 就 是 退 出 桌 面 。 选 择 这 个 就 会 退 出 窗 口 管 理 器 和
X - W i n d o w s。 你 接 着 就 可 以 回 到 给 你 一 个 $ 提 示 符 的 命 令 行 方 式 界 面 。 在 命 令 行
方 式 下 ,你 可 以 在 任 何 时 候 通 过 输 入 starx 命 令 来 启 动 f v w m 。
你 还 可 以 在 f v w m 中 启 动 其 他 的 窗 口 管 理 器 或 者 桌 面 ,以 及 显 示 f v w m 的 任
务栏。在工作区菜单中选择桌面选项。它将打开一个窗口管理器的子菜单。 这
个 菜 单 中 的 ”开 启 任 务 ”选 项 将 显 示 f v w m 的 任 务 栏 ,其 中 包 括 一 些 X - W i n d o w s 经
常 访 问 的 程 序 的 图 标 , 譬 如 象 你 的 万 维 网 浏 览 器 。 ”S t a r t L o o k i n g G l a s s ”选 项 开
启 C a l d e r a 桌 面 ( L o o k i n g G l a s s 是 C a l d e r a 桌 面 的 另 一 个 名 字 )。 窗 口 管 理 器 的
选项将带出一个子菜单列出你的系统上已经安装的其他窗口管理器。通过在 这
个 菜 单 里 选 中 其 它 启 动 的 窗 口 管 理 器 来 启 动 它 。 fvwm 已 经 被 设 置 成 在 它 的 菜 单
中 加 入 了 几 种 常 用 的 窗 口 管 理 器 。 但 是 ,olwm Xview 窗 口 管 理 器 还 不 是 完 全 的
Xview 窗 口 管 理 器 。 你 必 须 首 先 从 网 上 下 载 然 后 安 装 它 们 。

4.2.1 系 统 设 置 的 工 具
为 在 X -W i n d o w s 下 运 行 设 计 的 一 系 列 容 易 使 用 的 设 置 工 具 ,使 你 可 以 完 成 象
安 装 软 件 , 设 置 打 印 机 , 或 者 添 加 新 用 户 之 类 的 任 务 。 X F 8 5 S e t u p ,就 是 用 来 设 置
X - W i n d o w s 的 这 样 一 个 工 具 ,就 像 g l i n t 用 来 安 装 软 件 一 样 。 L i s a 是 一 个 菜 单 驱
动 的 管 理 工 具 ,它 包 括 了 系 统 管 理 的 各 个 方 面 。 在 R e d h a t L i n u x 的 发 布 中 还 有
一 些 基 于 窗 口 的 工 具 提 供 了 对 打 印 机 ,用 户 , 和 文 件 系 统 很 方 便 的 设 置 。 这 些 工 具
将 在 第 3 , 7 , 9 ,和 1 2 章 加 以 讨 论 。 这 些 工 具 可 以 从 C a l d e r a 桌 面 或 者 是 f v w m 菜
单 以 及 f v w m 任 务 栏 中 启 动 。 为 访 问 这 些 工 具 ,首 先 你 必 须 用 r o o t 登 陆 。 然 后 用
s t a r x 命 令 启 动 X - W i n d o w s。 从 C a l d e r a 桌 面 你 可 以 看 到 一 个 名 为 管 理 工 具 的
图 标 。 双 击 它 打 开 这 个 窗 口 。 每 个 工 具 的 图 标 都 显 示 在 里 面 。 从 fvwm 窗 口 管
理 器 中 选 择 应 用 程 序 ,然 后 是 系 统 管 理 。 从 子 菜 单 中 选 择 你 想 要 的 工 具 。 f v w m
的任务栏有一个名为管理的按钮将带出一个系统设置的按钮条。对应于同样的
工 具 也 有 对 应 的 按 钮 ,象 g l i n e 和 X F 8 6 S t e u p 。 还 有 写 名 为 R H 工 具 的 按 钮 。 它
们 会 带 出 R e d h a d 工 具 的 按 钮 条 ,象 用 来 管 理 你 的 文 件 系 统 的 f s t o o l , 安 装 打 印 机
的 printtool, 和 设 置 你 的 网 络 的 netcfg 。 f s t o o l 没 有 设 计 成 和 自 动 m o u n t 的 守 护
进 程 a m d 一 起 工 作 , u s r c f g 也 没 有 设 计 被 用 于 N IS 网 络 。

4.3 窗 口 和 图 标

你 在 窗 口 中 运 行 程 序 , 显 示 信 息 ,和 对 文 件 列 表 。 一 个 窗 口 由 几 个 基 本 的 部 分
构 成。外面的边界包括改变大小的控制。还有不同的按钮可以让你控制窗口 的
大 小 或 者 关 闭 窗 口 。 在 边 界 的 内 部 是 窗 口 的 主 要 部 分 :题 目 栏 用 来 显 示 窗 口 的 名
字 ;菜单用来让你发布命令;窗口面板用来显示窗口的内容。
f v w m 窗 口 ,如 图 4 - 1 所 示 ,可 以 让 你 用 按 钮 和 改 变 大 小 区 域 来 改 变 它 的 大 小
和 形状。改变
大小区域是窗口的边界线。点住改变大小区域后移动鼠标来让窗口在高 度
和 宽度上变大和变小。
通 过 单 击 右 上 方 的 最 大 化 按 钮 ( 一 个 正 方 形 套 着 一 个 正 方 形 的 那 个 按 钮 )你 可
以 使 窗 口 充 满 整 个 屏 幕 。 要 把 窗 口 恢 复 到 原 来 的 大 小 ,只 需 要 再 次 单 击 最 大 化 按
钮 。
如 果 你 想 把 窗 口 变 成 一 个 图 标 ,可 以 单 击 最 小 化 按 钮 。 它 是 最 大 化 按 钮 边 上
那 个 小 正 方 形 中 间 有 一 点 的 按 钮 。 当 你 把 一 个 窗 口 变 成 图 标 以 后 ,你 可 以 双 击 这
个 图标来打开它。
你 可 以 通 过 选 定 它 的 题 目 栏 或 者 边 界 (不 是 角 落 )在 桌 面 上 移 动 任 何 窗 口 。 把
你 的 鼠 标 移 动 到 窗 口 的 题 目 栏 上 ,点 住 并 在 你 移 动 鼠 标 的 时 候 按 住 它 。 你 就 会 看
到 窗 口 被 移 动 了 。 当 你 到 达 你 想 要 的 位 置 的 时 候 ,松 开 鼠 标 的 按 钮 。 仅 仅 单 击 题
目 栏将把该窗口从层叠窗口中移动到最前。把鼠标移动到窗口的边界直到你看
见 鼠标指针变成一条短的直线。然后点击住边界并拖动鼠标指针。你会看到整
个 窗口被移动。
为 X - W i n d o w s 设 计 的 应 用 程 序 有 它 们 自 己 的 菜 单 , 按 钮 ,甚 至 在 它 们 窗 口 中
的 图标。在这样的程序中你通过菜单和图标来发布命令。如果你在运行一个象
编 辑 器 这 样 的 应 用 程 序 ,窗 口 的 内 容 就 是 菜 单 操 作 的 数 据 。 如 果 你 在 使 用 文 件 管
理 器 ,内 容 就 会 是 代 表 文 件 或 者 目 录 的 图 标 。 一 些 窗 口 ,象 终 端 窗 口 ,可 以 没 有 菜
单 。
你 可 以 同 时 打 开 几 个 窗 口 。 但 是 ,同 一 时 刻 , 只 能 有 一 个 窗 口 处 于 活 动 状 态 。
活 动 窗 口 的 边 界 是 紫 色 的 ,非 活 动 窗 口 边 界 是 灰 白 色 的 。 把 你 的 鼠 标 指 针 移 动 到
一 个 非 活 动 窗 口 上 可 以 使 它 成 为 一 个 活 动 窗 口 ,而 使 其 他 窗 口 成 为 非 活 动 窗 口 。
你 不 需 要 单 击 鼠 标 , 就 象 你 在 其 他 的 图 形 用 户 界 面 ,象 微 软 的 W i n d o w s 或 者 M a c
的 OS 中所做的那样。
层叠的窗口有时候会导致混乱。使窗口活动并不是自动的使它移动到最前。
一 个 活 动 的 窗 口 有 可 能 被 其 他 窗 口 部 分 的 遮 挡 。 要 把 一 个 窗 口 移 动 到 最 前 ,你 需
要 单击该窗口的题目栏。单击该窗口的其他任何一个地方只会使它变成一个活
动 窗 口 ,而 不 会 使 它 移 动 到 最 前 。
图标代表你可以运行的程序或者那些程序的数据文件。他们出现在你的桌
面 上 ,在 文 件 管 理 器 的 窗 口 里 面 ,下 方 是 该 文 件 或 者 应 用 程 序 的 名 字 。 要 运 行 这 个
应 用 程 序 ,只 需 要 双 击 它 的 图 标 。

4.3.1 终 端 窗 口 :Xterm
在 L i n u x 的 窗 口 管 理 器 中 你 可 以 打 开 一 个 叫 做 终 端 的 特 殊 窗 口 ,它 给 你 提 供
一个标准的命令行界面。你可以在此窗口的命令行上的提示符后面输入带有参
数 和 选 项 的 命 令 。这 个 终 端 窗 口 是 一 个 叫 做 X t e r m 的 程 序 创 建 的 。你 可 以 从 f v w m
的 任 务 栏 ,程 序 菜 单 ,或 者 象 C a l d e r a 这 样 的 桌 面 中 开 启 一 个 终 端 。 f v w m 任 务 栏
上 有 一 个 标 注 为 Xterm 的 按 钮 。 只 要 单 击 它 即 可 以 打 开 一 个 Xterm 窗 口 。 相 应
的 ,从 f v w m 工 作 区 菜 单 中 选 中 S h e l l s ,再 从 子 菜 单 中 选 中 终 端 ,再 从 那 里 选 中
X t e r m 也 可 以 打 开 一 个 X t e r m 窗 口 。 要 从 C a l d e r a 桌 面 上 打 开 一 个 终 端 窗 口 ,你
只要双击你的桌面左上角图标栏里的终端的图标即可。
一 旦 打 开 ,终 端 窗 口 就 显 示 一 个 S h e l l 提 示 符 ,一 般 是 ”$ ”,你 可 以 象 在 命 令 行 方
式下
一 样 输 入 命 令 。 你 会 看 到 你 输 入 的 Linux 命 令 的 结 果 在 终 端 的 窗 口 上 显 示
出 来 ,跟 在 后 面 的 是 一 个 shell 提 示 符 表 明 命 令 行 的 开 始 。 必 须 注 意 的 是 终 端 窗
口 必 须 是 你 的 活 动 窗 口 你 才 能 使 用 它 的 命 令 行 。 如 果 它 不 是 活 动 窗 口 ,你 需 要 移
动鼠标指针使它变为活动窗口。
X t e r m 窗 口 支 持 几 个 文 字 处 理 特 性 。 在 窗 口 的 左 边 是 一 个 滚 动 条 ,你 可 以 象
前 滚 动 来 查 看 显 示 过 的 文 本 。 当 文 本 移 出 屏 幕 的 上 方 ,你 可 以 用 回 滚 来 看 它 。 如
果 你 在 查 看 有 很 多 文 件 无 法 在 一 个 屏 幕 里 显 示 的 目 录 ,这 对 你 就 很 有 帮 助 。X t e r m
还让你拷贝文本再粘贴到命令行上。你用鼠标的左键来拷贝文本再用第二个键
来 粘 贴 文 本 。 你 可 以 拷 贝 任 何 先 前 显 示 的 文 本 ,譬 如 象 先 前 的 命 令 或 者 那 些 命 令
的 输 出 结 果 。 要 拷 贝 文 本 , 按 住 鼠 标 的 左 键 拖 动 到 你 想 要 拷 贝 的 地 方 ,到 顶 端 的 时
候 松 开 。 双 击 将 选 择 一 个 单 词 ,三 击 将 选 择 一 行 句 子 。 如 果 你 想 延 伸 选 择 的 文 本 ,
用 鼠 标 的 第 三 个 按 钮 。 当 你 选 择 好 文 本 ,单 击 鼠 标 的 第 二 个 按 键 。 这 就 自 动 把 文
本 粘贴到命令行的末尾。重复单击就会重复粘贴。这种拷贝粘贴的操作在从先
前 的命令中创建一个复杂的命令的时候十分有用。你可以在不同的终端窗口间
拷 贝和粘贴。
( 术 语 ”第 二 个 ”和 ”第 三 个 鼠 标 按 键 ”可 能 容 易 混 淆 。 在 一 个 双 键 鼠 标 上 , 第 二
个 按 键 就 是 指 右 键 ,而 第 三 个 键 就 是 指 左 右 键 同 时 按 下 。 在 一 个 三 键 鼠 标 上 ,第 二
个 键 就 是 指 中 键 ,而 第 三 个 按 键 就 是 指 最 右 边 的 按 键 。 这 三 个 按 钮 是 用 来 访 问
X t e r m 的 菜 单 。 一 个 X t e r m 的 窗 口 有 四 个 菜 单 :主 菜 单 , 一 个 虚 拟 终 端 选 项 菜 单 ,
一 个 虚 拟 终 端 字 体 菜 单 , 和 一 个 T e k t r o n i x 窗 口 选 项 菜 单 。要 弹 出 主 菜 单 , 按 住 C t r l
键 并 单 击 鼠 标 左 边 的 按 钮 。 要 弹 出 虚 拟 终 端 选 项 菜 单 ,按 住 C t r l 键 并 单 击 鼠 标 的
第 二 个 (右 边 或 者 中 间 )按 钮 。 要 弹 出 字 体 菜 单 ,用 C trl 键 和 鼠 标 的 第 三 个 按 钮 。
你 就 可 以 设 置 字 体 和 字 符 显 示 的 大 小 )。
一 个 Xterm 窗 口 可 以 仿 真 D E C V T 1 0 2 终 端 和 Tektronix 4014 终 端 。 有 模
拟 这 两 种 的 窗 口 ,尽 管 开 始 显 示 的 只 是 一 个 虚 拟 终 端 窗 口 。 要 显 示 一 个 T e k t r o n i x
窗 口 ,在 虚 拟 终 端 选 项 菜 单 上 ( C t r l 键 和 第 二 个 按 钮 ) 选 择 这 个 选 项 。 这 将 弹 出 一
个 可 以 显 示 图 形 的 Tektronix 窗 口 。 在 T e k t r o n i x 窗 口 中 你 可 以 按 住 C trl 键 并 单
击 鼠 标 的 第 二 个 按 钮 弹 出 一 个 Tektronix 选 项 菜 单 。 终 端 窗 口 有 一 种 特 别 的 能
力 。 它 可 以 在 它 的 命 令 行 里 运 行 任 何 X-W indows 程 序 。 这 个 终 端 窗 口 在 X -
W i n d o w s 环 境 中 运 行 。要 运 行 任 何 一 个 X - W i n d o w s 程 序 ,只 需 要 打 开 一 个 X t e r m
窗 口 输 入 命 令 ,再 敲 击 一 个 回 车 键 。 这 个 X - W i n d o w s 程 序 就 会 在 它 自 己 的 窗 口
里 运 行 。 例 如 ,要 运 行 一 个 N e t s c a p e 你 可 以 打 开 一 个 终 端 窗 口 然 后 输 入 命 令
n e t s c a p e。 一 个 新 的 窗 口 就 会 打 开 运 行 N e t s c a p e 。 你 可 以 打 开 任 意 多 的 终 端 窗
口 ,可 以 在 它 们 中 的 任 何 一 个 中 启 动 一 个 X - W i n d o w s 程 序 。 但 是 ,关 闭 一 个 终 端
窗口同时也会关闭从这个终端窗口中启动的程序。
你 会 注 意 到 在 你 输 入 X-Windows 命 令 的 终 端 窗 口 把 自 己 挂 起 。 当 你 输 入 回
车键运行程序以后它并没有跟随的命令提示符。那是因为终端窗口正忙于运行
你 刚 刚 执 行 的 X - W i n d o w s 程 序 。 你 可 以 通 过 带 有 一 个 和 符 号 ( & )来 激 活 该 程 序
使 终 端 窗 口 释 放 自 己 ,在 那 个 程 序 在 运 行 的 同 时 来 执 行 其 他 的 命 令 。 从 技 术 上 来
说 ,就 此 终 端 窗 口 而 言 这 是 把 该 程 序 放 在 后 台 运 行 ( 参 阅 第 5 章 ) 。 但 是 你 可 以 随
意 移 动 到 那 个 X -W i n d o w s 程 序 在 那 里 运 行 它 。 下 面 的 例 子 将 运 行 N e t s c a p e , 释
放终端窗口来执行其他的命令。注意提示符:
$ netscape &
$
当 你 使 用 完 毕 终 端 窗 口 ,在 命 令 行 输 入 一 个 e x i t 命 令 来 结 束 它 。 每 个 终 端 窗
口 都 是 它 自 己 的 shell,exit 就 是 结 束 这 个 shell 的 命 令 (在 第 5 章 里 将 详 细 讨 论
shell) 。 图 4-1 显 示 了 终 端 窗 。
图 4-1fvwm 终 端 窗 口
窗 口 用 户 输 入 了 几 个 命 令 ,输 出 在 窗 口 上 显 示 。 当 你 到 达 窗 口 的 底 部 的 时 候 ,
显 示 的 文 字 将 一 行 一 行 的 上 卷 ,就 像 一 个 正 常 的 终 端 屏 幕 那 样 。
当 然 ,你 可 以 使 用 窗 口 控 制 来 使 终 端 窗 口 变 大 或 者 变 小 。 你 甚 至 可 以 把 它 们
最小化到一个图标在晚些时候再打开它。

4.3.2X-W indows 多 任 务
你 的 Linux X-Windows 界 面 最 有 用 的 特 性 之 一 就 是 它 可 以 同 时 进 行 几 个 操
作 的 能 力 ,每 一 个 都 有 自 己 的 窗 口 。 注 意 在 命 令 行 界 面 中 你 每 次 只 可 以 工 作 在 一
个 任 务 上 ( 这 里 有 一 个 例 外 就 是 将 在 第 5 章 要 讨 论 的 后 台 进 程 )。 你 发 布 一 个 命
令 在 它 执 行 完 以 后 ,你 可 以 执 行 另 一 个 。 在 X - W i n d o w s 你 可 以 同 时 运 行 几 个 不
同 的应用。把你的鼠标指针从一个窗口移动到另一个窗口有效的使你从一个应
用 切 换 到 另 一 个 应 用 。 X-Windows 的 这 个 特 性 表 明 了 Linux 最 有 用 的 特 性 之 一 :
并 发 性 , 可 以 同 时 运 行 好 几 个 进 程 的 能 力 。 在 你 的 X - W i n d o w s 界 面 中 ,你 可 以 有
好 几 个 应 用 同 时 运 行 ,每 个 都 有 各 自 的 窗 口 。
这个特性可以很容易的用终端窗口来演示。你可以在同一时刻有好几个终
端 窗 口 ,每 个 都 有 各 自 的 命 令 行 。 要 从 Caldera 桌 面 上 打 开 一 个 终 端 窗 口 ,双 击 图
标 栏 的 终 端 图 标 ;在 f v w m 中 ,使 用 工 作 区 菜 单 或 者 是 f v w m 图 标 栏 上 的 X t e r m 按
钮 。 要 打 开 第 二 个 终 端 窗 口 ,再 次 双 击 该 图 标 。 还 要 打 开 另 一 个 终 端 窗 口 ,只 要 再
次 双 击 这 个 图 标 ,然 后 继 续 。 每 个 终 端 窗 口 都 有 各 自 的 命 令 行 , 把 你 的 鼠 标 指 针 从
一 个窗口移动到另一个窗口使你从一个命令行切换到另一个。你可以在一个活
动 窗 口 中 输 入 命 令 并 执 行 它 .你 可 以 然 后 切 换 到 另 一 个 终 端 窗 口 再 输 入 另 一 个 命
令 。每个终端窗口都相互独立的运行。如果你发布一个命令需要一段时间来运
行 ,你 移 动 到 另 一 个 窗 口 ,你 会 注 意 到 你 刚 刚 离 开 的 那 个 窗 口 中 的 命 令 仍 然 在 继 续
执 行。
图 4-2 包 括 任 务 栏 和 工 作 区 菜 单 的 fvwm 桌 面 运 行 有 终 端 窗 口 和 Netscape
4.4 f v w m 窗 口 管 理 器 和 桌 面

尽 管 L i n u x 上 有 很 多 窗 口 管 理 器 可 供 使 用 ,这 一 章 只 涉 及 f v w m 的 一 些 基 本
特 性 。 f v w m 窗 口 管 理 器 不 只 提 供 了 基 本 的 窗 口 , 任 务 栏 ,和 菜 单 工 具 ,而 且 象 虚 拟
桌 面 几 个 高 级 特 性 。 实 际 上 , 用 f v w m 你 可 以 有 好 几 个 桌 面 ,每 个 都 有 不 同 的 窗 口
和 在 其 中 打 开 的 程 序 。 图 4 - 2 显 示 了 f v w m 的 工 作 区 菜 单 和 任 务 栏 ,以 及 在 f v w m
中 直 接 运 行 的 Xterm 终 端 窗 口 和 Netscape 浏 览 器 。

4.4.1fvwm 工 作 区 菜 单
要 弹 出 工 作 区 菜 单 ,用 你 的 鼠 标 单 击 然 后 稍 微 向 下 拖 动 。 工 作 区 菜 单 就 会 弹
出 来。这个主菜单的选项引出子菜单。选择一个选项也将带出一个子菜单。这
些 子 菜 单 中 的 一 些 本 身 也 列 出 其 他 子 菜 单 。 例 如 ,应 用 将 带 出 一 个 子 菜 单 列 出 你
所 有 的 X-W indows 程 序 类 别 。 如 果 你 选 择 Xpaint,Xpaint 程 序 将 会 开 始 运 行 。
当 你 安 装 或 者 删 除 一 个 X-Windows 程 序 的 时 候 ,fvwm 将 会 自 动 更 新 工 作 区
菜 单 。 经 常 使 用 的 X-Windows 程 序 项 目 已 经 被 设 置 。 现 在 ,fvwm 被 设 置 成 检 查
在 /usr/X11r6/bin 和 /usr/openwin/bin 目 录 下 任 何 新 的 程 序 。 这 些 将 被 加 到 工 作
区 菜单中。
要 退 出 fvwm, 从 这 个 菜 单 中 选 择 退 出 桌 面 项 目 。 这 带 出 一 个 包 括 有 停 止 桌
面 选 项 的 子 菜 单 。 当 你 选 择 这 个 ,fvwm 将 会 和 X-W indows 一 同 退 出 。
4.4.2GoodStuff 任 务 栏
最 近 的 fvwm 版 本 包 括 GoodStuff 任 务 栏 可 以 用 按 钮 来 显 示 经 常 使 用 的 X -
W i n d o w s 命 令 (看 图 4 - 3 )。

图 4-3fvwm GoodStuff taskbar
GoodStuff 任 务 栏 将 在 你 启 动 fvwm 窗 口 管 理 器 的 时 候 被 显 示 ; 如 果 没 有 ,
你 可 以 通 过 在 工 作 区 菜 单 的 桌 面 菜 单 中 选 择 启 动 G o o d S t u f f 带 出 它 .每 个 按 钮 都
将 显 示 程 序 的 名 字 。 只 要 单 击 该 按 钮 就 可 以 启 动 那 个 程 序 。 例 如 ,要 打 开 一 个
X t e r m 窗 口 ,只 需 要 单 击 那 个 标 注 为 X t e r m 的 按 钮 。
W W W 的 按 钮 将 启 动 你 的 因 特 网 浏 览 器 (Netscape 如 果 你 有 ,否 则 就 是
A r e n a )。 X f m 按 钮 启 动 X f m 文 件 管 理 器 , 用 菜 单 和 图 标 来 访 问 你 的 目 录 和 文 件 。
如 果 你 选 择 一 个 标 准 的 安 装 ,你 可 能 没 有 安 装 所 有 的 这 些 程 序 。 如 果 没 有 ,你 将 被
问到你是否愿意安装它们。
要 使 G o o d S t u f f 任 务 栏 永 久 的 显 示 在 你 的 f v w m 桌 面 上 ,在 f v w m 工 作 区 菜
单 的 桌 面 上 的 设 置 菜 单 的 GoodStuff 菜 单 中 选 择 位 置 选 项 。 你 可 以 选 择 把 它 放
在 你 的 屏 幕 的 顶 部 ,中 间 ,左 边 , 或 者 右 边 。 你 可 以 随 意 的 移 动 或 者 重 置 任 务 栏 的
大 小 。 要 移 动 任 务 栏 ,用 鼠 标 右 边 的 按 钮 点 住 它 的 边 缘 ,然 后 拖 动 到 你 想 移 动 到 的
地 方 。 要 重 置 大 小 ,用 鼠 标 左 键 单 击 再 拖 动 它 的 边 缘 或 者 一 角 。
如 果 你 不 想 再 显 示 任 务 栏 ,在 位 于 f v w m 工 作 区 菜 单 的 桌 面 上 的 设 置 菜 单 中
的 G o o d S t u f f 菜 单 中 选 择 ”无 效 ”选 项 。
任 务 栏 的 配 置 文 件 叫 作 system.fvwmrc.goodstuff。 它 位 于 /usr/lib/X11/fvwm
目录下。文件的底部有任务栏的按钮的条目。你可以通过在一行的前面加上一
个 #来 删 除 一 个 按 钮 。 你 还 可 以 给 新 按 钮 添 加 其 他 行 。 一 个 按 钮 项 目 用 关 键 字
* G o o d S t u f f 开 始 ,跟 随 其 后 的 是 你 想 显 示 的 按 钮 和 你 想 来 在 按 钮 上 显 示 的 图 片 。
这 行 结 束 的 部 分 是 要 运 行 的 命 令 ,通 常 用 E x e c 命 令 开 始 ,跟 着 一 个 空 字 符 串 和
x l a u n c h 命 令 然 后 是 程 序 名 。 下 面 的 例 子 给 Crisplite 编 辑 器 添 加 一 个 按 钮 。 激
活 Crisplite 编 辑 器 的 命 令 是 m c r 。
*GoodStuff Crisplitedtp.xpmExec "" xlaunch mcr
.xpm 文 件 就 是 用 来 显 示 的 图 片 文 件 。 你 可 以 在 /usr/share/data/pixmaps 和
/usr/openwin/lib/pixmaps 目 录 下 找 到 很 多 这 样 的 文 件 。

4.4.3 虚 拟 桌 面 : fvwm
开 始 的 时 候 ,你 可 能 会 觉 得 虚 拟 桌 面 令 人 不 安 — — 它 是 一 种 内 置 放 大 特 性 。
你 将 发现在你的屏幕上显示的区域可能只是桌面的一部分。移动你的鼠标指针
到 你 的屏幕边缘移动屏幕到桌面隐藏的隐藏的部分。你还会注意到在你的桌面
显 示 的 右 上 角 有 一 个 小 方 块 。 这 叫 做 pager,你 用 它 来 查 看 你 的 虚 拟 桌 面 的 不 同
区 域 。 这 个 pager 被 分 成 四 个 小 正 方 形 。 你 可 以 把 每 个 正 方 形 想 象 成 一 个 独 立
的 桌 面 扩 展 。 它 就 像 你 有 有 一 个 很 大 的 桌 子 ,只 有 部 分 被 显 示 在 屏 幕 上 。 这 个 桌
子 活 动 的 部 分 就 是 加 亮 的 正 方 形 ,通 常 是 白 色 的 。 这 就 是 现 在 显 示 在 你 的 屏 幕 上
的 那 部分桌面。
通过移动这个加亮的正方形你可以移动到桌子的不同地方。你用鼠标的右
键 来 单 击 和 拖 动 这 个 加 亮 的 正 方 形 。 你 也 可 以 单 击 pager 四 个 部 分 中 的 一 个 来
移 动到桌子的那个部分。你可以把不同的窗口放在你的桌子的不同部分然后当
你 需 要 它 们 的 时 候 再 移 动 到 那 个 部 分 去 。 用 这 种 办 法 ,你 想 放 在 你 的 桌 面 的 所 有
东 西 就 不 一 定 要 一 起 显 示 在 你 的 屏 幕 上 ,使 你 的 屏 幕 显 得 凌 乱 不 堪 。
如 果 你 在 桌 面 上 工 作 , 突 然 所 有 的 东 西 都 不 见 了 ,这 可 能 是 你 碰 巧 单 击 了 其 中
的 一个正方形。只要再次单击右上方的正方形就回到你原来的显示。你就可以
看 到你原来的窗口重新出现了。
某 些 图 标 始 终 显 示 在 你 的 屏 幕 上 ,不 论 你 的 虚 拟 桌 面 显 示 在 那 个 部 分 。 这 些
被 称 为 ”粘 性 ”( s t i c k y ) 图 标 。f v w m p a g e r 就 是 这 样 一 个 图 标 , 和 f v w m 任 务 栏 一 样 。
例 如 , f v w m p a g e r 总 是 显 示 在 你 的 屏 幕 的 右 上 角 上 ,而 不 管 你 在 查 看 你 的 虚 拟 桌
面 的 哪 一 部 分 。 而 另 一 方 面 ,窗 口 不 是 粘 性 的 。 它 们 停 留 它 们 原 来 在 虚 拟 桌 面 的
位 置上。
Caldera 桌 面 既 可 以 是 粘 性 的 停 留 在 屏 幕 显 示 上 也 可 以 是 一 个 窗 口 ,保 留 在
虚 拟桌面的一个窗口中。
Calder 任 务 栏 最 左 边 的 图 标 使 其 在 粘 性 和 窗 口 之 间 切 换 。 如 果 它 是 一 个 窗
口 ,你 将 看 到 桌 面 有 一 个 标 准 的 f v w m 窗 口 边 界 ,你 可 以 随 意 移 动 或 者 重 置 大 小 。
作 为 一 个 粘 性 图 象 ,窗 口 没 有 边 界 。 不 论 屏 幕 移 动 到 虚 拟 桌 面 的 哪 里 ,C a l d e r a 桌
面 在 屏 幕 上 的 显 示 都 带 有 任 务 栏 ,菜 单 和 图 标 。
你 放 置 在 你 的 桌 面 上 的 图 标 每 次 都 将 显 现 在 相 同 位 置 。 这 样 ,你 就 可 以 访 问
桌 面上的一个图标。
开 始 的 时 候 ,你 的 虚 拟 桌 面 的 屏 幕 区 域 可 能 不 到 你 的 p a g e r 的 一 个 部 分 。 你
可 以 在 /etc/XF86Config 文 件 中 通 过 把 虚 拟 选 项 设 置 成 你 的 显 示 器 的 分 辨 率 ,就
像 第 2 章 中 所 写 的 那 样 。 在 大 多 数 1 5 英 寸 的 显 示 器 中 ,这 就 是 8 0 0 * 6 0 0 。
大 多 数 窗 口 管 理 器 ,包 括 f v w m ,也 支 持 多 种 桌 面 。 这 个 桌 面 ,在 这 个 意 义 上 , 是
一 个 屏 幕 中 包 含 了 图 标 ,菜 单 ,和 窗 口 。 象 f v w m 这 样 的 窗 口 管 理 器 让 你 可 以 使 用
很 多 种 不 同 的 桌 面 .fvwm 可 以 支 持 四 十 亿 个 桌 面 。

4.5 C a l d e r a 桌 面

Caldera 桌 面 是 一 个 集 成 的 程 序 和 文 件 管 理 器 ,给 你 提 供 菜 单 和 图 标 使 你 可
以 管 理 你 的 文 件 ,运 行 程 序 和 设 置 你 的 系 统 。 C a l d e r a 桌 面 提 供 了 对 很 多 L i n u x
可 用 的 软 件 程 序 以 及 因 特 网 工 具 很 方 便 的 访 问 。 它 是 和 Caldera 商 业 包 一 起 提
供 的 一 个 商 业 产 品 。 Looking Glass 桌 面 是 和 Caldera Lite 一 起 提 供 的 一 个 九 十
天 的 试 用 版 本 (在 f v w m 工 作 区 菜 单 中 ,Caldera 桌 面 就 是 指 L o o k i n g G l a s s )。 你
可 以 利 用 C a l d e r a 桌 面 的 全 部 特 性 , 象 工 具 栏 ,设 置 工 具 ,文 件 管 理 窗 口 和 自 动 历
史列表。
当 你 启 动 C a l d e r a 桌 面 的 时 候 ,你 会 注 意 到 在 顶 部 显 示 有 一 个 图 标 栏 。 开 始
的 时 候 它 包 括 代 表 了 常 用 的 L i n u x 操 作 的 图 标 ,象 打 开 一 个 终 端 窗 口 或 者 查 找 一
个文件。这是一个可设置的图标栏。你可以添加你自己的特定操作的图标。这
个 桌 面 还 有 很 多 种 文 件 管 理 器 。 对 于 每 个 目 录 ,你 可 以 打 开 一 个 窗 口 查 看 该 目 录
中 所 有 的 文 件 ,显 示 为 图 标 。 你 就 可 以 用 双 击 它 们 的 图 标 来 运 行 应 用 程 序 ,或 者 你
可以把文件从文件管理器的窗口移动到桌面上以便很方便的存取。
桌面是一个你可以放置图标的窗口。右边和底部的滚动条可以让你在有很
多 的 图 标 不 能 装 在 一 个 屏 幕 里 的 时 候 , 在 这 些 图 标 之 间 移 动 ( 见 图 4 - 4 )。 你 会 注
意 到 在 你 的 桌 面 窗 口 上 已 经 有 几 个 图 标 。 例 如 ,一 个 表 示 C r i s p l i t e 编 辑 器 的 图 标
和 另 一 个 表 示 Netscape 浏 览 器 的 图 标 。 你 可 以 随 意 的 删 除 或 者 添 加 这 些 图 标 。
桌 面 顶 部 的 任 务 栏 包 括 了 L i n u x 常 用 的 操 作 ,象 文 件 管 理 器 和 终 端 窗 口 。 你
可 以 在 任 务 栏 中 添 加 你 自 己 的 图 标 ,也 可 以 删 除 那 里 已 经 有 的 图 标 。 图 标 栏 的 右
边是你的时钟和一个用来获得帮助的图标。桌面的帮助特性将在你指向的桌面
的任何一个部分显示气球状线圈围成的帮助文字。
在 图 标 栏 之 上 是 一 个 标 准 的 菜 单 栏 。 不 同 的 选 项 包 括 从 设 置 桌 面 到 发 布
Linux 命 令 之 类 的 操 作 。
你已经在文件菜单中看过退出桌面选项。请注意每个菜单名字中加下划线
的 字 母 。 这 表 示 一 个 快 捷 键 ,你 可 以 用 它 来 执 行 一 个 命 令 。 例 如 ,要 打 开 一 个 文 件
菜 单 ,你 可 以 用 按 F 来 代 替 把 你 的 鼠 标 移 到 菜 单 栏 上 来 按 下 文 件 项 目 。
图 4-4The Caldera Desktop
通 过 用 鼠 标 在 你 的 屏 幕 上 选 中 不 同 的 窗 口 ,菜 单 , 和 图 标 ,你 可 以 运 行 和 那 个 图
标 相 关 的 应 用 程 序 ,为 它 打 开 一 个 新 的 窗 口 。
鼠 标 的 右 键 用 来 打 开 一 个 文 件 下 拉 菜 单 。 不 用 把 鼠 标 移 动 到 菜 单 栏 上 ,你 只
要单击鼠标右键就在你的屏幕上的那个位置打开一个文件菜单。然后你就可以
选 择 一 个 选 项 ,譬 如 退 出 桌 面 。

4.5.1 目 录 窗 口
除 了 让 你 输 入 命 令 和 文 件 名 字 参 数 的 命 令 行 ,C a l d e r a 桌 面 上 的 目 录 窗 口 让
你 可 以 使 用 菜 单 ,图 标 ,和 窗 口 来 管 理 文 件 和 目 录 。 在 桌 面 中 ,一 个 目 录 就 表 示 为
一 个 窗 口 。 不 用 再 用 ls 命 令 来 列 出 你 的 目 录 中 的 文 件 ,文 件 已 经 被 显 示 成 图 标 。
目 录被表示成象文件夹一样的图标。这个想法是因为目录象文件夹一样存放文
档 — — 那 就 是 ,文 件 。 你 打 开 一 个 目 录 查 看 其 中 的 文 件 ,就 像 你 打 开 一 个 文 件 夹 查
看 其中的内容。
所 有 的 目 录 窗 口 都 有 相 同 的 菜 单 集 合 用 来 完 成 文 件 和 目 录 操 作 :文 件 ,查 看 ,创
建 ,排 序 ,选 择 ,运 行 ,和 设 置 颜 色 。 文 件 菜 单 让 你 完 成 基 本 的 文 件 操 作 。 查 看 菜 单
让 你 可 以 用 不 同 的 方 式 显 示 你 的 文 件 ,可 以 是 图 标 ,名 字 ,或 者 是 带 有 全 部 文 件 信
息 的 名 字 。 创 建 菜 单 让 你 创 建 新 的 目 录 。 排 序 菜 单 让 你 用 名 字 , 大 小 ,种 类 , 或 者
任 何 其 他 的 文 件 特 性 给 文 件 排 序 。 用 选 择 菜 单 ,你 可 以 用 文 件 名 字 的 模 式 匹 配 来
选 定 一 系 列 文 件 ,或 者 选 中 该 目 录 下 所 有 文 件 。
运行菜单让你打开一个可以输入命令的命令行。而设置颜色菜单让你对你
的 文 件 名 字 着 色 编 码 。 要 打 开 一 个 目 录 窗 口 ,把 你 的 鼠 标 指 针 移 动 到 图 标 栏 上 文
件 夹的图标。
当 你 双 击 一 个 文 件 夹 的 图 标 ,打 开 目 录 窗 口 就 出 现 ;你 可 以 在 那 儿 指 明 你 要 打
开 的 目 录 。 一 个 标 注 为 ”目 录 :”的 盒 子 出 现 在 窗 口 的 上 方 。 在 这 个 盒 子 中 , 你 最 近
存 取 的 目 录 被 加 亮 显 示 .清 空 这 个 盒 子 ,就 可 以 访 问 你 的 工 作 目 录 。 按 下 D E L 或
者 B A C K S P A C E 键 来 删 除 那 里 已 经 有 的 加 亮 显 示 的 路 径 名 。 然 后 ,单 击 窗 口 底
部 的 O K 按 钮 。 一 个 你 的 工 作 目 录 的 文 件 管 理 器 的 窗 口 就 会 打 开 ,并 显 示 其 中 所
有 的文件和目录。
你可以用打开目录窗口来访问你希望的任何一个目录。你所要做的只是在
目 录框中输入那个目录的路径名。打开目录窗口包括一个历史框列出了你访问
过 的 所 有 目 录 的 路 径 名 。 如 果 你 看 见 其 中 有 你 想 访 问 的 目 录 ,只 需 要 单 击 它 ,它 的
路 径 名 就 出 现 在 标 有 ”目 录 :”的 框 里 。
通 过 在 查 看 菜 单 里 取 消 选 定 可 定 位 的 选 项 ,你 可 以 把 目 录 窗 口 分 成 上 下 两 个
部 分 。 表 示 目 录 的 文 件 夹 图 标 出 现 在 上 方 的 面 板 中 ,在 下 面 的 面 板 中 文 件 的 图 标
上 由它们用于的应用程序而显示不同的图象。在每个面板的右边是一个滚动条,
你 可以用它滚动来显示在你的特定目录下的目录或者文件。你还可以改变每个
面 板 的 大 小 。 在 两 个 面 板 之 间 ,和 他 们 的 滚 动 条 相 邻 的 地 方 是 一 个 小 条 ,你 可 以 用
它 使一个面板变大而另一个变小。把这个小条向上移动使目录面板变小而使文
件 面板变大。把它向下移动则正好相反。
图 标 一 旦 被 选 中 , 你 可 以 在 它 上 面 执 行 一 种 操 作 。 例 如 ,要 拷 贝 一 个 文 件 ,选 择
那 个 文 件 的 图 标 ,然 后 在 文 件 菜 单 中 选 择 拷 贝 选 项 。 一 个 特 别 的 窗 口 就 会 打 开 , 提
示 你 输 入 要 拷 贝 的 文 件 名 称 。 要 删 除 一 个 文 件 ,选 择 文 件 的 图 标 然 后 在 文 件 菜 单
中 选 择 删 除 选 项 。 这 个 文 件 就 会 被 删 除 ,它 的 图 标 也 会 从 目 录 窗 口 中 删 除 。
在一个图标上基本的操作之一就是打开操作。你可以通过把鼠标移动到一
个 图标上双击或者单击这个图标再从文件菜单中选择打开选项来打开一个图
标 。 不 同 的 操 作 将 被 执 行 ,取 决 于 这 个 图 标 是 一 个 文 件 ,目 录 ,还 是 应 用 程 序 。 如
果 你 打 开 一 个 应 用 程 序 , 那 个 应 用 程 序 的 窗 口 就 会 打 开 ,应 用 程 序 开 始 执 行 。 另 一
方 面 ,如 果 你 打 开 一 个 目 录 ,另 一 个 目 录 窗 口 将 被 打 开 ,显 示 该 目 录 下 的 图 标 。 如
果 你 打 开 的 是 一 个 文 件 图 标 ,和 那 个 文 件 相 关 联 的 应 用 程 序 将 使 用 那 个 文 件 并 执
行 。 例 如 ,如 果 m y d a t a 文 件 是 一 个 V i 编 辑 器 数 据 文 件 , 那 么 当 你 双 击 该 文 件 的
图 标 的 时 候 ,Vi 编 辑 器 应 用 窗 口 就 会 打 开 并 且 mydata 文 件 就 是 要 编 辑 的 文 字 。
你 可 以 在 目 录 窗 口 中 创 建 你 自 己 的 目 录 ,就 像 在 命 令 行 界 面 下 ,你 用 m k d i r 来
创 建 目 录 一 样 。 要 创 建 一 个 目 录 ,首 先 在 创 建 菜 单 中 选 中 目 录 选 项 。 这 就 创 建 了
一 个 新 的 目 录 图 标 , 它 的 下 面 是 加 亮 显 示 的 缺 省 名 D ir1 。 只 要 输 入 你 希 望 的 新 的
目 录 名 就 可 以 给 它 更 名 。 一 旦 你 完 成 了 输 入 新 的 名 称 ,你 可 以 通 过 在 窗 口 上 其 他
的 任何地方单击来取消选择它。
目录作为一个图标存在于窗口中直到你为它打开一个窗口。有两种方法可
以 打 开 一 个 目 录 窗 口 。 你 可 以 给 这 个 目 录 打 开 一 个 单 独 的 窗 口 ,你 可 以 可 以 把 当
前 的 窗 口 改 变 到 那 个 目 录 下 。 要 改 变 这 个 窗 口 来 显 示 一 个 新 的 目 录 ,只 要 双 击 那
个 目 录 的 图 标 。 在 效 果 上 ,打 开 一 个 目 录 和 用 c d 命 令 来 改 变 你 的 工 作 目 录 是 相
同 的。你的菜单选项就可以在新显示的目录中的文件和图标进行操作。
你会注意到在你的文件管理器窗口中显示的目录图标里有一个名字有两点
构 成 的 目 录 , . .。 两 点 表 示 父 目 录 。 如 果 你 想 移 动 到 当 前 目 录 的 父 目 录 , 只 要 双 击
这 个 目 录 的 图 标 。 这 样 做 和 用 c d . .命 令 是 等 效 的 。
你用文件菜单中的移动选项来移动一个文件或者给文件改名。要给文件改
名 , 选 中 文 件 的 图 标 在 选 择 移 动 选 项 。 这 会 打 开 一 个 在 顶 部 标 有 ”移 动 到 :”的 框 的
对 话 窗 口 。 你 只 要 输 入 那 个 文 件 的 新 名 称 。 你 还 可 以 有 其 他 的 选 择 ,只 用 你 的 鼠
标 ,你 可 以 使 用 单 击 再 拖 动 的 方 法 来 把 文 件 从 一 个 目 录 移 动 到 另 外 一 个 目 录 。 首
先 ,为 你 想 把 文 件 移 动 到 的 目 录 单 独 打 开 一 个 窗 口 。 然 后 把 鼠 标 移 动 到 你 想 移 动
的 那个文件的图标上。按下你的鼠标并在你把图标拖动到你想把文件移动到的
那 个目录去的时候不松开鼠标。然后松开鼠标按钮。那个文件的图标就会出现
在 新的目录中。
至 于 移 动 操 作 ,有 两 种 方 法 可 以 拷 贝 一 个 文 件 :或 者 是 用 鼠 标 选 中 再 拖 动 ,或 者
是 用 文 件 菜 单 中 的 拷 贝 选 项 。 使 用 文 件 菜 单 ,首 先 选 择 该 文 件 的 图 标 ,然 后 选 择 拷
贝 选 项 。 这 就 打 开 把 东 西 拷 贝 到 目 录 的 对 话 框 窗 口 。 在 窗 口 上 部 标 有 ”拷 贝 到 :”
的 框里输入拷贝的名字。然后单击对话框窗口下方的 OK 按 钮 。
使 用 鼠 标 和 C T R L 键 ,你 可 以 用 单 击 再 拖 拉 的 方 法 来 把 文 件 从 一 个 目 录 拷 贝
到 另一个目录。用来拷贝的单击再拖拉的方法和用来移动的不大一样。因为你
必 须 在 整 个 过 程 中 按 住 C T R L 键 。 在 移 动 文 件 中 ,你 首 先 为 你 想 把 文 件 拷 贝 到 的
目 录 打 开 一 个 窗 口 。 然 后 把 鼠 标 移 动 到 你 想 拷 贝 的 文 件 上 选 择 它 。 按 住 CTRL
键 ,并 在 你 把 图 标 拖 动 到 新 窗 口 的 时 候 按 住 并 保 持 你 的 鼠 标 左 键 。 松 开 鼠 标 按 键
和 C T R L 键 ,该 文 件 的 图 标 就 出 现 在 另 一 个 目 录 里 。
你 可 以 删 除 文 件 。 或 者 是 用 把 文 件 的 图 标 拖 动 到 垃 圾 箱 的 图 标 上 ,或 者 是 在
文 件 菜 单 中 选 中 删 除 选 项 。 如 果 你 把 你 一 个 文 件 拖 动 到 垃 圾 箱 ,它 还 会 存 放 在 那
里 直 到 你 清 空 垃 圾 箱 。 你 还 可 以 删 除 整 个 目 录 ,如 果 你 愿 意 的 话 ,通 过 把 他 们 的 目
录 的图标拖动到垃圾箱里。
你可以通过在文件菜单中选择信息选项来设置一个文件或者目录的权限。
这 将 打 开 一 个 有 三 个 选 项 的 窗 口 :访 问 ,属 主 和 时 间 。 单 击 访 问 的 按 钮 会 打 开 一 个
有 访 问 权 限 列 表 的 窗 口 。 在 这 里 ,你 可 以 单 击 按 钮 来 指 明 属 主 , 同 组 人 和 其 他 用 户
的 读 ,写 ,和 执 行 权 限 。 ( 权 限 将 在 第 7 章 详 细 解 释 )。 属 主 的 选 项 允 许 你 改 变 一 个
文件的主人。

4 . 5 . 2 管 理 C a ld e r a 桌 面
桌面是一个你可以为你的需要定制的一个界面。你可以在你的桌面上放 上
文 件 ,程 序 ,和 目 录 的 图 标 来 使 访 问 更 加 容 易 。 你 可 以 创 建 你 的 桌 面 的 布 局 ,保 存
一 套你的桌面上特定的打开的窗口和图标的快照。然后你就可以通过在你的 图
标 栏 上 指 明 项 目 或 者 设 置 文 件 怎 样 被 创 建 ,显 示 ,和 删 除 的 首 选 项 来 设 置 你 的 桌
面 。
当 你 在 桌 面 上 工 作 时 ,你 可 能 需 要 为 不 同 的 任 务 打 开 不 同 的 图 标 , 窗 口 ,或 者 程
序 。 例 如 , 如 果 你 在 和 一 个 数 据 库 打 交 道 ,你 可 能 打 开 一 个 数 据 库 的 窗 口 和 一 个 用
来 存 放 数 据 库 文 件 的 目 录 窗 口 。 要 做 图 形 工 作 ,你 可 能 在 你 的 桌 面 上 有 图 形 程 序
的 图标和存放图形文件的目录。不必要在你从不同任务之间切换的时候打开 和
关 闭 各 个 窗 口 ,你 可 以 把 你 整 个 的 桌 面 保 存 为 一 个 定 制 。 对 于 数 据 库 工 作 ,一 个 用
户 可 能 为 它 创 建 一 个 名 字 象 ”数 据 工 作 ”这 样 的 定 制 然 后 在 他 或 者 她 需 要 在 数 据
库 上工作的时候再打开这个定制。
已 经 提 供 的 有 好 几 种 定 制 。 root 和 管 理 员 定 制 对 当 你 作 为 一 个 root 用 户 登
录 来做一些管理的操作的时候是很有用的。它们包括一个用来访问设置工具 的
管 理 工 具 图 标 。 第 3 章 的 图 3-1 展 示 一 个 r o o t 的 定 制 。 用 户 缺 省 的 定 制 包 括 一
个 时钟和图标栏上几个常用的按钮。最左边的按钮将把桌面扩展成整个屏幕 并
把 它 变 成 粘 性 ,在 虚 拟 桌 面 上 随 着 你 移 动 。 再 次 单 击 使 它 分 解 成 一 个 窗 口 。图标
栏上的下一个按钮是用来给出一个小一些的桌面窗口或者使它成为粘性 图象。
图 4-4 展 示 了 带 有 用 户 缺 省 定 制 的 Caldera 桌 面 。
要 创 建 一 个 定 制 , 把 你 的 桌 面 设 置 成 你 希 望 定 制 的 那 样 ,在 桌 面 上 打 开 你 想 打
开的窗口再放上你想放置的图标。然后在定制菜单中选择定制选项。这 就 打 开
一 个 定 制 窗 口 。 在 标 有 “定 制 ”的 框 里 选 择 当 前 的 选 项 ( 第 一 个 选 项 ) 。 在 定 制 框 的
下 面 是 一 个 名 字 区 域 。 单 击 它 在 输 入 你 想 给 你 的 定 制 取 的 名 字 。 然 后 ,在 窗 口 底
部的按钮中单击保存按钮。单击关闭按钮来关闭定制窗口。新的定制就 会 在 定
制 菜 单 中 列 出 来 。 要 恢 复 它 ,只 要 从 此 菜 单 中 选 中 这 个 选 项 。

4.6 安 装 窗 口 管 理 器 和 文 件 管 理 器

你 的 O p e n L i n u x L i t e 系 统 提 及 C a l d e r a 桌 面 的 时 候 ,只 是 指 f v w m 窗 口 管 理
器 和 一 个 所 有 权 文 件 和 叫 做 Looking Glass 的 程 序 管 理 器 。 C a ldera 桌 面 程 序 的
名 字 叫 做 lg 。 用 O p e n L i n u x L i t e ,你 被 授 予 三 个 月 的 C a l d e r a 桌 面 免 费 使 用 期 ,然
后 它 就 不 可 使 用 了 。 你 可 以 继 续 使 用 fvwm 窗 口 管 理 器 和 它 自 己 的 程 序 管 理 器
和 任 何 一 种 公 开 许 可 的 的 文 件 管 理 器 。 还 有 GNU 的 文 件 管 理 器 可 供 使 用 。 用
这 样 的 文 件 管 理 器 ,你 可 以 使 用 图 标 和 菜 单 ,而 不 是 只 用 f v w m 提 供 的 窗 口 。
在 你 的 O p e n L i n u x L i t e 的 C D - R O M 中 还 有 Xfm 的 文 件 管 理 器 。 你 可 以 用
glint 或 者 Lisa 来 安 装 它 。
在 网 上 有 许 多 不 同 的 文 件 管 理 器 你 可 以 下 载 和 安 装 。 你 可 以 从 L i n u x 的 ftp
镜 像 站 点 来 下 载 文 件 管 理 器 ,通 常 是 在 / p u b / L i n u x / X 1 1 的 目 录 下 。 L i n u x 应 用 和
实 用 程 序 页 列 出 了 几 个 文 件 管 理 器 的 站 点 ,你 可 以 连 接 到 和 下 载 软 件 (看 第 3 章
的 表 3-2)。 如 果 你 知 道 你 需 要 的 文 件 管 理 器 的 包 的 名 字 ,最 好 是 从 R e d h a t 的
contrib 目 录 下 ,ftp.redhat.com/pub/contrib/i386 下 载 它 的 R P M 版 本 。
作 为 fvwm 窗 口 管 理 器 一 个 替 代 品 ,你 可 以 用 其 他 窗 口 管 理 器 象 Xview,
fvwm32, fvwm95, LessTif, AfterStep, and Motif. 这 些 当 中 也 带 有 文 件 管 理 器 给
你 一 个 完 整 的 桌 面 界 面 。 你 可 以 从 R e d h a t 的 ftp 站 点 的 contrib 目 录 下 下 载 这
写 中 的 任 何 一 个 窗 口 管 理 器 的 RPM 版 本 。
如 果 你 使 用 f t p ,用 带 有 那 个 窗 口 管 理 器 的 名 字 的 开 头 几 个 字 母 和 一 个 星 号 的
ls 命 令 来 列 出 它 的 R P M 文 件 。 当 然 , 用 象 N e t s c a p e 之 类 的 浏 览 器 来 下 载 要 容
易 的 多 。 绝 大 多 数 这 些 窗 口 管 理 器 也 自 己 带 有 它 们 的 Web 站 点 。 你 可 以 从 那 里
下载原始的代码。

4.6.1 启 动 窗 口 管 理 器
一 般 ,你 应 该 可 以 先 启 动 f v w m ,然 后 在 f v w m 的 工 作 区 菜 单 中 的 桌 面 选 项 中
的 窗口管理器的菜单中选择那个窗口管理器的名字来启动绝大多数窗口管理
器 。 那 儿 有 f v w m 9 5 , o l v w m ,和 其 他 ( 但 是 没 有 A f t e r S t e p )的 选 项 。 如 果 你 想 直 接
启 动 窗 口 管 理 器 ,你 必 须 把 一 个 选 项 放 在 . x i n i t r c 文 件 里 。 第 2 1 章 详 细 讨 论 了 怎
么 设 置 一 个 .xinitrc 文 件 和 在 其 中 放 置 一 个 窗 口 管 理 器 的 调 用 。
你 的 h o m e 目 录 开 始 没 有 一 个 .xinitrc 文 件 。 当 你 启 动 X - W i n d o w s , . x i n i t r c
文 件 将 被 用 来 设 置 你 的 X -W i n d o w s 过 程 , 而 不 用 系 统 的 . x i n i t r c 文 件 。 系 统
的 .xinitrc 文 件 在 /usr/X11R6/lib/X11/xinit/xinitrc 。 下 面 的 命 令 生 成 它 的 一 个 备
份 。 要 确 定 你 是 在 你 的 h o m e 目 录 下 。 注 意 . x i n i t r c 文 件 有 一 个 前 置 的 点 号 ,而 系
统 的 xinitrc 文 件 则 没 有 。
$ cp/usr/X11R6/lib/X11/xinit/xinitrc .xinitrc
你 必 须 启 动 你 想 要 的 窗 口 管 理 器 你 只 需 在 你 的 .xinitrc 文 件 末 尾 加 上 命 令 。
在 其 它 的 窗 口 管 理 器 的 命 令 所 在 的 命 令 行 前 , 确 认 加 上 一 个 #号 来 使 其 无
效 。 文 件 的 别 的 地 方 不 要 动 。 下 面 的 例 子 演 示 了 取 消 命 令 f v w m ,并 取 而 代 之 的
运 行 fvwm95 的 指 令 。
# start the window-manager and redirect output to xconsole
# some applications are started by the window manager itself
# exec fvwm >/dev/console 2>&1
exec fvwm95
要 回 到 fvwm, 只 需 将 它 的 命 令 中 的 那 个 符 号 #去 掉 , 并 在 fvwm95 所 在 的 那
一行前加上一个。
如果你还想自动运行其它的程序, 例如, 一个文件管理器, 你可以在窗口管
理 器 的 命 令 行 前 加 上 这 些 程 序 的 命 令 。 在 命 令 行 末 尾 加 上 一 个 ( & )。 第 2 1 章 更
详 细 的 讨 论 了 这 个 。 下 面 的 例 子 在 AfterSetp 窗 口 管 理 器 启 动 时 运 行 了 Xfm 文
件管理器。
xfm &
exec afterstep
4.6.2fvwm 和 fvwm2
当 有 新 版 本 的 fvwm 时 你 可 以 轻 松 的 下 载 并 安 装 。 本 书 随 书 配 套 的
O p e n L i n u x L i t e 光 盘 上 有 f v w m 的 1 . 2 4 r 版 本 。这 个 当 前 版 本 支 持 诸 如 任 务 条 , 工
作区域菜单和模块这些特征。模块是一些小程序, 它们可以动态的加载和运行,
和 M a c 里 的 extension 很 类 似 。
现 在 正 在 开 发 f v w m 的 2 . 0 版 本 ,称 作 f v w m 2 。 版 本 2 . 0 . 4 6 正 在 以 b e t a 版
的 形 式 发 放 . f v w m 2 扩 展 了 f v w m 的 功 能 , 以 便 提 供 更 好 的 配 置 文 件 ,允 许 定 制 各
个 窗 口 , 及 提 供 更 好 的 模 块 支 持 。 例 如 , 面 版 模 块 在 fvwm2 下 配 置 了 一 个 CDE
一 样 的 任 务 条 ( C D E 代 表 Common Desktop Environment, 公 共 桌 面 环 境 , UNIX
图 形 接 口 的 新 标 准 .) fvwm2 是 现 在 fvwm 的 发 展 项 目 , 将 会 代 替 fvwm 1.24. 当
fvwm2 的 新 版 本 出 来 时 你 可 以 从 fvwm 的 网 页 上 得 到 它 们 , 现 在 的 地 址 是
w w . h p c . u h . e d u / f v w m . h t m l . 新 版 本 的 f v w m 的 R P M 包 装 也 可 以 在 R e d h a t 的 ftp
站 点 下 的 Redhat contrib 路 径 下 找 到 : fvwm2-2.0.46-4.8386.rpm 。 f v w m 2 的 第
一个完整的发放版本就要完成了。

4.6.3Xview: olwm 和 olvwm


fvwm 窗 口 管 理 器 的 一 个 替 代 选 择 是 Xview. Xview 是 Sun 系 统 的 OpenLook
界 面 的 实 现 。 熟 悉 OpenLook 的 人 将 发 现 Linux 版 本 运 行 几 乎 一 样 。 你 可 以 从
s u n s i t e . u n c . e d u 这 个 ftp 站 点 下 载 X v i e w , 在 / p u b / L i n u x / l i b s / X / x v i e w 路 径 下 ,
xview-3.2p1.4.bin.tar.gz 文 件 。 这 个 Xview 包 既 包 括 了 olwm 也 包 括 了 olvwm
窗 口 管 理 器 , 还 有 几 个 工 具 , 例 如 一 个 时 钟 和 一 个 文 本 编 辑 器 。 Xview 的 olvwm
版本支持虚拟桌面。
你 的 O p e n L i n u x 光 盘 上 的 X v i e w 包 里 有 一 套 共 享 的 库 ,提 供 了 O p e n L o o k
菜 单 , 按 钮 , 和 其 它 的 窗 口 小 部 件 。 这 些 在 许 多 Linux 应 用 程 序 里 用 得 到 。 虽 然
使 用 这 些 Xview 窗 口 小 部 件 的 应 用 程 序 不 用 使 用 Xview 窗 口 管 理 器 , 可 是 它 确
实 使 用 了 Xveiw 的 库 。 因 此 你 可 以 在 f v w m 窗 口 管 理 器 下 运 行 象 进 行 文 本 编 辑
的 Xview 编 辑 器 这 样 的 程 序 。 文 本 编 辑 器 使 用 的 按 钮 和 菜 单 是 Xview 的 窗 口 小
部 件 , 虽 然 他 可 以 在 一 个 fvwm 窗 口 下 运 行 。 你 的 OpenLinux 的 Xview 包 不 是
完 整 的 Xview 窗 口 管 理 器 。 它 是 库 的 一 个 子 集 , 包 括 一 些 常 用 的 应 用 程 序 。
要 安 装 完 整 的 Xview 窗 口 管 理 器 , 首 先 从 sunsite.unc.edu 下 载 它 的 tar 文
件 。 然 后 你 得 去 掉 O p e n L i n u x 的 X v i e w 包 的 安 装 (使 用 L i s a )。 检 查 一 下 以 确 认
目 录 /usr/openwin 已 经 完 全 被 删 除 了 。 如 果 不 是 , 到 / u s r 路 径 下 (使 用 cd/usr)用
rm -r openwin 命 令 将 它 删 除 。 然 后 使 用 tar xvf 命 令 解 开 你 下 载 的 Xview 包 。
这 在 你 的 当 前 路 径 下 创 建 了 一 个 叫 usr 的 子 目 录 。 在 这 个 usr 目 录 下 有 一 个 叫
做 o p e n w i n 的 子 目 录 , 把 它 移 到 /usr 路 径 下 (注 意 斜 杠 )。
# mv usr/openwin/usr
然 后 运 行 /usr/openwin/lib 目 录 下 的 ldconfig 命 令 。 这 将 安 装 X v i e w 库 。
# ldconfig/usr/openwin/lib
确 认 一 下 /usr/openwin/lib 项 在 /etc/ld.so.config 文 件 里 。 因 为 X v i e w 文 件 不
是 一 个 RPM 包 , 你 必 须 自 己 完 成 安 装 任 务 , 例 如 将 文 件 移 到 正 确 的 路 径 下 和 运
行 ldconfig 。 别 的 窗 口 管 理 器 可 以 得 到 R P M 格 式 的 , 那 可 以 自 动 安 装 和 为 你 设
置它们的文件。
图 4-5Xview Openlook 窗 口 管 理 器
从 f v w m 开 始 o l w m , 你 可 以 通 过 在 f v w m 工 作 区 域 菜 单 的 ”桌 面 ”项 的 窗 口 管
理 器 菜 单 中 选 择 ”切 换 到 o l v w m ”, 也 可 以 使 用 一 个 修 改 过 的 . x i n i t r c 文 件 来 调 用
o l v m 或 o l v w m 来 代 替 f v w m 。最 好 通 过 一 个 . x i n i t r c 文 件 开 始 来 使 用 o l v w m 。o l v w m
提 供 了 一 个 虚 拟 桌 面 , 象 fvwm 一 样 。 当 你 第 一 次 启 动 olvwm 窗 口 管 理 器 时 , 你
会看到一个空白的屏幕, 有一个带六个矩形区域的呼叫器显示在左上角。双击
任 何 一 个 矩 形 将 移 到 那 个 屏 幕 。 要 显 示 出 Xview 工 作 区 域 菜 单 , 用 右 键 在 屏 幕
的任意位置单击。工作区域菜单是一个可以别住的菜单。你可以在顶部看到一
个图钉形状的图案。如果你单击它, 工作区域菜单将保持显示在屏幕的那个地
方 。 再 单 击 一 下 图 钉 就 使 得 可 以 移 动 工 作 区 域 菜 单 。 工 作 区 域 菜 单 上 的 'X11
P r o g r a m '项 自 动 列 出 已 安 装 了 的 X 1 1 程 序 , 而 'X v i e w P r o g s '项 列 出 了 所 有 X v i e w
程 序 (安 装 在 /usr/openwin/bin 里 的 那 些 )。
窗 口 组 件 比 较 fvwm 起 来 略 有 不 同 , 虽 然 它 们 提 供 的 功 能 大 致 相 同 。 菜 单 用
右键显示。在工作区域菜单里, 你用右键单击菜单项右侧的小三角就可以显示
出 子 菜 单 。要 移 动 窗 口 和 别 住 的 菜 单 你 用 左 键 拖 动 窗 口 的 某 条 边 ( 不 是 象 在 f v w m
中 那 样 用 右 键 )。 见 图 4-5 。
Xview 组 件 安 装 在 /usr/openwin 目 录 下 。 这 里 你 将 发 现 一 个 子 目 录 , 例 如 是
/ u s r / o p e n w i n / b i n , 里 面 有 X v i e w 的 程 序 ; 和 / u s r / o p e n w i n / l i b ,里 面 有 X v i e w 的
库 。当 X -W i n d o w s 启 动 时 , 它 必 须 有 一 个 叫 做 O P E N W I N H O M E 的 外 壳 变 量 , 设
置 成 X v i e w 的 路 径 ,/usr/openwin 。 如 果 你 检 查 一 下 前 一 节 讨 论 过 的 你 的 .xinitrc
文件, 你将看到做出这样的赋值的一项。
/usr/openwin/lib 目 录 下 有 菜 单 文 件 , 这 是 用 来 显 示 Xview 工 作 区 域 菜 单 和
子菜单的。你可以象这些菜单中添加项, 如果你愿意。一项包括要显示的标签
和 将 采 取 的 行 动 。 例 如 , 要 在 工 作 区 域 菜 单 里 为 Netscape 加 一 项 你 得 把 下 面 这
项 放 到 openwin-menu 文 件 里 。 xview 的 m a n 页 面 里 有 Xview 菜 单 和 你 能 定 制
的项的详细解释。
"Netscape" exec/usr/bin/netscape.
你 的 光 盘 里 有 一 个 非 常 好 的 Xview 文 件 管 理 器 , 叫 做 treebrowser, 它 可 以
用 命 令 tb 来 激 活 。 也 有 一 个 L i n u x 版 本 的 X V f i l e m a n a g e r 可 用 , 你 可 以 从
X V f i l e m a n a g e r 网 站 ( 见 表 4 - 1 ) 下 载 它 。 按 照 IN S T A L L 文 件 的 指 令 来 安 装 它 。
装上了任何一个文件管理器之后 , 你就有了一个完整的桌面。你也可以在诸如
fvwm 或 AfterStep 的 别 的 窗 口 管 理 器 下 使 用 XVfilemanager 或 者 treebrowser,
只 要 你 保 留 Xview 的 库 。

4.6.4fvwm95 和 qvwm
fvwm95 和 qvwm 是 Linux 的 窗 口 管 理 器 , 有 一 个 W indows 95 的 用 户 界 面 ,
连带有任务条和启动菜单。窗口组件是一样的。你甚至可以将一个窗口最小化
到 任 务 条 上 。 fvwm95 是 基 于 fvwm2 窗 口 管 理 器 的 , 使 用 了 很 多 相 同 的 源 代 码 ,
而 且 象 fvwm2 一 样 , 它 支 持 模 块 。 现 在 , 它 没 有 文 件 管 理 器 , 不 过 有 一 个 正 在
开 发 中 。 它 叫 做 explorer 而 且 将 操 作 起 来 与 W indows 95 里 的 文 件 管 理 器 一 样 。
fvwm95 窗 口 管 理 器 有 几 个 窗 口 模 块 提 供 和 fvwm 类 似 的 功 能 。 在 W indows
9 5 的 任 务 条 之 外 , 它 有 一 个 按 钮 条 , 操 作 起 来 象 fvwm 的 任 务 条 一 样 。 象 Xterm
这 样 频 繁 使 用 的 程 序 有 自 己 的 按 钮 。 它 还 有 一 个 呼 叫 器 , 使 用 起 来 和 fvwm 的 呼
叫器一样, 给你提供六区域的虚拟桌面。一个小按钮条将带出一个带有很少的
应 用 程 序 的 任 务 栏 。 一 个 呼 叫 器 模 块 显 示 出 一 个 大 一 些 的 呼 叫 器 ,它 描 绘 四 个 标
有象因特网和开发这样的不同任务的桌面。你可以在桌面之间自由移动, 就像
在区域之间一样。在屏幕背景的任何地方单击都会弹出一个菜单 , 提供常用功
能 项 , 就 像 按 钮 条 这 样 的 模 块 一 样 。 见 图 4-6 。
图 4-6 带 有 启 动 菜 单 ,按 钮 条 ,pager,Xterm 窗 口 和 运 行 着 Netscape 的 fvwm95 窗 口 管
理器
f v w m 9 5 网 页 现 在 在 ftp://m i t a c 1 1 . u i a . a c . b e / h t m l - t e s t / f v w m 9 5 . h t m l , 有 一 个
官 方 的 镜 象 站 点 在
www.terraware.net/ftp/pub/Mirrors/FVWM95/fvwm95.html.(你 可 以 从 fvwm 网
页 连 到 它 , 而 从 w w w . c a l d e r a . c o m 网 址 的 L i n u x 资 源 页 可 以 连 到 前 者 )。 对 你 的
OpenLinux 系 统 , 最 好 从 Redhat ftp 网 址 , ftp.redhat.com/put/contrib/i386 下 载
软 件 的 R P M 版 本 ,虽 然 你 也 可 以 从 f v w m 9 5 网 址 下 载 它 。 还 有 几 个 图 表 包 你 应
该 安 装 。 另 外 , 如 果 你 希 望 进 行 OpenLinux Lite 的 标 准 安 装 , 你 就 得 先 从 你 的
光 盘 上 安 装 X -W i n d o w s 开 发 库 。 现 在 的 f v w m 9 5 包 列 表 如 下 和 更 新 的 版 本 核 对
一 下 。 用 rpm -i 来 安 装 它 们 。
fvwm95-2.0.43a-2.i386.rpm
fvwm95-icons-2.0.43a-2.i386.rpm
fvwm95-mini-icons-2.0.42-1.i386.rpm
fvwm95-modules-2.0.42a-1.i386.rpm
fvwm95-utils-2.0.42a-1.i386.rpm
qvwm 是 一 个 很 稳 定 的 W indows 95 样 式 的 窗 口 管 理 器 , 它 是 用 源 代 码 开 发
的。它是一个功能齐全的虚拟窗口管理器, 带有 9 个区域的呼叫器。快捷方 式
可以移到桌面上的任何位置。
但 是 , 它 现 在 还 是 处 于 beta 测 试 阶 段 的 产 品 。 一 个 带 qvmw Linux 可 执 行
的 R P M 包 可 以 在 R e d h a t 的 contrib 目 录 下 找 到 , 你 可 以 在 qv.myth.co.uk 得 到
从 q v w m 镜 象 站 点 下 载 的 大 约 最 新 版 本 的 源 代 码 , 或 者 从 表 4-1 列 出 的 主 页 。
使 用 简 单 的 的 xmkmf 和 make 命 令 你 可 以 轻 松 的 编 译 和 安 装 qvwm 。 qvwm 要
求 libg++和 xpm 库 , 所 以 在 试 图 运 行 这 个 窗 口 管 理 器 之 前 确 认 一 下 他 们 已 经 安
装。
q v w m 的 配 置 文 件 是 qvwm.system, 在 /usr/X11R6/lib/X11/qvwm 目 录 下 。
户 也 可 以 创 建 他 们 自 己 的 配 置 文 件 , 叫 做 .qvwmrc。 qvwm 的 man 页 里 面 详 细
说 明 了 如 何 做 ”启 动 ”菜 单 项 和 快 捷 方 式 。”启 动 ”菜 单 项 在 配 置 文 件 里 有 一 个 项 , 图
标 , 命令, 都用双引号引起来。对于快捷方式项, 输入快捷方式名字, 你想快 捷
方 式使用的图标 , 和将执行的命令。图标可以是任何像素图象。记得把像素 图
象 放 到 qvwm 的 pixmap 目 录 下 。 下 面 是 一 个 netscape 的 快 捷 方 式 。
"Netscape" "netscape.xpm" "netscape"

4.6.5LessTif: mwm
LessTif 是 一 个 OSF/Motif 克 隆 , 它 被 设 计 来 运 行 任 何 Motif 程 序 。 它 可 以
从 L e s s T i f 网 址 上 免 费 得 到 , 现 在 在 w w w . l e s s t i f . o r g / l e s s t i f . h t m l。 你 可 以 从
Caldera 网 址 Calderea Linux 黄 页 上 连 过 去 。 你 也 可 以 从 Redhat ftp 网 址 的
Redhat contrib 目 录 下 下 载 R P M 版 本 : lesstif-0.87-2.i386.rpm 。 你 用 命 令 m w m
激 活 LessTif。 现 在 , LessTif 不 能 运 行 任 何 Motif 程 序 。 项 目 仍 然 在 建 设 中 , 但
它 提 供 了 看 起 来 感 觉 象 Motif 那 样 的 窗 口 管 理 器 。

4.6.6AfterStep
图 4-7The AfterStep window manager
AfterStep 是 作 为 在 N e X T 操 作 系 统 上 使 用 的 N e X T S T E P 界 面 的 克 隆 兴 起
的 , 但 是 从 那 之 后 增 加 了 自 己 的 功 能 , 如 图 4-7 所 示 。 源 代 码 是 基 于 fvwm 窗 口
管 理 器 的 。 你 可 以 从 A f t e r S t e p 网 址 ( a f t e r s t e p . e d o c . c o m )下 载 A f t e r S t e p , 或 者
从 Redhat contrib 目 录 下 得 到 R P M 版 本 , AfterStep-1.0-3.i386.rpm. AfterStep
有 一 个 很 有 特 色 的 应 用 程 序 装 载 器 , 叫 做 Wharf, 它 有 其 他 应 用 程 序 的 包 。 还 有
弹 出 式 菜 单 和 N e X T S T E P 风 格 的 图 标 。 AfterStep 网 址 有 很 多 屏 幕 快 照 , 说 明
界 面 怎 样 不 同 的 设 置 。 还 提 供 有 例 子 .steprc 配 置 文 件 。

4.6.7Motif
Motif 是 私 有 的 软 件 : 你 必 须 向 开 发 者 支 付 大 概 1 5 0 美 元 来 购 买 它 。
Motif 和 X v i e w 是 两 个 主 要 的 相 互 竞 争 的 Unix 窗 口 界 面 , 代 表 着 两 种 不 同
的 窗 口 标 准 。 这 两 种 标 准 近 年 来 已 经 综 合 成 一 个 新 的 Unix 的 G U I 标 准 , 称 作 公
共 桌 面 环 境 ( C o m m o n D e s k t o p E n v i r o n m e n t C D E )。 现 在 已 经 有 了 f o r L i n u x 的
带 CDE 接 口 的 商 用 桌 面 。

4.7 C risplite 和 X E m a c s 编 辑 器

OpenLinux Lite 提 供 给 了 你 两 种 易 用 而 功 能 全 面 的 文 本 编 辑 器 , 它 们 是
Crisplites 和 X E m a c s 。 这 些 编 辑 器 合 并 了 V i 和 E m a c s 编 辑 器 中 体 现 的 许 多 特
征 (见 1 7 和 1 8 章 )。 同 时 , 你 能 享 受 到 基 于 窗 口 的 编 辑 器 带 来 的 使 用 方 便 。 你
可以使用菜单和工具条选择命令, 使用滚动条卷过文本, 重新设置窗口大小, 使
用 鼠 标 来 选 择 和 移 动 文 本 , 或 删 除 它 ( 见 图 4 - 8 )。

图 4-8Crisplite 编 辑 器
通 过 主 窗 口 的 Help 菜 单 , 你 可 以 打 开 在 线 帮 助 , 它 提 供 了 对 Crisplite 特 征
的详细解释。
C risplite 编 辑 器 已 经 安 装 在 你 的 O p e n L i n u x 系 统 上 了 。 在 C a l d e r a 桌 面 , 你
将 看 到 一 个 C r i s p l i t e 编 辑 器 的 图 标 。只 要 双 击 它 就 可 以 运 行 它 了 。现 在 , C r i s p l i t e
不 在 f v w m 工 作 区 域 菜 单 里 。 一 条 简 单 的 增 加 它 的 方 法 是 从 /usr/bin/mcr 程 序 创
建 一 个 到 /usr/X11R6/bin/mcr 的 连 接 。 它 可 以 用 标 题 mcr 显 示 其 它 的 应 用 程 序 。
要 运 行 XEmacs, 你 可 以 单 击 fvwm GoodStuff 任 务 条 上 的 它 的 按 钮 , 或 者 在
Xterm 窗 口 里 输 入 xemacs 命 令 。
C risplite 和 X E m a c s 编 辑 器 打 开 了 一 个 有 菜 单 和 工 具 条 的 窗 口 。 在 窗 口 中 ,
你可以输入文字。使用鼠标, 你可以拖动来选择文字。工具条按钮提供了标准
编 辑 功 能 的 简 捷 方 式 , 例 如 打 开 和 存 储 文 件 , 拷 贝 和 粘 贴 文 本 。 C risplite 设 计 来
让你同时在许多个不同的文件上工作的。你可以打开几个窗口, 每个对一个单
独的文件操作。使用鼠标 , 你可以从一个点中到另一个。你还可以打开缓冲区
来 编 辑 文 本 , 以 后 可 以 将 之 存 进 文 件 。参 看 1 8 章 关 于 更 详 细 的 X E m a c s 的 讨 论 。
你 还 可 以 用 一 个 简 单 的 基 于 屏 幕 的 Crisplite 版 本 , 它 使 用 你 的 命 令 行 界 面 。
你 不 用 启 动 X-W i n d o w s 和 桌 面 。 这 种 命 令 行 版 本 的 Crisplite 只 使 用 方 向 键 来
移动光标和控制, 用功能键来发命令。但是它确实提供了一种全屏的视野, 允许
你 在 文 本 上 逐 屏 的 工 作 。 你 用 c r 命 令 启 动 Crisplite 的 命 令 行 版 本 , 通 常 后 面 跟
着你要编辑的文件的名字。
$ cr myfile
你要编辑的文件将在屏幕上显示。你可以输入新的文字或者用方向键移到
文 本 的 别 的 位 置 。 CTRL-W 键 将 你 的 文 件 存 盘 , CTRL-E 命 令 允 许 你 打 开 另
一 个 文 件 或 一 个 新 的 。 C T R L - X 键 退 出 编 辑 器 。 参 考 Crisplite 手 册 以 得 到 编 辑
命 令 的 列 表 。想 使 用 C r i s p l i t e 时 用 V i 命 令 的 可 以 用 - m v i 选 项 激 活 编 辑 器 , c r - m v i .
如 果 你 想 在 fvwm 工 具 条 上 用 一 个 按 钮 访 问 Crisplite, 你 得 在 /usr/lib/X11/fvwm
目 录 下 的 system.fvwmrc.goodstuff 文 件 中 为 它 做 一 项 。 前 一 节 讨 论 fvwm 工 具
栏的时候演示了这样的一项。

4.8 总 结 : X-W i n d o w s

使 用 Linux X-W indows 窗 口 管 理 器 和 桌 面 , 你 可 以 和 你 的 系 统 通 过 菜 单 , 窗


口 , 和 图 标 交 互 , 以 及 建 立 高 效 和 简 单 的 对 Linux 程 序 和 Internet 工 具 的 访 问 。
要 开 始 X - W i n d o w s , 在 命 令 行 输 入 startx 命 令 。 X - W i n d o w s 支 持 很 多 种 窗 口 管
理 器 和 桌 面 。 有 几 种 已 经 列 在 表 4-1 中 了 , 连 同 你 可 以 下 载 它 们 的 网 址 。 fvwm
窗口管理器支持虚拟和多桌面。它还有自己的工作区域菜单和任务栏 , 你可以
从 中 开 始 X-Windows 程 序 。 一 个 虚 拟 桌 面 把 桌 面 延 伸 以 包 含 许 多 个 屏 幕 视 图 .
fvwm 虚 拟 桌 面 支 持 4 个 屏 幕 视 图 而 fvwm95 支 持 6 个 。 有 些 项 , 如 任 务 栏 认 为
是粘性的, 将在所有的虚拟桌面的视图上显示。
桌 面 程 序 , 如 Looking Glass 集 成 了 文 件 和 程 序 管 理 的 功 能 。 通 过 目 录 窗 口 ,
你可以使用图标和菜单来管理文件和目录。目录窗口的菜单有你可以用来拷贝、
移动、打印、删除或对文件采取的其它操作的命令。
你 可 以 从 Redhat contrib 目 录 , ftp.redhat.com/pub/contrib/i386 下 以 R P M
包形式下载大多数的窗口和文件管理器。当然, 很难说清某一特定的软件包是
什 么 。 Linux 资 源 网 络 黄 页 会 组 织 这 些 软 件 , 分 类 并 描 述 看 , 例 如 ,
www.chariott.com/linapps.html 下 的 Linux 应 用 程 序 和 工 具 页 面 。
表 4 - 1 窗 口 和 文 件 管 理 器 ( 对 大 多 数 软 件 包 ,用 位 于 R e d h a t C o n t r i b 目 录 下 的
R P N I 安 装 ,ftp//ftp.redhat.com/pub/contrib/i386)
窗口管理器 命令 描述 网址
TWM Twm Tom 的 窗 口 管 理

FVWM Fvwm 免 费 的 虚 拟 窗 口 www.hpc.uh.edu
管 理 器 (v.1.24) /fvwm
FVWM2 fvwm2f vwm 2.0 版 本 (现 www.hpc.uh.edu
在 是 Beta 版 ) /fvwm
FVWM95 fvwm95 在 fvwm2 上 建 立 www.terraware.
的 W indows95 界 net/ftp/pub/Mirro
面 rs/FVWM95/fvw
m95.html
Q 虚拟窗口管理 Qvwm 使 用 直 接 编 程 写 www-
器 的 W indows95 界 masuda.is.s.u-
面 tokyo.ac.jp/~kou
rai/qvwm/qvwm-
e.html
Xview Olwm Xview 窗 口 管 理 器 sunsite.unc.edu/
(OpenLook) pub/
olvwm olvwm 支 持 一 个 Linux/libs/X/xvie
虚拟桌面 w
续表
AfterStep Afterstep 基 于 NeXTSTEP afterstep.edoc.c
的界面 om
LessTif mwm Motif 的 一 个 克 隆 www.lesstif.org
Motif Mwm Motif 窗 口 管 理 器
和 桌 面 (商 业 产 品 )
类 似 Macintosh mlvwm Macintosh 界 面 的 www.iaseste.or.
一 个 克 隆 ,/linux 的 at
虚 拟 窗 口 带 有 菜
单 的 窗 口 管 理 器
管理器
amiwn amiwn A m iga 窗 口 管 理 www.lysator.liu.s
器界面 e/~marcus/amiw
n
通用窗口管理器 gwm GNU 的 窗 口 管 理 ftp.x.org/contrib/
器 window
managers/gwm
W indowMaker Wmaker NeXSTEP 的 一 个 www.myth.co.uk
克隆 /~ximenes
Enlightment 一 个 原 始 的 窗 口 www.rasterman.
管理器 com
续表
K 桌面 Kwm K 桌 面 环 境 窗 口 , www.kde.org
和一
kde 些 工 具 文 件 管 理
器,
Freedom Lite Freedom 界 面 的 fsw.com
窗口管理器
文件管理器
C a ldera 桌 面 lg Caldera 桌 棉 的 商 www.caldera.c
(Looking Glass) 业产品 om
X fm xfm 文件管理器 col/contrib/RPM
S( 打 开 Linux
CD-ROM)
treebrowser tb 用 Xview 工 具 的
文件管理器
XV 文件管理器 xvfilemgr 用 Xview 工 具 和 www.info.polymt
图 标 的 文 件 管 理 l.ca/ada1/coyote
器 /www
续表
TKDesk tkdesk 一 个 基 于 TK 的 文 www.people.mai
件管理器 nz.netsurf.de/~b
oliktkdesk
M idnight Norton mc.blackdown.o
Commander Commander 的 一 rg/mc
个克隆
Commander
F ilerunner 文件管理器 www-
c.informatik.uni-
hanover.de/~kai
ser/dfm
DFM dfm 文件管理器 www.cd.chalmer
s.se/~hch/filerun
ner.html
第 二 部 分 Linux 操 作

第 5 章 Shell 操 作

S h e l l 是 一 种 命 令 解 释 器 , 它 提 供 了 一 个 面 向 行 ( l i n e - O r i e n t e d )的 用 户 和 操 作
系 统 间 的 交 互 式 界 面 ,你 在 命 令 行 中 输 入 命 令 ,它 们 被 成 指 令 送 往 操 作 系 统 。 S h e l l
这 一 能 力 提 供 了 许 多 高 级 的 特 征 。 例 如 ,Shell 有 一 套 特 殊 的 字 符 集 可 以 产 生 文
件 名 ,它 可 能 重 定 向 输 入 和 输 出 ,它 也 可 以 在 后 台 运 行 操 作 ,使 你 用 来 完 成 其 它 任
务。
人 们 为 Linux 开 发 了 三 种 不 同 的 Shell 它 们 分 别 是 :the Bourne Again
s h e l l ( B A S H ) , 公 众 域 K o r n S h e l l ( P D K S H )和 T C S H S h e l l 。 你 可 以 利 用 所 有 这 三
种 Shell,尽 管 B A S H 是 使 用 较 少 的 ,本 书 中 都 使 用 了 B A S H S h e l l 。 你 只 需 要 一
种 S H E L L 即 可 完 成 你 的 工 作 。 这 一 章 讨 论 了 所 有 的 S h e l l 的 共 同 特 征 ,而 1 5 和
1 6 章 讨 论 了 B A S H , P D K S H 和 T C S H 的 不 同 之 处 ,你 可 以 看 到 如 何 设 置 S H E L L
来 使 用 别 名 ( a l i a s e s )历 史 事 件 和 系 统 变 量 。 这 些 S H E L L 甚 至 有 自 己 编 程 语 言 。
这 一 章 主 要 讲 述 命 令 执 行 的 共 同 特 征 ; 尤 其 是 ,命 令 行 编 辑 , 特 珠 字 符 、 重 定 向 、
管 道 、 变 量 、 scripts 和 作 业 控 制 。

5.1 命 令 行

当 你 登 录 到 l i n u x 时 , 你 可 以 看 到 一 个 命 令 界 面 。 它 是 一 条 线 ,在 这 里 你 可 以
输 入 带 着 操 作 和 参 数 的 任 何 命 令 ,一 个 Shell 提 示 符 .如 下 所 未 ,标 识 了 命 令 行 的
开 始。

Linux 安 装 了 Bourne Again Shell 通 常 叫 作 BASH Shell。 BASH shell 有
一 个 美 元 提 示 符 ;但 L i n u x 有 其 它 几 种 S h e l l , 每 一 种 S h e l l 都 有 自 己 的 提 示 符 。 不
同 的 几 种 Shell 将 在 第 1 5 章 讨 论 。
当 系 统 提 示 符 出 现 时 ,你 已 登 寻 到 系 统 中 ,提 示 符 标 识 了 命 令 行 的 开 始 ,你 现 在
可 以准备输入命令和它的参数了。
在 下 一 个 例 子 中 ,用 户 输 入 了 d a t e 命 令 , 它 可 以 显 示 日 期 。 用 户 在 第 一 行 输
入 了 命 令 ,然 后 按 E n t e r 执 行 命 令 。
$ date
Sun July 7 10:30:21 PST 1996
当 你 登 录 时 , 你 实 际 进 入 了 Shell, 它 将 你 输 入 的 命 令 加 以 翻 译 并 传 递 给 系
统 , S h e l l 遵 循 一 定 的 语 法 对 命 令 进 行 翻 译 ,命 令 行 中 输 入 的 第 一 个 字 必 行 是 一 个
命 令 的 名 字 ,第 二 个 字 是 命 令 的 选 项 和 参 数 , 命 令 行 中 的 每 个 字 必 须 由 空 格 或 t a b
来隔开
$ Command Options Arguments.
当 你 输 入 一 人 L i n u x 命 令 时 , S h e l l 首 先 读 入 这 一 命 令 的 名 字 ,然 后 核 实 是 否
确 实 存 在 此 名 字 的 命 令 。 如 果 没 有 这 一 命 令 ,Shell 会 显 示 一 条 出 错 的 信 息 。

5.1.1 选 项 和 参 数
选 项 是 一 个 只 有 一 个 字 母 的 代 码 ,它 前 面 有 一 横 线 ,选 项 可 用 于 改 变 命 令 执 行
的 动 作 的 类 型 。 有 选 项 的 命 令 的 例 子 是 ls 命 令 。 没 有 选 项 的 ls 命 令 列 出 了 你 当
前 目录中所有文件的列表。它只列出各个文件的名字。而不显示其它更多的信
息 。
加 入 - l 项 ,ls 命 令 将 改 变 它 的 任 务 , 它 会 为 每 个 文 件 列 出 一 行 信 息 ,诸 如 数 据 大
小 和 数 据 最 后 被 修 改 的 时 间 。 在 下 一 个 例 子 中 ,用 户 使 用 了 带 - L 选 项 的 ls 命 令 , - l
项 之 前 的 横 线 是 必 要 的 ,Linux 用 它 来 区 别 选 项 和 参 数 。
$ ls -l
另 一 个 选 项 - a ,可 以 列 出 目 录 中 所 有 的 文 件 ,包 括 一 些 被 隐 藏 的 文 件 ,隐 藏 文 件
通 常 是 配 置 文 件 ,文 件 名 以 点 号 开 头 。 正 因 为 这 个 原 因 ,这 些 原 因 这 些 文 件 被 称 作
点 文 件 (dotfiles) 。 在 大 部 分 情 况 下 ,你 可 以 使 用 组 合 选 项 。 你 应 在 选 项 之 前 加 一
起 始 横 线 。 然 后 列 出 你 想 要 的 选 基 本 项 。 例 如 :选 项 -al, 会 列 出 你 目 录 中 所 有 文
件 的 信 息 ,包 括 任 何 的 隐 藏 文 件 。
$ ls -al
ls 命 令 的 另 一 选 项 是 - F 。 利 用 这 一 选 项 ,ls 命 令 可 以 用 于 前 面 带 斜 杠 的 形 式
显 示 目 录 名 ,这 样 你 便 可 以 轻 松 地 加 以 识 别 。
大多数命令都被设计为可以接纳参数。参数是你在命令行中的选项之后 键
入 的 一 个 词 。 许 多 文 件 管 理 命 令 把 文 件 名 作 为 参 数 。 例 如 ,如 果 你 只 想 显 示 某 一
特 定 文 件 的 信 息 ,你 可 以 把 此 文 件 的 名 字 加 在 - L 选 项 之 后 。
$ ls -l mydata
你 可 以 输 入 参 数 ,也 可 以 不 用 输 入 , 取 决 于 不 同 命 令 。 一 些 命 令 , 例 如 l s ,不 需
要 任 何 参 数 。 另 一 些 命 令 可 能 需 要 一 些 最 小 数 目 的 参 数 。 例 如 ,cp 命 令 至 少 需 要
两 个 参 数 ,如 果 参 数 的 数 目 与 命 令 所 要 求 的 不 符 , S h e l l 将 给 出 出 错 信 息 。
记 住 在 命 令 行 中 选 项 先 于 参 数 输 入 。 以 cp 命 令 为 例 ,用 于 检 查 覆 盖 状 况
( o v e r w r i t e c o n d i t i o n )的 选 项 -i 先 于 文 件 名 参 数 键 入 。 以 下 是 一 些 输 入 命 令 的 例
子:
$ ls 无选项命令
$ ls -F 带选项命令
$ cp -i mydata newdata 带选项和参数的命令

5.1.2 命 令 行 特 征
命 令 行 实 际 上 是 你 可 以 编 辑 的 一 个 文 本 缓 冲 区 。 在 按 回 车 之 前 ,你 可 以 在 输
入 时 的 文 本 上 进 行 编 辑 。 编 辑 的 功 能 是 有 限 的 ,但 它 的 确 提 供 了 一 个 改 正 错 误 的
方 法 。BACK SPACE 和 DEL 键 允 许 你 删 除 刚 刚 敲 入 的 字 符 。 利 用 这 种 字 符 删
除 的 功 能 ,你 可 以 整 行 删 除 ,并 让 你 所 输 入 的 东 西 ,只 要 你 愿 意 。 C T R L - D 组 合 键
可 以 整 行 删 除 ,并 让 你 从 提 示 符 重 新 开 始 ,下 一 个 例 子 中 ,用 户 键 入 了 datl 而 不 是
d a t e 。 利 用 B A C K S P A C E ,用 户 删 除 了 1 , 然 后 输 入 了 e 。
$ datl
$ dat
$ date
你 将 在 其 中 进 行 工 作 的 Shell 是 B A S H S h e l l , 你 缺 省 的 Shell, 这 一 Shell 具
有 特 别 的 命 令 行 编 辑 能 力 ,这 一 功 能 在 你 学 习 L i n u x 时 会 非 常 有 用 。 你 可 以 在 执
行 之 前 对 命 令 任 意 修 改 ,也 可 以 在 命 令 行 上 任 意 移 动 并 插 入 或 删 除 字 符 。 这 时 复
杂 命 令 尤 其 必 要 。 你 可 以 用 CTRL-D 或 DEL 删 除 光 标 所 在 位 置 的 字 符 。 如 要
加 入 文 本 , 只 需 将 光 标 移 动 到 需 要 加 入 字 符 的 地 方 ,然 后 键 入 字 符 即 可 。 你 在 任 何
时 候 都 可 以 按 E N T E R 键 来 执 行 命 令 。 例 如 , 如 果 在 输 入 命 令 时 ,你 犯 了 一 个 拼 写
错 误 ,无 须 重 新 输 入 整 个 命 令 ,你 只 要 利 用 编 辑 操 作 即 可 发 改 正 这 一 错 误 。
你也可以利用上箭头来重新显示你刚执行的命令。然后你可以重新执行这
一 命 令 , 也 可 以 对 之 修 改 ,执 行 修 改 后 的 命 令 。 当 你 进 行 一 些 重 复 性 的 工 作 , 例 如
编 辑 同 一 个 文 件 时 ,你 会 发 现 这 一 个 功 能 是 非 常 有 用 的 。 当 你 执 行 了 一 个 你 键 入
不 正 确 的 命 令 时 这 一 功 能 也 非 常 有 用 的 。 在 这 种 情 况 下 ,会 显 示 一 条 了 出 错 信 息
和 一 个 空 的 命 令 行 ,按 上 箭 头 后 便 可 重 新 显 示 刚 才 执 行 的 命 令 , 将 之 改 正 并 重 新 执
行 。 这 样 ,你 就 无 需 再 重 新 敲 入 整 个 命 令 了 。 B A S H s h e l l 保 存 着 你 以 前 敲 过 的 命
令 的 列 表 , 这 一 列 表 被 称 作 历 史 列 表 ( h i s t o r y l i s t ) 。 按 动 上 箭 头 ,你 便 可 以 在 命 令
行上逐次显示各条命令。下箭头使你在列表中向下移动。当你将以前的这些命
令 显 示 在 命 令 行 上 时 ,你 就 可 以 修 改 并 执 行 这 些 命 令 。 这 一 特 征 将 在 第 1 5 章 进
行详细的讨论。
一 些 命 令 可 能 很 复 杂 ,需 要 比 较 长 的 时 间 来 执 行 。 当 你 执 行 了 错 误 的 命 令 时 ,
你 可 以 中 断 并 中 止 这 些 命 令 的 执 行 ,只 要 利 用 中 断 键 -C T R L _ C 或 D E L 。
你 可 以 在 一 个 命 令 行 中 置 入 多 个 命 令 ,或 者 你 也 可 以 用 几 行 来 输 入 一 个 命
令 。 如 果 要 在 一 行 中 输 入 多 个 命 令 ,用 分 号 将 命 令 隔 开 。 下 一 个 例 子 说 明 了 如 何
在 一 个 命 令 行 中 输 入 ls 和 c p 命 令 。
$ ls-F ; c p - T m y d a t a n e w d a t a
在 按 回 车 键 之 前 加 入 一 个 反 斜 杠 ,你 便 可 以 在 几 个 命 令 行 中 输 入 一 个 命 令 。
反 斜 杠 可 以 有 效 地 将 一 个 命 令 行 持 续 到 另 一 行 。 在 下 一 个 例 子 中 ,cp 命 令 是 在 三
行 中 输 入 的 。 开 始 的 两 行 以 反 斜 杠 告 终 ,有 效 地 使 三 行 保 持 一 个 命 令 行 。
$ cp -i \
my data \
newdata

5.2 特 殊 字 符 和 文 件 名 参 数 :* ,?,[ ]

文 件 名 是 参 数 命 令 中 最 常 见 的 参 数 。 你 通 常 只 知 道 文 件 名 的 一 部 分 ,或 者 你
想 参 看 几 个 有 相 同 扩 展 名 的 不 同 文 件 ,或 者 以 相 同 字 符 开 头 的 文 件 。 Shell 提 供
了 一 套 特 殊 字 符 来 查 找 , 匹 配 并 产 生 文 件 名 的 列 表 。 这 些 特 殊 的 字 符 是 星 号 ,问 号
和 中 括 号 ( * ,? ,[ ]) 。 给 出 一 个 部 分 文 件 名 , S h e l l 用 找 到 的 匹 配 操 作 来 查 找 文 件 并
产 生 文 件 的 一 个 列 表 。 Shell 用 找 到 的 匹 配 文 件 列 不 来 代 替 部 分 文 件 名 变 量 。 这
些 文 件 名 更 可 以 成 为 那 些 操 作 文 件 的 命 令 ,如 ls 。表 5 - 1 (在 本 章 最 后 ) 列 出 了 s h e l l
的 特殊字符。
你 可 以 利 用 星 号 ,*,来 查 找 以 特 定 字 符 集 开 头 或 结 尾 的 文 件 。 你 可 将 星 号 置
于 字符集的开头或结尾以形成进行文件名查找的格式。如果星号置于字符集
前 , s h e l l 会 查 找 以 字 符 集 结 尾 的 文 件 。 如 果 星 号 置 后 ,则 会 查 找 以 字 符 集 开 头 的
文 件。任一匹配的文件名都会被拷贝入此操作产生的一个文件列表中。在下一
个 例 子 中 ,所 有 以 ”d o c ”开 头 的 文 件 都 会 被 查 找 并 产 生 一 个 列 表 。然 后 所 有 以 ”d a y ”
结 尾的文件也会被查找并产生一个列表。
$ ls
doc1 doc2 document docs mydoc monday tuesday
$ ls *day
monday tuesday
$
文 件 名 常 常 包 括 一 个 扩 展 名 ,它 由 句 号 标 识 , 同 一 个 单 字 符 构 成 。 扩 展 名 没 有
特 殊 的 地 位 ,它 只 是 构 成 文 件 名 的 字 符 的 一 部 分 。 使 用 星 号 使 选 择 带 扩 展 的 文 件
变 得 很 容 易 。 在 下 一 个 例 子 中 , 星 号 用 来 显 示 那 些 具 有 .C 扩 展 的 文 件 。 .C 前 的
星 号 构 成 了 ls 的 参 数 。
$ ls * .C
calc.c main.c
你 也 可 以 使 用 特 殊 字 符 , * ,与 r m 命 令 一 起 同 时 删 除 几 个 文 件 。 星 号 首 先 选 择
具 有 特 定 扩 展 的 一 个 文 件 列 表 ,或 者 以 给 定 字 符 集 开 头 或 结 尾 的 文 件 列 表 ,然 后 将
此 文 件 列 表 提 交 r m 命 令 来 进 行 删 除 。 在 下 一 例 子 中 ,rm 命 令 删 除 了 所 有 以 ”d o c ”
开 头的文件。
$ rm doc*
星 号 本 身 会 匹 配 所 有 的 文 件 。 如 果 你 只 用 一 个 星 号 作 为 rm 命 令 的 参 数 ,那
么 所 有 的 文 件 都 会 删 除 。 下 一 例 子 中 , l s * 命 令 列 出 了 所 有 文 件 ,rm * 命 令 则 删 除 了
所 有文件。
$ ls *
doc1 doc2 document docs mydoc , myletter your letter
$ rm *
$ ls

你 应 小 心 使 用 星 号 ,尤 其 使 用 r m 命 令 时 ,这 一 组 合 可 能 是 非 常 危 险 的 。 在 没
有 一 选 项 的 rm 命 令 中 错 误 放 置 的 星 号 可 能 会 删 除 的 你 所 有 文 件 。 下 一 例 子 中
第 一 个 命 令 只 删 除 了 那 些 具 有 .C 扩 展 的 文 件 。 而 第 二 命 令 删 除 了 所 有 的 文 件 。
注 意第二个命令中星号与句号之间的空格。在命令行中空格的作用是一个定界
符 ,用 于 分 隔 参 数 。 星 号 被 认 为 是 一 个 参 数 与 r m 命 令 一 起 使 用 时 ,会 指 示 r m 删
除 所有的文件。
$ rm *.C
$ rm * .C
问 号 ? 只 匹 配 文 件 名 中 一 个 单 一 的 不 完 整 字 符 。假 设 你 想 匹 配 d o c 1 和 d o c A ,
而 没 有 d o c u m e n t 。 星 号 会 匹 配 所 有 长 度 的 文 件 名 ,而 问 号 会 将 匹 配 限 制 于 一 个
字 符 。 下 一 例 子 匹 配 了 以 ”d o c ”开 头 , 后 面 只 有 一 个 不 同 字 符 的 文 件 。
$ ls
doc1 docA document
$ ls doc?
doc1 docA
如 果 你 愿 意 ,你 可 以 使 用 多 个 问 号 ,你 也 可 以 把 问 号 放 在 文 件 搜 索 样 式 的 任 一
地 方 ,下 一 例 子 寻 找 一 个 可 能 有 三 个 不 同 字 符 的 文 件 样 式 。
$ ls ? y ? o c ?
mydocs mylock sydoc1
你 可 以 将 ? 和 其 它 的 特 殊 字 符 组 合 来 创 建 一 些 非 常 强 大 的 匹 配 操 作 ,假 设 你
想 查找只有一个字符扩展的所有文件。你可以使用星号来做文件名的正确匹配,
使 用 ? 来 做 单 字 符 扩 展 的 匹 配 ,:* 、 ? 。 下 一 例 子 中 ,用 户 显 示 了 所 有 只 有 一 个
扩 展字符的所有文件。
$ ls *.?
clac.c lib.a
星 号 和 问 号 标 识 的 是 文 件 名 中 不 完 整 的 部 分 , 而 中 括 号 [], 允 许 你 查 找 一 套 有
效 的 字 符 。放 在 中 括 号 中 的 任 何 字 符 都 要 与 文 件 名 相 匹 配 。假 设 你 想 列 出 以 ”d o c ”
开 头 , 而 以 “L ”或 ”A ”结 尾 的 所 有 文 件 , 你 对 以 ”I ”、 ”B ”其 它 字 符 结 尾 的 文 件 不 感 兴
趣 。下面即是如何来完成这一要求的方法:
$ ls
doc1 doc2 doc3 docA docB docD document
$ ls doc [1A]
doc1 docA
你 也 可 以 列 出 一 个 字 符 集 的 范 围 ,而 不 是 将 之 逐 一 列 出 。 在 上 限 和 一 限 字 符
之 间的横线将选择此范围内的所有字符。这一范围通常由所使用的字符集来决
定 。 在 A S C I I 码 字 符 集 中 ,a-g 这 一 范 围 将 选 择 包 括 a,g 在 内 的 a-g 间 的 所 有 字
符 。 下 一 例 子 中 , 以 ”d o c ”开 头 并 以 ”1 - 3 ”之 间 的 字 符 结 束 的 文 件 将 被 选 取 。 然 后
以 B-E 间 字 符 结 否 的 文 件 将 匹 配 。
$ ls d o c [1 - 3 ]
doc1 doc2 doc3
$ ls doc[B-E]
docB docD
你可将中括号与其它特殊字符组合在一起产生非常灵活的匹配操作符。假
设 你 只 想 列 出 以 .C 或 O 作 扩 展 的 文 件 。
$ ls * .[co]
main.c main.o calc.c
可 能 有 时 候 特 殊 字 符 是 文 件 名 的 一 部 分 。 在 这 种 情 况 下 ,你 需 要 在 前 面 加 一
反 斜 杠 来 引 用 这 一 特 殊 字 符 来 进 行 文 件 查 找 。 在 下 一 例 子 中 ,用 户 要 查 找 一 人
以 ? 结 尾 的 文 件 , a n s w e r ? 。 然 而 ? 是 一 人 特 殊 字 符 它 会 匹 配 所 有 以 ”a n s w e r ”开
头 并 另 有 一 人 或 多 个 字 符 的 文 件 。 在 这 种 情 况 下 , 用 户 在 ”? ”号 前 加 一 反 斜 杠 来
qwote 该 字 符 以 查 找 文 件 。
$ ls a n s w e r s \ ?
answers?
你可以将一个被引用的字符与特殊字符在文件名中相组合。在下一个例子
中 , 用 户 列 出 所 有 以 ”a n s w e r ? ”开 头 并 有 扩 展 的 文 件 。
$ ls a n s w e r s \ ? . *
answers?.quiz answers?.mid answers? .final
5.3 标 准 输 入 /输 入 和 重 定 向

当 设 计 U N I X 系 统 时 ,文 件 的 逻 辑 结 构 和 物 理 结 构 是 有 区 别 的 。 物 理 上 ,文 件
以 随 机 的 块 存 放 。 逻 辑 上 ,文 件 是 持 续 的 b y t e 流 。 作 为 U N IX 的 一 个 版 本 , L i n u x
也 具 有 相 同 的 组 织 形 式 。 除 了 一 些 特 别 的 系 统 调 用 ,用 户 无 须 参 照 ,文 件 的 物 理 结
构 。 对 用 户 而 言 ,所 有 文 件 具 有 单 一 的 形 式 - b y t e 流 。 任 何 一 个 文 件 都 可 以 轻 易
地 拷 贝 或 添 加 入 另 一 个 文 件 ,因 为 所 有 文 件 都 具 有 相 同 的 组 织 形 式 。 在 这 种 意 义
上 讲 , L i n u x 中 只 有 一 种 文 件 的 标 准 ,即 b y t e 流 文 件 。 L i n u x 对 字 符 文 件 或 记 录 文
件 ,文 本 文 件 或 二 进 制 文 件 不 作 区 别 。
这一逻辑文件组织形式延伸到输入和输出操作。输入和输出操作中的数据
像 文 件 一 样 进 行 组 织 。 键 盘 输 入 的 数 据 被 置 入 为 持 续 byte 集 的 数 据 流 中 。 命 令
或 程 序 的 输 出 也 被 置 入 数 据 流 中 ,并 被 设 为 持 续 的 byte 集 。 这 种 输 入 数 据 流 在
L i n u x 中 被 称 为 标 准 输 入 ,而 输 出 数 据 流 被 称 作 标 准 输 出 。
因 为 标 准 输 入 和 标 准 输 出 与 文 件 具 有 相 同 的 组 织 形 式 ,它 们 可 以 很 容 易 地 与
文 件 相 互 作 用 。 L i n u x 有 一 种 重 定 向 能 力 ,利 用 它 你 可 轻 易 地 将 数 据 移 入 和 移 出
文 件 。 你 可 以 将 输 出 重 定 向 ,使 之 不 在 屏 幕 上 显 示 ,而 是 存 到 一 个 文 件 中 。 你 也 可
以 将 标 准 输 入 重 定 向 ,使 之 从 键 盘 移 至 一 个 文 件 ,那 么 输 入 就 会 对 文 件 进 行 读 取 而
不是对键盘。
图 5-1 标 准 输 出 ,标 准 输 入 和 shell
当 L i n u x 命 令 被 执 行 并 产 生 输 出 时 ,这 一 输 出 被 置 于 标 准 输 出 数 据 流 中 。 标
准 输 出 数 据 流 的 缺 省 目 的 地 是 一 个 设 备 ,在 这 种 情 况 下 ,是 屏 幕 设 备 ,诸 如 键 盘 和
屏 幕 ,被 当 作 文 件 对 待 ,它 们 的 组 织 形 式 接 收 、 发 送 b y t e 流 , 正 如 同 那 些 b y t e 流 文
件 。 屏 幕 是 一 种 显 示 持 续 byte 流 的 设 备 ,缺 省 情 况 下 ,标 准 输 出 将 把 数 据 送 到 屏
幕 设 备 , 屏 幕 将 数 据 显 示 出 来 。 例 如 ,ls 命 令 产 生 所 有 文 件 名 的 一 个 列 表 , 并 将 之
输 出 到 标 准 输 出 。 在 标 准 输 出 中 的 这 一 byte 流 被 导 向 屏 幕 设 备 。 然 后 文 件 名 列
表 被 显 示 在 屏 幕 上 。 cat 命 令 也 将 输 出 结 果 送 往 标 准 输 出 。 文 件 的 内 容 被 拷 贝
到 标 准 输 出 中 ,而 一 标 准 输 出 缺 省 的 目 的 地 是 屏 幕 。 然 后 文 件 的 内 容 便 在 屏 幕 上
显 示 出 来 。 图 5 - 1 说 明 了 标 准 输 入 与 键 盘 ,标 准 输 出 和 屏 幕 设 备 的 相 互 关 系 。

5.3.1 重 定 向 标 准 输 出 :> 和 > >


假 如 你 不 想 在 屏 幕 上 显 示 一 个 文 件 列 表 ,而 想 把 列 表 存 入 一 个 文 件 。 换 言 之 ,
你 想 将 标 准 输 出 指 向 一 个 文 件 而 不 是 显 示 屏 幕 。 要 做 到 这 一 点 ,你 应 在 命 令 行 中
L i n u x 命 令 之 后 加 入 一 个 输 出 重 定 向 符 > (大 于 号 ) 和 一 个 文 件 的 名 字 。 表 5 - 2 (在
本 章 最 后 提 到 )列 出 了 重 定 向 符 的 不 同 使 用 方 法 。 在 下 一 个 例 子 中 , c a t 命 令 的 输
出 被 由 显 示 设 备 重 定 向 到 了 一 个 文 件 。 正 如 图 5 - 2 所 示 ,m y l e t t e 文 件 的 内 容 并
未 在 屏 幕 上 显 示 ,它 被 重 定 向 到 文 件 m e w l e t t e r 当 中 去 了 。
$ cat myletter >newlette2
重 定 向 操 作 创 建 了 新 的 目 的 文 件 。 如 果 这 一 文 件 已 经 存 在 ,它 将 被 标 准 输 出
中 的 数 据 所 覆 盖 。 你 可 以 对 n o c l o b b e r 特 征 进 行 设 置 ,以 防 止 在 重 定 向 操 作 中 对
已 有 文 件 进 行 覆 盖 。 在 这 种 情 况 下 ,对 已 有 文 件 的 重 定 向 操 作 将 会 失 败 。 你 可 以
在 重 定 向 操 作 符 后 加 一 个 惊 叹 号 来 强 行 忽 略 noclobber 属 性 。 下 一 例 子 设 置 了
B A S H s h e l l 的 n o c l o b b e 属 性 ,然 后 对 o l d l e t t e r 文 件 强 行 写 入 , 假 如 这 一 文 件 已 经
存 在 的 话 ( 图 5 - 2 )。
$ set -o noclobber
$ cat mylette>! obllete

图 5-2 标 准 输 出 重 定 向 到 一 个 文 件
重定向文件的创建
尽 管 重 定 向 操 作 符 和 文 件 名 都 被 放 在 命 令 之 后 ,重 定 向 并 不 是 在 命 令 之 后 执
行 。 实 际 上 ,它 是 在 命 令 执 行 之 前 执 行 ,重 定 向 操 作 创 建 了 该 文 件 并 在 它 从 标 准 输
出 接 收 数 据 之 前 设 置 重 定 向 。 如 果 这 一 文 件 已 经 存 在 ,它 将 会 被 破 坏 并 不 被 同 名
的 文 件 所 代 替 。 实 际 上 ,产 生 输 出 结 果 的 这 一 命 令 只 有 在 重 定 向 文 件 创 建 之 后 才
被执行。
在 下 一 个 例 子 中 ,ls 命 令 的 输 出 被 由 显 示 设 备 重 定 向 到 一 个 文 件 中 。 首 先 ,ls
命 令 作 文 件 列 表 , 在 第 二 个 命 令 中 ,ls 命 令 将 文 件 列 表 重 定 向 到 listf 文 件 中 。 然 后
c a t 命 令 显 示 了 存 在 l i s t f 文 件 中 的 文 件 列 表 。 注 意 l i s t f 中 的 文 件 列 表 包 括 listf 的
名 字 。 由 ls 命 令 产 生 的 文 件 列 表 将 会 包 括 由 重 定 向 操 作 创 建 的 文 件 的 文 件 名 ,在
这 一 例 子 中 ,即 listf 。 l i s t f 文 件 首 先 由 重 定 向 操 作 所 创 建 , 然 后 ls 命 令 将 与 其 它 文
件 一 起 进 行 列 表 。 然 后 l s 的 文 件 列 表 输 出 被 重 定 向 到 l i s t f 文 件 中 ,而 不 是 在 显
示设备上输出。
$ ls
mydate intro preface
$ ls> listf
$ cat listf
mydata intro listf preface
当 你 试 图 将 同 一 个 文 件 作 为 命 令 的 输 入 文 件 和 重 定 向 的 目 的 文 件 时 ,会 有 错
误 发 生 。 在 这 种 情 况 下 ,因 为 重 定 操 作 是 先 执 行 的 ,因 为 输 入 文 件 是 已 存 在 的 ,它
会 存 坏 并 被 同 名 的 文 件 所 代 替 。 当 命 令 执 行 时 ,它 就 会 发 现 输 入 文 件 是 空 的 。
在 下 面 介 绍 的 c a t 命 令 中 ,文 件 m y l e t t e r 既 是 重 定 向 输 出 的 目 的 文 件 名 ,又 是
c a t 命 令 的 输 入 文 件 名 。 正 如 下 一 个 例 子 所 示 ,重 定 向 操 作 首 先 执 行 , 将 m y l e t t e r
文 件 破 坏 ,然 后 用 一 个 同 名 的 m y l e t t e r 文 件 替 换 它 。 然 后 再 c a t 命 令 并 试 图 读 入
m y l e t t e r 文 件 中 所 有 的 数 据 。 然 而 ,现 在 在 m y l e t t e r 文 件 中 已 经 什 么 都 没 有 的 。
$ cat mylettaer>myletter
添 加 标 准 输 出 :>>
你也可以利用重定向操作符将标准输出添加到一个现存的文件中去。标准
输 出 中 的 数 据 被 添 加 到 文 件 的 末 尾 ,而 并 不 会 覆 盖 这 一 文 件 。 在 下 一 个 例 子 中 , 文
件 myletter 和 oldletter 天 加 到 alletters 中 去 。 alletters 文 件 将 会 包 含 mylteler
和 oldletter 文 件 的 内 容 。
$ cat myletter >>alletters
$ cat oldletter >>alletters

5.3.2 标 准 输 入
许 多 linux 命 令 可 以 标 准 输 入 中 接 收 数 据 。 标 准 输 入 本 身 从 一 个 设 备 或 文 件
中 接收数据。标准输入的缺省设备是键盘。键盘上敲入的字符置于标准输入中,
然 后 再 被 导 向 Linux 命 令 。
c a t 命 令 如 果 没 有 文 件 参 数 ,它 将 会 从 标 准 输 入 中 读 入 数 据 。 当 你 在 键 盘 上
敲 入 数 据 时 ,每 一 个 字 符 都 会 被 置 在 标 准 输 入 中 ,然 后 被 导 向 c a t 命 令 。 c a t 命 令
会 将这些字符送往标准输出——显示设备——它会将字符在屏幕上显示出来。
当 你 做 上 述 工 作 时 ,你 会 发 现 当 你 敲 入 一 行 , 这 一 行 会 迅 速 在 屏 幕 上 显 示 出
来 。 这 都 归 功 于 在 许 多 Linux 系 统 中 采 用 的 行 缓 冲 方 法 。 行 缓 冲 (Line buffering)
要 求 用 户 键 入 整 个 行 ,然 后 输 入 才 会 被 送 往 标 准 输 入 。 cat 命 令 每 次 从 标 准 输 入
获 得 一 整 行 ,然 后 它 会 将 之 迅 速 在 屏 幕 上 显 示 。 在 下 一 个 例 子 中 , 用 户 执 行 了 c a t
命 令 而 未 加 任 何 参 数 。 当 用 户 输 入 一 整 行 ,它 被 送 往 标 准 输 入 , c a t 命 令 将 之 从 标
准 输 入 中 读 出 ,并 送 到 标 准 输 出 。
$ cat
This is a new line.
This is a new line
for the cat
for the cat
command
command
^D
$
c a t 命 令 将 会 持 续 执 行 下 去 ,直 到 一 个 C T R L - D 字 符 在 一 行 中 输 入 。 C T R L - D
是 任 何 L i n u x 文 件 的 结 束 字 符 。 在 某 种 意 义 上 ,用 户 是 在 键 盘 上 创 建 一 个 文 件 ,并
用 文 件 结 束 字 符 来 结 束 文 件 。 记 住 ,标 准 输 入 ,同 标 准 输 出 一 样 ,有 着 与 L i n u x 文
件 相 同 的 格 式 。 如 果 你 将 c a t 命 令 与 重 定 向 结 合 起 来 ,你 就 有 一 种 简 易 的 为 存 储
你 敲 入 一 个 文 件 的 数 据 。正 如 下 一 个 例 子 所 示 , c a t 操 作 的 输 出 被 重 定 向 到 m y d a t
文 件 中 。 mydat 文 件 中 将 存 在 所 有 从 键 盘 敲 入 的 数 据 。 cat 命 令 在 这 种 情 况 下
仍 然 没 有 文 件 参 数 。 它 将 从 标 准 输 入 -键 盘 设 备 — — 中 接 收 数 据 。 重 定 向 操 作 符
将 c a t 命 令 的 输 出 重 定 向 到 m y d a t 文 件 ,cat 命 令 与 任 何 文 件 之 间 并 没 有 直 接 的
关 系 。 它 只 是 从 标 准 输 入 中 接 收 数 据 ,然 后 将 输 出 送 往 标 准 输 出 。
$ cat >mydat
This is a new line
for the cat
command
^D
$

5 . 3 . 3 标 准 输 入 的 重 定 向 :<
如 同 标 准 输 出 一 样 ,你 也 可 以 对 标 准 输 入 重 定 向 。 标 准 输 入 可 从 一 个 文 件 获
得 而 不 是 键 盘 。 对 标 准 输 入 重 定 向 的 操 作 符 是 小 于 号 < 。 在 下 一 个 例 子 中 ,标 准
输 入 被 重 定 向 为 从 文 件 m y lettev 而 不 是 从 键 盘 中 获 得 输 入 。 mylertter 文 件 中 的
内 容 被 重 定 向 操 作 读 入 标 准 输 入 。 然 后 cat 命 令 读 入 标 准 输 入 并 在 屏 幕 上 显 示
m y letter 的 内 容 。
$ cat < myletter
hello Christopher
How are you today
$
你 可 将 对 标 准 输 入 和 标 准 输 出 的 重 定 向 结 合 起 来 ,在 一 个 例 子 中 , c a t 命 令 没
有 文 件 名 参 数 。 没 有 文 件 名 参 数 的 cat 命 令 将 会 从 标 准 输 入 中 接 收 输 入 并 将 输
出 送 往 标 准 输 出 。 然 而 , 标 准 输 入 被 重 定 向 为 从 一 个 文 件 中 接 受 数 据 ,而 标 准 输 出
重定向为将数据置于一个文件中。
$ cat <mylttev >neolettev
5 . 4 管 道 :|

你 有 时 会 发 现 处 于 这 样 一 种 情 形 ,你 需 要 将 数 据 由 一 个 命 令 传 至 另 一 个 命
令 。 换 句 话 说 ,你 想 将 一 个 命 令 的 标 准 输 出 送 向 另 一 个 命 令 ,而 不 是 一 个 目 的 文
件 。假设你想将一个文件列表送往打印机。你需要执行两个命令来完成这一工
作 :ls 命 令 来 产 生 文 件 列 表 和 l p r 命 令 来 将 列 表 送 往 打 印 机 。实 际 上 , 你 需 要 获 得 ls
命 令 的 输 出 并 将 之 作 为 lpr 命 令 的 输 入 。 你 可 以 想 象 为 数 据 由 一 个 命 令 流 向 另 一
个 命 令 。 要 在 linux 中 形 成 这 样 一 种 联 系 ,你 应 使 用 称 为 管 道 的 功 能 。 管 道 操 作
符 |( 竖 线 条 字 符 )放 在 两 个 命 令 之 间 二 者 之 间 形 成 了 联 系 。 一 个 命 令 的 标 准 输 出
成 了 另 一 个 命 令 的 标 准 输 入 。 管 道 操 作 接 收 了 置 于 管 道 之 前 的 命 令 的 输 出 ,并 将
数 据 作 为 置 于 管 道 之 后 命 令 的 输 入 。 如 下 例 所 示 ,你 可 以 用 一 个 管 道 符 将 ls 命 令
和 l p r 命 令 连 接 起 来 ,ls 命 令 产 生 的 文 件 名 列 表 被 通 过 管 道 送 往 l p r 命 令 。
$ ls | lpr
你 可 以 将 管 道 操 作 同 诸 如 特 殊 字 符 等 s h e l l 的 其 它 特 生 结 合 起 来 ,并 完 成 一 些
特 殊 的 操 作 。 下 一 个 例 子 中 只 打 印 了 以 .c 为 扩 展 的 文 件 。 ls 命 令 利 用 星 号 和 .c
来 产 生 一 个 只 具 有 .c 扩 展 的 文 件 列 表 ,然 后 这 一 列 表 被 通 过 管 道 送 往 l p r 命 令 。
$ ls * .c | lpr
重 定 向 只 是 简 单 地 将 输 出 放 入 一 个 文 件 ,管 道 则 将 输 出 送 往 另 一 个 linux 命
令 。你也许想知道为什么这一功能不能由重定向来完成。人在头脑中保持一个
文 件 和 一 个 命 令 之 间 区 别 的 概 念 :一 个 文 件 是 一 个 包 含 数 据 的 存 贮 媒 体 。 你 可 以
对 之存贮或读。一个命令是执行指令的程序。一个命令可能会对文件进行数据
的 读 写 , 但 命 令 本 身 绝 不 是 文 件 。 重 定 向 可 将 数 据 由 一 个 程 序 送 往 一 个 文 件 ,但 它
不能将数据从一个程序送往另一个程序。只有文件才能成为重定向操作的目的
地 ,程 序 则 不 能 。
然而你可以通过一系列的重定向操作来模拟管道的过程。你可以将一个命
令 的 输 出 送 入 一 个 文 件 。 然 后 ,在 第 二 行 ,你 可 以 将 此 文 件 作 为 要 执 行 命 令 的 重 定
向的输入。下一个例子用了两个不同的命令的重定向来打印一个文件名列表。
同样的任务在上一个例子中已由管道操作完成。管道操作字面上获得一个命令
的标准输出并将之作为另一个命令的标准输入。
$ ls * .c > tenpfile
$ lpr < tenpfile
到 现 在 为 止 ,我 们 一 直 利 用 文 件 名 来 作 输 入 ,但 是 管 道 是 作 用 于 一 个 命 令 的 标
准 输 出 的 ,而 不 管 这 一 输 出 是 什 么 。 注 意 到 这 一 点 是 非 常 重 要 的 。 一 个 文 件 甚 至
几 个 文 件 的 内 容 都 可 能 通 过 管 道 由 一 人 命 令 送 往 另 一 个 。 在 下 一 个 例 子 中 ,cat
命 令 读 入 m y d a t a 文 件 的 内 容 ,并 将 内 容 输 出 , 然 后 通 过 管 道 送 给 l p r 命 令 。
$ cat mydata | lpr
假 定 你 想 将 敲 入 的 字 符 打 印 ,而 不 是 一 个 文 件 的 数 据 。 记 住 没 有 文 件 参 数 的
cat 命 令 将 从 标 准 输 入 中 读 入 数 据 。 在 下 一 个 例 子 中 , c a t 从 键 盘 ,而 不 是 从 文 件
中 读 入 输 入 ,并 将 输 出 通 过 管 道 送 往 l p r 命 令 , c a t 命 令 在 l p r 命 令 之 前 执 行 ,因 此
你 可 以 先 在 键 盘 上 敲 入 你 的 数 据 ,并 以 文 件 结 束 符 C T R L D 结 尾 ,一 个 管 通 的 b y t e
流可能来自于任何来源。
$ cat | lpr
This text will
be printed
^D
$
L i n u x 为 c a t 提 供 了 一 个 -n 选 项 以 在 输 出 文 件 内 容 时 , 加 入 行 的 标 量 。 你 想
打 印 有 行 标 量 的 文 件 ,然 后 将 此 输 入 送 往 l p r 命 令 进 行 打 印 。 例 如 :
$ cat -n m ydata | lpr
为 显 示 一 个 具 有 行 标 量 的 文 件 , 你 做 的 大 都 是 同 样 的 事 情 , 在 这 种 情 况 下 ,有 标
号 的 输 出 通 常 会 由 管 道 送 到 more 命 令 以 进 行 一 屏 幕 一 屏 幕 的 检 查 。 你 甚 至 可
同 时 指 定 几 个 文 件 , 把 它 们 的 输 出 由 管 道 送 到 m o r e 命 令 ,来 检 查 所 有 这 些 文 件 。
在 下 一 个 例 子 中 ,m y d a t a 和 p r e f a c e 文 件 都 被 标 量 并 由 管 道 送 到 m o r e 命 令 以 进
行 屏幕检查。
$ cat -n mydata preface | more
L i n u x 有 许 多 命 令 可 产 生 修 改 过 的 输 出 ; 有 -n 选 项 的 cat 命 令 即 是 其 中 之
一 。 另 一 个 是 s o r t 命 令 。 s o r t 命 令 读 入 文 件 内 容 ,并 且 产 生 一 个 以 首 字 母 顺 序 来
安 排 每 行 的 版 本 。 这 一 命 令 叫 作 过 滤 器 。 过 滤 器 将 在 14 章 详 细 讨 论 它 们 通 常 同
管 道 一 起 工 作 。 在 下 一 个 例 子 中 ,产 生 了 m y l i s t 的 一 个 被 s o r t 处 理 过 的 版 本 并 将
之 由 管 道 - 送 往 m o r e 命 令 以 便 进 行 屏 幕 的 显 示 。 注 意 原 有 的 文 件 ,m y l i s t 并 没 有
改 变 本 身 也 没 有 被 sort 处 理 。 只 有 sort 在 标 准 输 出 中 的 输 出 才 会 被 会 分 类 。
$ sort mylist | more
你 当 然 可 以 将 几 个 命 令 组 合 起 来 ,并 将 每 对 用 管 道 符 连 接 起 来 。 一 个 命 令 的
输 出 可 由 管 道 送 往 另 一 命 令 ,然 后 ,另 一 命 令 也 可 将 它 的 输 出 送 往 第 三 个 命 令 。 假
定 你 有 一 个 清 单 列 表 的 文 件 ,你 想 把 它 用 字 母 序 和 行 号 把 它 打 印 出 来 。 要 打 印 这
种 字
母 序 有 行 号 的 文 件 , 你 可 以 先 用 s o r t 命 令 产 生 一 个 处 理 过 的 版 本 ,然 后 用 管
道 送
给 c a t 命 令 。 有 - n 选 项 的 c a t 命 令 把 s o r t 处 理 过 的 列 表 作 为 自 己 的 输 入 ,然
后 产
生 一 人 首 字 母 序 ,有 行 号 的 列 表 输 出 ,并 将 之 由 管 道 送 往 l p r 命 令 进 行 打 印 。
下 一
个 例 子 中 展 示 了 这 一 命 令 ,图 5 - 3 说 明 了 m y l i s t 的 一 个 首 字 母 序 ,有 行 号 的 版
本 如
何进行打印。
$ sort mylist | cat -n | lpr
你 也 可 能 用 一 种 比 较 繁 琐 的 办 法 来 完 成 这 一 任 务 ,利 用 重 定 向 和 若 干 单 独 的
命 令 。 在 这 种 情 况 下 ,需 要 两 个 新 的 临 时 文 件 ( s f i l e 和 n f i l e )来 存 贮 每 一 操 作 的 输

$ sort mylist > sfile
$ cat -n < sfile >nifle
$ lpr < nfile
图 5-3 连 接 x 多 个 命 令 的 管 道
利 用 标 准 输 出 参 数 - ,可 以 细 致 地 控 制 管 道 送 往 一 个 命 令 的 标 准 输 入 。 当 你 用
横 线 作 为 一 个 命 令 的 参 数 时 ,它 代 表 着 标 准 输 入 。 假 定 你 想 打 印 一 个 有 顶 部 有 其
目 录 的 文 件 形 式 ,pwd 命 令 输 出 一 个 目 录 名 ,cat 命 令 输 出 一 个 文 件 的 内 容 。 在 这
种 情 况 下 ,cat 命 令 需 要 将 文 件 和 由 管 道 传 送 的 pwd 命 令 的 标 准 输 入 同 进 作 为 自
己 的 输 入 。 c a t 命 令 将 有 两 个 参 数 :由 横 线 代 表 的 标 准 输 入 和 要 打 印 的 文 件 名 。
下 一 个 例 子 中 ,pwd 命 令 产 生 了 目 录 名 并 由 管 道 送 往 cat 命 令 。 对 cat 命 令
而 言 ,由 管 道 送 入 的 标 准 输 入 现 在 包 含 着 目 录 名 。 如 横 线 所 代 表 的 ,标 准 输 入 现 在
是 cat 命 令 的 第 一 个 参 数 。 c a t 命 令 将 目 录 名 和 文 件 的 内 容 拷 贝 到 标 准 输 出 ,并
由 管 道 送 往 l p r 命 令 以 进 行 打 印 。 如 果 你 想 将 目 录 名 印 在 文 件 内 容 之 后 ,只 要 把
横 线 作 为 后 一 个 参 数 ,文 件 名 作 第 一 个 参 数 即 可 ,正 如 c a t m y l i s t - 。
$ pwd | cat -mylist | lpr
5.4.1 管 道 和 重 定 向 :tee
假 定 你 想 将 标 准 输 入 重 定 向 到 一 个 文 件 并 且 同 时 ,在 屏 幕 上 显 示 输 出 的 内 容 ,
这 样 你 便 可 以 确 认 你 在 存 贮 的 东 西 。 用 tee 命 令 你 便 可 以 做 到 这 一 点 。
t e e 命 令 将 标 准 输 出 拷 贝 到 一 个 文 件 ,标 准 输 出 被 拷 贝 到 的 新 文 件 是 t e e 命 令
的 参 数 。 标 准 输 出 继 续 前 进 ,但 当 它 经 过 tee 命 令 时 ,它 的 内 容 被 拷 贝 到 一 个 文
件 。 这 就 好 像 标 准 输 出 被 分 作 两 个 拷 贝 , 一 个 被 重 定 向 入 一 个 文 件 ,而 另 一 个 叫 继
续 前 进 ,通 常 是 去 往 显 示 设 备 。 下 一 个 例 子 将 文 件 mylist 的 内 容 拷 贝 到 文 件
n e w l i s t 中 ,并 将 内 容 显 示 在 屏 幕 上 。
$ cat mylist | tee newlist
当 你 正 在 更 改 输 出 , 并 且 你 想 将 输 出 存 入 一 个 文 件 ,同 时 要 观 察 到 更 改 的 内 容
时 , t e e 命 令 是 非 常 方 便 的 。 在 下 一 个 例 子 中 ,文 件 m y l i s t 又 被 s o r t 处 理 并 且 处 理
的 内 容 由 管 道 送 至 t e e 命 令 。 t e e 命 令 既 将 s o r t 处 理 的 输 出 存 入 一 个 叫 作 sfile
的 文 件 ,又 将 其 屏 幕 上 显 示 了 出 来 。
$ sort mylist | tee sfile
compwter
ncodem
screen
$
你 也 可 以 利 用 重 定 向 将 输 出 存 一 个 文 件 ,然 后 再 它 打 印 出 来 。
$ s o r t m y l i s t >sfile
$ cat sfile
computer
screen
$
假 如 ,你 需 要 将 你 的 输 出 存 入 一 个 文 件 并 且 把 它 打 印 出 来 。 这 种 情 况 下 , 标 准
输 出 需 要 传 送 另 一 个 命 令 。 你 需 要 利 用 t e e 命 令 来 把 输 出 拷 贝 到 一 个 文 件 中 ,同
时 让 标 准 输 出 经 管 道 关 入 下 一 个 命 令 。 在 下 一 个 例 子 中 ,sort 命 令 的 输 入 首 先 由
管 道 送 到 t e e 命 令 , t e e 命 令 将 输 出 拷 贝 入 文 件 sfile 。 输 出 本 身 再 由 管 道 送 到 l p r
命令以进行打印。
$ sort mylist |tee sfile | lpr
当你使用管道和重定向时要当心。标准输出的重定向确定 了标准输出的目
的 地 。 标 准 输 出 会 被 存 贮 在 那 一 目 的 文 件 中 。 一 旦 被 存 贮 ,就 没 有 什 么 输 出 由 管
道 送 往 下 一 个 命 令 了 。 重 定 向 不 能 在 管 道 内 部 发 生 ,尽 管 它 可 以 被 置 于 一 系 列 管
道 操 作 的 末 尾 。 下 一 个 例 子 是 管 道 和 重 定 向 的 可 行 的 使 用 方 法 。 sort 命 令 的 输
出 经 由 管 道 送 往 带 -n 选 项 的 c a t 命 令 来 加 入 行 标 量 ,最 后 的 结 果 被 存 贮 在 文 件
nfile 中 。
$ sort mylist | cat -n >nfile
如 果 你 想 要 将 文 件 存 入 nfile 并 把 它 打 印 出 来 应 应 样 ? 你 不 能 做 如 下 类 似 的
操作:
sort mylist | cat -n > nfile | lpr E R R O R
存 贮 文 件 并 将 之 进 行 打 印 的 唯 一 方 法 是 使 用 tee 命 令 ,
$ sort mylist | cat -n | tee nfile | lpr
你 可 以 在 管 道 序 列 的 任 何 地 方 使 用 tee 命 令 。 下 一 个 例 子 中 存 贮 了 列 表 的
一 个 sort 处 理 的 版 本 并 打 印 了 一 加 行 标 号 的 另 一 个 版 本 。
$ sort mylist | tee sfile | cat -n | lpr

5.4.2 重 定 向 和 管 道 处 理 标 准 错 误 (standard Error): >&, 2>


当 你 执 行 命 令 时 ,有 可 能 会 有 错 误 发 生 。 你 可 能 给 出 了 数 目 不 正 确 的 参 数 ,也
有 可 能 发 生 某 种 系 统 错 误 。 当 发 生 错 误 时 ,系 统 会 产 生 一 个 错 误 信 息 。 通 常 情 况
下 ,这 一 错 误 信 息 会 同 标 准 输 出 一 起 显 示 在 屏 幕 上 。 然 而 , L i n u x 系 统 对 标 准 输 出
和 错 误 信 息 是 有 区 别 的 。 错 误 信 息 被 放 入 另 一 个 被 称 作 ”标 准 错 误 ”的 标 准 b y t e
流 中 。 在 下 一 个 例 子 中 ,cat 命 令 中 的 参 数 是 一 个 不 存 在 的 文 件 名 ,myintro 。 这 种
情 况 下 ,cat 命 令 将 会 产 生 一 个 错 误 :
$ cat myintro
cat :myintro not found.
$
因 为 错 误 信 息 是 在 除 标 准 输 出 外 的 另 一 单 独 的 数 据 流 中 ,即 使 你 已 将 标 准 输
出 重 定 向 到 一 个 文 件 ,错 误 信 息 仍 然 会 在 屏 幕 上 显 示 。 在 下 一 个 例 子 中 , c a t 命 令
的 标 准 输 出 被 重 定 向 到 文 件 m y d a t e 中 ,然 而 , 包 含 着 错 误 信 息 的 标 准 错 误 仍 然 被
定 向于屏幕。
$ cat myintro > mydata
cat : m yintro not found
$
如 同 标 准 输 出 一 样 ,你 也 可 以 对 标 准 错 误 重 定 向 。 这 意 味 着 你 可 以 将 错 误 信
息 存 入 一 个 文 件 ,以 备 将 来 参 考 。 如 果 你 需 要 一 个 错 误 记 录 的 话 ,这 一 功 能 是 非 常
有 用 的 。 如 同 标 准 输 出 一 要 ,标 准 错 误 的 缺 少 目 的 地 也 是 显 示 设 备 ,但 你 可 以 利 用
特殊的重定向操作符将标准错误定向到文件或你选择的任何设备。在这种情 况
下 ,错 误 信 息 将 不 会 在 屏 幕 上 显 示 。 对 标 准 错 误 的 重 定 向 依 赖 于 shell 重 定 向 的
一 个 特 殊 的 特 征 。 你 可 以 在 重 定 向 操 作 中 利 用 数 字 访 问 所 有 的 标 准 byte 流 。 数
字 0 , 1 和 2 分 别 代 表 着 标 准 输 入 ,标 准 输 出 和 标 准 错 误 。 缺 省 情 况 下 ,输 出 重 定 向
> 作 用 于 标 准 输 出 。 然 而 ,利 用 在 输 出 重 操 作 符 前 加 入 2 ,你 也 可 将 输 出 重 定 向 列
改 为 对 标 准 错 误 进 行 操 作 。 在 下 一 个 例 子 中 ,cat 命 令 又 会 产 生 一 个 错 误 。 错 误
信 息 被 重 定 向 到 以 2 为 标 量 的 标 准 byte 流 ,标 准 错 误 中 ,
$ cat nodata 2> myerrors
$ cat merrors
cat : nodata not found
$
你 也 可 以 将 错 误 信 息 添 加 入 一 个 文 件 ,只 要 利 用 数 字 2 和 重 定 向 添 加 操 作 符
>>即 可 。
在 下 一 个 例 子 中 , 用 户 将 标 准 错 误 添 加 入 文 件 m y e r r o r s 中 ,这 样 m y e r r o r s 便
成为一个错误的记录。
$ cat nodata 2 >> myerrors
$ cat compls 2>> myerrors
$ cat myerrors
cat : nodata not found
cat : compls not found
$
如 果 要 同 进 对 标 准 输 出 和 标 准 错 误 重 定 向 ,你 需 要 为 二 者 加 入 各 自 的 重 定 向
操 作 符 和 文 件 。 在 下 个 例 子 中 ,标 准 输 出 被 重 定 向 到 文 件 m y d a t a ,而 标 准 错 误 被
重 定 到 文 件 m y e r r o r s 中 。 如 果 n o d a t a 确 实 存 在 ,文 件 m y d a t a 将 包 含 它 内 容 的
一 个拷贝。
$ cat nodata 1 > mydata > myerrors
$ cat myerrors
cat : nodata not found
$
然 而 , 如 果 你 想 把 错 误 信 息 ,同 重 定 向 的 标 准 输 出 存 入 同 一 个 文 件 中 ,你 需 要 将
标 准 错 误 重 定 向 到 标 准 输 出 。 在 B A S H s h e l l 中 ,你 可 以 在 数 据 流 的 数 字 前 面 加
入 一 个 & 号 来 进 行 对 标 准 数 据 流 的 访 问 ,&1 指 向 标 准 输 出 。 你 可 以 在 重 定 向 操
作 中 利 用 这 种 访 问 方 法 ,将 一 个 标 准 b y t e 流 作 为 一 个 目 的 文 件 。重 定 向 操 作 2 > & 1
将 标准错误重定向到标准输出。
结 果 , 标 准 输 出 成 为 了 标 准 错 误 的 一 个 目 的 文 件 。与 之 相 反 ,重 定 向 操 作 1 > & 2
将 标准输出重定向到标准错误。
在 下 一 个 例 子 中 ,cat 命 令 使 用 了 一 个 不 存 在 的 文 件 -nodata-来 作 它 的 参 数 ,
结 果 产 生 的 错 误 信 息 的 重 定 向 到 文 件 mydata 。 标 准 错 误 和 标 准 输 出 的 内 容 都 将
被 存 入 同 一 个 文 件 中 mydata 。 错 误 信 息 不 再 继 续 在 屏 幕 上 显 示 而 是 存 入 一 个 文
件 之 中 。 如 果 想 看 错 误 ,信 息 只 须 显 示 文 件 mydata 的 内 容 即 可 。 如 果 nodata
文 件 确 实 存 在 ,m y d a t a 将 包 含 n o d a t a 文 件 的 内 容 而 不 是 错 误 信 息 。
$ cat nodata 1> mydata 2>&1
$ cat mydata
cat :nodata not found
> & 操 作 的 缺 省 输 出 流 是 标 准 输 出 ,缺 省 输 入 流 是 标 准 错 误 。 如 果 这 一 操 作 前
后 没 有 数 字 ,正 如 下 一 个 例 子 所 示 ,任 何 错 误 信 息 都 会 被 重 定 向 到 标 准 输 出 ,并 同
标准输出一同存入其目的文件。
$ cat nodata > & mydata

5.5 shell 变 量

你 在 s h e l l 当 中 定 义 一 个 变 量 ,这 一 变 量 被 称 作 - 逻 辑 上 - s h e l l 变 量 。 现 在 有 许
多 不 同 的 s h e l l 。 一 些 应 用 ,例 如 m a i l x 应 用 ,有 自 己 的 s h e l l 程 序 和 s h e l l 变 量 。
你 也 可 以 利 用 所 谓 的 s h e l l s c r i p t s 来 创 建 自 己 的 s h e l l。 你 有 一 个 一 旦 登 录 之 后
便 被 激 活 的 用 户 shell。 这 通 常 被 称 作 登 录 shell 。 特 殊 的 系 统 变 量 便 是 在 这 个 登
录 s h e l l 中 定 义 的 。 s h e l l 变 量 在 你 的 s h e l l 的 激 活 状 态 中 一 直 存 在 ,意 即 直 到 你
出 s h e l l 为 止 。 例 如 , 注 销 即 会 退 出 现 存 的 登 录 s h e l l。 当 你 再 一 次 登 录 时 , 你 在 登
录 (login) shell 所 需 的 任 何 变 量 都 必 须 重 新 进 行 定 义 。

5.5.1 变 量 的 定 义 和 Evaluation: =,$, set, unset


当 你 首 次 用 变 量 名 时 ,你 便 在 s h e l l 中 定 义 了 一 个 变 量 。 一 个 变 量 的 名 字 可 以
是 字 母 表 中 任 何 字 母 的 字 符 集 ,也 包 括 下 划 线 。 变 量 名 中 也 可 以 包 含 数 字 ,但 数 字
不 能 是 名 字 的 第 一 个 字 符 。 名 字 当 中 不 能 有 其 它 类 型 的 字 符 ,例 如 冒 号 、 & 号 , 甚
至 不 能 有 空 格 。 这 些 符 号 由 s h e l l 保 留 自 用 。 并 且 ,名 字 不 能 超 过 一 个 词 。 S h e l l
利 用 空 格 来 区 分 命 令 行 中 命 令 的 不 同 要 素 ,诸 如 选 项 ,参 数 和 命 令 的 名 字 。
你 可 用 赋 值 操 作 符 = 来 给 给 变 量 赋 值 。 你 应 敲 入 变 量 名 ,赋 值 操 作 符 , 然 后 是
要 赋 的 值 。 不 要 在 赋 值 操 作 符 前 后 留 任 何 空 格 。 诸 如 poet = Virgil 的 赋 值 操
作 会 失 败 。 ( c - s h e l l 有 一 个 稍 微 不 同 的 赋 值 操 作 ,在 本 章 稍 后 的 c - s h e l l 变 量 中 将
会 谈 及 )你 可 以 将 任 何 字 符 集 赋 给 一 个 变 量 。 下 一 个 例 子 中 ,变 量 p o e t 被 赋 值 为
字 符 串 V ivgil
$ poet=Vivgil
一 旦 你 为 一 个 变 量 进 行 了 赋 值 ,你 便 可 以 利 用 变 量 名 来 引 用 所 赋 值 。 通 常 你
可 以 把 变 量 的 值 作 为 一 个 命 令 的 参 数 。 利 用 在 变 量 名 前 加 $ 操 作 符 ,你 便 可 以 引
用 变 量 值 了 。 美 元 符 是 一 种 利 用 变 量 名 来 引 用 变 量 值 的 特 殊 字 符 。 Evalwation
可 获 得 变 量 的 值 ,通 常 是 一 个 字 符 集 合 。 这 个 字 符 集 将 代 替 命 令 行 中 的 变 量 名 。
只 要 变 量 名 前 加 入 了 $ 符 ,这 个 变 量 名 就 会 被 变 量 值 所 代 替 。 在 下 一 个 例 子
中 , s h e l l 变 量 p o e c 被 取 值 ,它 的 内 容 , V i r g i l , 被 用 作 e c h o 命 令 的 参 数 。 e c h o 命 令
只 是简单地将字符集显示在屏幕上。
$ echo $ poet
V irgil
你必须仔细区分对变量取值和变量名本身。如果变量名之前你没有加入$
符 , 那 么 你 就 只 有 变 量 名 本 身 , 在 下 一 个 例 子 中 ,变 量 名 之 前 没 有 $ 操 作 符 。 在 这
种 情 况 下 , e c h o 命 令 将 ”p o e t”作 为 自 己 的 参 数 , 因 此 显 示 了 ”p o e t ”。
$ echo poet
poet
变量的内容常被用作命令的参数。一种通常的命令参数是一个目录路径名。
要 重复的键入相同的目录路径是很乏味的。如果你把一个目录路径名赋值给一
个 变 量 ,你 不 对 变 量 取 值 即 可 。 当 对 变 量 用 $ 操 作 符 取 值 时 ,你 便 得 到 赋 给 这 个 变
量 的 目 录 路 径 。 下 一 个 例 子 中 将 目 录 路 径 名 赋 给 一 个 变 量 ,并 在 c o p y 命 令 中 使
用 了 变 量 的 值 。 ldir 的 取 值 ( 即 $ldir)是 路 径 名 / h o m e / c h r i s / l e t t e r s . c o p y 命 令 等
价 为 cp my/etter/home/chris/letters.
$ ldir =/home/chris/lettevs
$ c p m y l e t t e r $ ldir
你 可 以 利 用 set 命 令 获 得 已 定 义 变 量 的 列 表 。 下 一 个 例 子 利 用 set 命 令 显 示
了 所有已定义变量和它们的值。
$ set
poet virgil
ldir/home/chris/letters/old
$

5.5.2TCSH shell 变 量
TCSH chell 中 的 变 量 与 BASH chell 只 有 一 点 极 小 的 差 别 。 在 TCSH shell
中 ,你 要 用 s e t 命 令 和 赋 值 操 作 符 对 一 个 变 量 赋 值 。 要 给 一 个 变 量 赋 值 , 首 先 键 入
s e t , 然 后 是 变 量 名 ,赋 值 操 作 符 ,和 要 赋 的 值 ,赋 值 操 作 符 必 须 前 后 都 有 或 都 没 有 空
格 .例 如 — — s e t p o e t = V i r g i l 是 一 个 错 误 , 在 下 面 ,变 量 p o e t 被 赋 值 为 V i r g i l :
set poet=Vigil
同 BASH shell 类 似 ,TCSH S H E L L 利 用 美 元 符 进 行 取 值 ,取 值 操 作 获 得
变 量 的 值 ,它 通 常 是 一 套 字 符 集 。 然 后 字 符 将 代 替 命 令 中 的 变 量 名 。 在 下 一 个 例
子 中 , s h e l l 变 是 p o e t 被 取 值 , 其 值 V irgil 被 作 为 e c h o 命 令 的 参 数 .
>echo $poet
V igril
同 B A S H s h e l l 一 样 ,双 引 号 , 单 引 号 ,和 横 线 会 取 制 特 殊 字 符 的 取 值 . 下 一 个 例
子 中 ,双 引 号 限 制 了 特 殊 字 符 ? 。
>set hotice="Is the meeting romorrow?"
>echo $hotice
Is the meeting tomorrow?
>

5.6 shell 脚 本 :用 户 定 义 的 命 令

你 可 以 把 s h e l l 命 令 放 入 一 个 文 件 ,然 后 让 s h e l l 从 文 件 中 读 并 执 行 这 些 命
令 。 在 这 种 意 义 上 ,文 件 成 为 s h e l l 一 个 程 序 , 它 象 程 序 中 的 语 句 一 样 执 行 s h e l l
的 命 令 .包 含 着 shell 命 令 的 一 个 文 件 被 称 作 shell 脚 本 。
你 可 以 利 用 一 个 标 准 的 文 本 编 值 器 ,如 V i , 来 将 s h e l l 命 令 键 入 一 个 s c r i p t 文
件 。 s h 或 。 命 令 再 加 上 文 件 名 , 将 会 读 s c r i p t 文 件 并 执 行 其 中 的 命 令 ,下 一 个 例
子 中 ,文 本 文 件 l s c 中 包 含 着 l s 命 令 ,它 将 只 到 出 带 .c 为 后 缀 的 文 件 .
lsc
ls *c
$ sh lsc
main.c calc.c
$ .lsc
maim.c calc.c
你 可 以 利 用 对 s c r i p t 文 件 的 执 行 许 可 的 设 置 来 避 免 s h 或 .命 令 的 使 用 。 当
s c r i p t 文 件 最 早 由 文 本 编 辑 器 创 建 时 ,它 只 有 读 和 写 的 许 可 。 c h m o d 命 令 加 入 +
× 选 项 将 给 予 s c r i p t 文 件 执 行 许 可 ,( 第 7 章 中 将 讨 论 许 可 ) 一 旦 它 是 可 执 行 的 , 在
s h e l l 提 示 符 后 键 入 文 件 名 并 加 回 车 ,文 件 和 其 中 的 s h e l l 命 令 将 被 执 行 ,在 效 果
上 , s c r i p t 文 件 名 变 成 了 一 个 新 命 令 名 。 这 样 ,你 便 可 以 利 用 s c r i p t 文 件 来 设 计 并
创 建 自 己 的 l i n u x 命 令 , .你 只 须 设 置 一 次 许 可 ,在 下 一 例 子 中 , l s c 文 件 所 有 者 的 执
行 许 可 被 设 置 为 开 。然 后 l s c 这 一 s h e l l s c r i p t 如 同 其 它 l i n u x 命 令 一 样 得 到 执 行 。
$ chwod u+x lsc
$ lsc
main.c calc.c
如 同 其 它 l i m u x 命 令 一 样 , s h e l l s c r i p t 也 可 以 接 受 参 数 ,命 令 行 上 的 参 数 被 依
次 自 上 来 引 用 .利 用 $ 操 作 符 和 位 置 的 标 识 可 以 来 引 用 参 数 ,第 一 个 参 数 可 由 $ 1 引
用 ,第 二 个 参 数 $ 2 ,以 此 类 推 ,在 下 一 个 例 子 中 ,lsext script 打 印 有 特 殊 扩 展 的 文
件 。第 一 个 参 数 是 扩 展 ,该 s c r i p t 以 参 数 C 执 行 ,( 当 然 ,可 执 行 许 可 已 被 设 置 过 了 ) 。
lsext
ls * $l
$ lsext c
main.c calc.c
在 下 一 个 例 子 中 ,打 印 具 有 行 标 号 文 件 的 命 令 已 被 放 入 一 个 可 执 行 文 件
/phum 中 ,/phum 以 一 个 文 件 各 作 为 参 数 。 打 印 行 标 号 的 命 令 在 后 台 执 行 。
lphum
pr -t - n $ 1 / l p &
$ lphum mnydata
你 可 能 会 同 时 利 用 不 止 一 个 变 量 ,变 量 数 目 可 能 会 变 化 。 利 l p h u m 你 可 能 一
次 想 打 印 三 个 文 件 , 也 可 能 是 五 个 文 件 。 $ 操 作 符 再 加 上 星 号 , $ * ,引 用 命 令 行 上 所
有 的 参 数 。 利 用 $*你 便 可 以 接 收 数 目 可 变 的 参 数 。 在 下 一 个 例 子 中 ,lphum 使 用
了 $ * ,这 样 它 便 可 以 接 受 可 变 数 目 的 参 数 了 。
lphum
pr--t--n$*/lp&
$lphum mydata prefae
使 用 shell script 是 为 命 令 创 建 别 名 的 另 外 一 种 方 法 。 在 下 一 个 例 子 中 ,比
如 :shell script 包 含 着 一 个 有 一 定 选 项 的 rm 命 令 。 rm 在 删 除 一 个 文 件 之 前 会 征
求用户的认可
rmi
rm-i $*
$rmi mydata docl
5 . 7 作 业 : 后 台 , 杀 除 ( k i l l s )和 中 断

在 L i n u x 中 ,你 不 仅 可 以 控 制 命 令 的 输 入 、 输 出 ,也 可 以 控 制 它 的 执 行 。 你 可
以 在执行命令的同时在后台运行一个作业。你也可以在命令执行完之前取消一
个 命 令 。 你 其 至 可 以 中 断 一 个 命 令 ,然 后 再 从 断 的 地 方 继 续 执 行 ,后 台 操 作 对 于 大
作 业 非 常 有 利 的 ,无 须 在 终 端 前 等 待 一 个 命 令 执 行 结 束 ,你 可 以 把 它 放 入 后 台 。 这
样 你 便 可 以 执 行 其 它 的 L i n u x 命 令 。 例 如 ,你 可 以 在 其 它 一 些 文 件 打 印 时 偏 辑 另
一 个文件。
取 消 一 个 后 台 的 命 令 常 常 会 为 你 节 省 许 多 不 必 要 的 开 支 。 假 如 说 ,你 执 行 了
一 个 命 令 来 打 印 所 有 的 文 件 ,你 又 意 识 到 有 一 些 非 常 大 的 文 件 ,你 并 不 想 打 印 ,你
可 以 引 用 打 印 命 令 的 执 行 并 将 之 取 消 ,对 命 令 的 中 断 是 不 经 常 使 用 的 ,有 时 , 它 是
无 意 中 进 行 的 , 只 要 你 想 ,你 便 可 以 中 断 一 个 编 辑 过 程 去 发 送 m a il, 然 后 再 回 到 编
辑 会 话 中 ,从 离 开 的 地 方 开 始 。 后 台 命 令 和 取 消 及 中 断 作 业 的 命 令 见 表 5 - 2 。
在 L i n u x 中 ,命 令 被 视 为 一 个 进 程 — 要 执 行 的 任 务 , L i n u x 系 统 同 时 可 以 执 行
多 个 进 程 ,正 如 同 L i n u x 系 统 可 以 同 时 处 理 几 个 用 户 一 样 。 有 一 些 命 令 可 以 来 检
查 和 控 制 进 程 ,而 这 些 命 令 通 常 是 为 系 统 监 察 操 作 而 保 留 的 。 实 际 上 进 程 不 仅 包
括 了 用 户 执 行 的 命 令 ,还 包 括 了 系 统 执 行 的 以 维 持 L i n u x 运 行 的 许 多 任 务 。
用 户 执 行 的 进 程 通 常 被 称 为 作 业 ,以 此 区 别 系 统 进 程 。 当 用 户 执 行 一 个 命 令
时 ,它 便 成 为 等 待 系 统 执 行 的 一 个 作 业 ,shell 提 供 了 一 套 作 业 控 制 操 作 以 便 用 户
控 制 作 业 的 执 行 ,你 可 以 把 作 业 在 后 台 ,取 消 或 中 断 一 个 作 业 。
5 . 7 . 1 后 台 和 前 台 :& fg bg
在 一 个 命 令 后 面 加 入 一 个 ”& ”符 号 , 你 就 可 以 在 后 台 执 行 这 一 命 令 。 当 你 这 么
做 的 时 候 ,屏 幕 会 显 示 一 个 用 户 的 作 业 号 和 系 统 的 进 程 号 。 放 在 中 括 号 中 的 用 户
数 ,是 用 户 可 以 对 它 进 行 引 用 的 号 码 。 系 统 进 程 号 是 系 统 对 这 一 个 任 务 的 标 识
号 。 在 下 一 例 子 中 ,打 印 文 件 mydata 的 命 令 被 置 于 后 台 执 行 。
$ lpr mydata &
[1] 534
$
你可以把不止一个命令放在后台执行。每一个命令都被标识为一个任务 并
且 有 一 个 名 字 和 一 个 任 务 号 。 jobs 命 令 会 列 出 所 有 在 后 台 执 行 的 任 务 。 表 中 的
每 一 行 都 包 括 一 个 中 括 号 内 的 任 务 号 ,以 及 任 务 名 ,而 不 管 该 任 务 已 终 止 或 还 在 运
行 。 ”+ ”号 表 明 该 任 务 当 前 正 在 被 处 理 ,”- ”号 标 明 了 下 一 个 要 被 执 行 的 任 务 。 在 下
一 个 例 子 中 ,两 个 命 令 被 放 入 后 台 执 行 。 jobs 命 令 列 出 了 这 些 任 务 ,并 显 示 哪 个
任 务正被执行。
$ lpr intro &
[1] 547
$ cat *,C > mnyprogs &
[2] 548
$ jobs
[ 1 ] + R u n n i n g lpr intro
[2] - Running cat *・ c >nnyprogs
$
如 果 你 愿 意 , 可 以 在 命 令 行 上 以 ”& ”号 为 间 隔 敲 入 几 个 命 令 , 然 后 将 这 些 命 令
同 时 放 入 后 台 执 行 。 在 这 种 情 况 下 ,”& ”号 不 仅 在 命 令 行 上 将 命 令 进 行 了 隔 离 , 还
将 这 些 命 令 置 于 后 台 执 行 。 在 下 一 个 例 子 中 , 第 一 个 命 令 将 所 有 具 有 .l 扩 展 的 文
件 sort 处 理 并 且 重 定 向 ,这 个 命 令 被 置 于 后 台 。 在 同 一 命 令 行 上 的 第 二 命 令 ,打
印 有 .c 扩 展 的 文 件 ,也 被 放 到 后 台 执 行 。注 意 这 两 个 命 令 都 是 以 ”& ”号 结 尾 的 。j o b s
命 令 然 后 将 sort 和 lpr 命 令 作 为 单 独 的 操 作 列 出 。
$ sort *.l >/ldocs & /lpr *.c &
[1] 534
[2] 567
$ jobs
[1]+ Running sort *.l > ldocs
[2]- Running lpr
$
在 你 执 行 完 l i n u x 中 的 任 何 命 令 时 ,如 果 你 有 运 行 于 后 台 的 作 业 ,系 统 会 通 知
你 这 些 后 台 作 业 是 否 完 成 ,系 统 不 会 中 断 任 何 操 作 ,例 如 编 辑 ,来 通 知 你 一 个 工 作
已 经 完 成 。 如 果 你 希 望 某 个 任 务 完 成 时 立 即 通 知 你 ,而 不 管 你 正 在 系 统 中 用 何 种
操 作 ,你 可 以 利 用 n o t i f y 命 令 来 指 示 系 统 通 知 你 , n o t i f y 命 令 的 参 数 是 作 业 号 。 当
这 一 任 务 完 成 时 ,不 管 你 在 做 什 么 ,系 统 都 会 打 断 你 并 通 知 该 任 务 已 完 成 ,下 一 例
子 中告诉系统当 2 号任务完成时即通知用户。
$ notify%2
你 可 以 利 用 前 台 命 令 , f g ,当 一 个 任 务 自 后 台 取 出 ,如 果 后 台 只 有 一 个 任 务 , 单
独 的f g 命 令 就 可 将 其 带 到 前 台 ,如 果 后 台 有 多 个 任 务 , 使 用 此 命 令 时 ,你 必 须 加 入
任 务
量 。 你 应 将 任 务 量 置 于 f g 命 令 之 后 ,并 在 任 务 量 前 加 一 个 百 分 量 , 下 一 个 例
子 中
,第 二 个 任 务 被 置 入 前 台 。 你 可 能 不 会 立 即 发 现 提 示 符 , 因 为 第 二 个 命 令 正 在
前 台
执 行 ,当 这 一 个 命 令 执 行 完 时 ,提 示 符 会 重 新 出 现 ,这 时 候 你 就 可 以 执 行 另 一
个 命
令了。
$ fg % 2
sat *.c nnyprogs
$
也 有 一 个 b g 命 令 可 以 将 任 务 置 于 后 台 ,这 一 命 令 通 常 用 于 中 断 的 任 务 。 它
将 会 ”中 断 ,C T R L - Z ” 中 进 行 简 短 的 讨 论 。

5.7.2 取 消 任 务 :Kill
如 果 你 想 停 止 一 个 正 在 后 台 运 行 的 任 务 , 你 可 以 使 用 Kill 命 令 使 其 强 行 结
束 。kill 作 业 号 或 系 统 进 程 号 作 为 其 参 数 。用 户 的 作 业 号 前 必 须 加 % 量 。利 用 j o b s
命 令 你 可 以 查 到 作 业 号 。 在 下 一 个 例 子 中 ,jobs 命 令 列 出 了 后 台 的 任 务 ,然 后 任
务 2 被取消。
$ jobs
[ 1 ] + r u n n i n g / p r intro
[2]-running cat *.c > nnyprogs
$ Kill %2
$
你 也 可 以 利 用 系 统 进 程 号 来 取 消 一 个 任 务 。利 用 p s 命 令 可 得 到 系 统 进 程 号 。
p s 命 令 比 jobs 命 令 显 示 了 更 多 信 息 。 在 系 统 管 理 中 将 会 对 之 详 细 讨 论 ,下 一 个
例 子 列 出 了 用 户 正 在 运 行 的 进 程 。 P I D 是 系 统 进 程 号 ,也 被 称 作 进 程 的 ID 。 T T Y
是 终 端 识 别 量 。 时 间 是 进 程 被 运 行 的 时 间 长 度 。 Command 是 进 程 的 名 字 。
$ ps
PID TTY TIME COMMAND
523 tty24 0:05 SH
567 tty24 0:01 lpr
570 tty24 0:00 ps
然 后 你 会 可 以 在 K ill 命 令 中 引 用 系 统 进 程 号 。 在 此 进 程 无 须 加 % 号 。 下 一 个
例 子 取 消 了 进 程 567
$ Kill 567

5.7.3 中 断 : CTRL-Z
你 可 以 用 CTRL-Z 命 令 中 断 并 停 止 一 个 任 务 。 这 一 命 令 将 任 务 置 于 一 边 直
到 任 务 被 重 新 启 动 。 任 务 本 身 并 没 有 结 束 ,它 只 是 被 暂 停 了 , 等 待 你 希 望 它 继 续 进
行 的 命 令 。 当 你 准 备 好 后 ,使 用 fg 或 b g 命 令 你 可 以 继 续 进 行 这 一 任 务 。 fg 命 令
将 在 前 台 继 续 一 个 中 断 的 任 务 。 bg 命 令 则 将 这 一 任 务 放 入 后 台 执 行 。
有 时 你 需 要 将 一 个 正 在 前 台 运 行 的 任 务 移 至 后 台 。 但 是 ,你 不 能 下 接 将 一 个
正 在 执 行 的 例 子 中 , 列 表 并 重 定 同 .C 文 件 的 命 令 首 先 被 用 C T R L - Z 中 断 。 然 后 这
一 任务被置于后台。
$ cat *.c nnyprogs
^ z
$ bg

5.7.4 延 迟 执 行 :at
利 用 a t 命 令 ,你 可 以 在 某 一 特 定 的 时 间 执 行 命 令 。 你 可 以 指 定 一 个 你 希 望 命
令 执 行 的 时 间 ,而 不 是 立 刻 将 一 个 任 务 放 入 后 台 。 然 后 你 可 以 退 出 ,由 系 统 的 监 视
执 行什么命令及何时执行。
at 命 令 以 你 希 望 命 令 执 行 的 时 间 作 为 参 数 。 时 间 是 一 个 标 识 小 时 的 数 字 以
其 后 的 关 键 词 a.m 或 p.m 。 你 也 可 以 加 入 一 个 日 期 。 如 果 未 指 定 日 期 ,系 统 即 认
为 当 前 的 日 期 。 然 后 a t 命 令 会 从 标 准 输 入 中 输 入 linux 命 令 。 你 可 以 在 键 盘 敲
入 上 述 命 令 , 并 以 C T R L - D 来 结 束 标 准 输 入 , 你 也 可 以 把 它 敲 入 一 个 文 件 ,并 将 文
件 由 标 准 输 入 重 定 向 到 a t 命 令 。 在 下 一 个 例 子 中 ,用 户 决 定 在 4:00 a.m 执 行 一
个 命令。
$ at 4am
lpr iwtro
^ D
$
在 在 下 一 个 例 子 中 ,用 户 将 几 个 命 令 放 入 一 个 l a t e c m d s 文 件 中 ,然 后 将 文 件
内 容 重 定 向 为 a t 命 令 的 输 入 。 a t 命 令 将 在 6:00p.w 执 行 这 些 命 令 。
latecmds
lpr intro
cat *.c > nnyprogs
$ at 6pm < letecnnds
你 可 以 有 许 多 方 法 来 标 定 时 间 和 日 期 。 a t 命 令 假 定 了 一 个 24 小 时 的 时 间 序
列 ,除 非 被 关 键 字 a.m 或 p . m 修 改 。 你 可 以 在 小 时 和 分 钟 之 间 加 入 ”: ”号 来 标 定 小
时 中 的 某 一 分 钟 ,例 如 :6:30 。 a t 命 令 也 能 识 别 一 些 标 定 某 些 日 期 和 时 间 的 关 键
词 。 关 键 词 n o o n 标 定 的 是 1 2 p . m ,你 可 以 使 用 关 键 词 m i d n i q h t 来 代 替 1 2 a . m 。
在 下 一 个 例 子 中 ,用 户 执 行 了 一 个 分 钟 标 定 的 命 令 和 一 个 关 键 词 n o o n 标 定 的 命

$ at 8:15pm < latecods
$ at noon < latechds
日 期 可 以 是 一 月 中 的 某 一 天 ,也 可 以 是 一 周 中 的 某 一 天 。 一 月 中 某 日 包 含 着
天 数 于 一 个 代 表 月 份 的 关 键 词 。 月 份 可 以 三 个 字 母 由 子 缩 略 词 表 示 。 例 如 ,一 月
(January) 被 写 作 j a n ,天 数 跟 在 月 份 名 之 后 。 如 果 没 有 月 份 名 ,叫 被 认 为 是 当 前
月 。 F e b 1 4 指 明 二 月 十 四 号 ; 2 1 本 身 指 的 是 本 月 的 2 1 号 。 在 下 一 个 例 子 中 ,用 户
首 先 指 定 在 本 月 1 5 号 执 行 命 令 ,而 后 又 指 定 在 1 0 月 2 9 日 执 行 。
$ at 8:15pm 15 < lsteconds
$ at hoon Oct 29 < lsteconds
如 果 你 只 想 在 本 星 期 内 运 行 任 务 ,那 么 , 你 只 需 指 定 星 期 几 。 而 无 须 指 定 月 和
日 。 星 期 的 每 天 都 由 其 名 字 表 示 , 这 样 ,敲 入 T u e s d a y 即 意 味 着 将 在 星 期 二 运 行
你 的 任 务 。 你 也 可 以 利 用 today 或 romorrow 这 样 的 关 键 词 来 指 定 日 期 。 在 下
一 个 例 子 中 ,用 户 在 周 五 和 明 天 运 行 任 务 。
$ at 8;15 am Friday < latecods
$ at noon tomorrow <latechods
利 用 时 间 或 日 期 , 你 也 可 以 指 定 一 个 增 量 ,例 如 ,你 可 以 指 定 一 个 任 务 在 距 今 天
一 周 后 执 行 或 周 五 后 两 个 月 执 行 。 你 可 以 使 用 +号 跟 着 一 个 指 定 时 间 段 长 短 的 关
键 词 来 指 定 增 量 , 时 间 段 关 键 字 有 :m i n u t e s , h o u r s , d a y s , w e e k s , m o n t h s , 或 者
years 复 数 符 s 可 去 掉 以 表 示 单 一 的 时 间 间 隔 。
例 如 ,在 1 9 号 后 的 一 个 月 运 行 命 令 ,你 可 以 输 入 1 9 + month 。 明 天 后 的 一
星 期 是 t o m o r r o w + w e e k。 今 天 之 后 的 两 周 是 today+2weeks。 在 下 一 个 例 子
中 ,用 户 指 定 在 周 一 后 的 6 周 和 今 后 之 后 的 3 个 月 时 执 行 命 令 .
$ at 8:15pm monday + 6weeks <latecnols
$ at noon today +3months <latecmds
a t 有 一 些 选 项 可 以 让 你 列 出 所 有 等 待 执 行 的 a t 任 务 ,也 可 以 取 消 任 - a t 任 务 。
每 次 你 执 行 a t 命 令 ,你 指 定 以 后 执 行 的 L i n u x 命 令 都 被 放 入 队 列 并 作 为 一 个 a t
作 业 列 出 。 a t 命 加 l 选 项 可 以 列 出 所 有 的 a t 任 务 ,每 一 个 任 务 都 有 一 个 你 可 以 引
用的编号。
$ at -l
732893802 ,a Fri sept 27 20:15:00,1996
732893803,a Fwe sept 24 12:00:00 1996
用 - r 选 项 你 就 可 以 取 消 a t 任 务 ,要 取 消 一 个 特 定 的 任 务 ,你 需 要 在 - r 选 项 后 敲
入 任 务 编 号 ,在 下 一 个 例 子 中 ,用 户 取 消 a t 任 务 7 3 2 8 9 3 8 0 2 , a
$ at -r 732893802 ,a
$ at -l
732893802, a Tue sept 24 12:00:00 1996
通 常 , a t 命 令 不 会 通 知 你 任 务 已 经 执 行 完 毕 , 然 而 ,利 用 - m 选 项 ,你 可 以 要 求 当
任 务 执 行 完 后 ,用 m a il 通 知 你 ,你 可 以 指 定 接 受 m a i l 的 一 个 特 定 的 任 务 编 号 。 在
下 一 个 例 子 中 , 当 任 务 7 3 2 8 9 3 8 0 3 , a 执 行 完 毕 后 , 将 后 有 m a il 通 知 你
$ at -m 732893803,a

5.8 总 结 : shell 操 作

shell 是 用 户 和 操 作 系 统 之 间 提 供 接 口 的 一 个 命 令 解 释 器 。 你 在 命 令 行 上 输
入 命 令 ,这 此 命 令 被 s h e l l 解 释 , 并 作 为 指 令 送 往 操 作 系 统 , s h e l l 有 非 常 复 杂 的 特
征 ,诸 如 特 殊 字 符 、 重 定 向 、 管 道 、 s c i p t s 和 任 务 控 制 。
s h e l l 有 三 个 特 殊 字 符 ,*,?, [], 它 们 可 以 使 你 产 生 一 系 列 的 文 件 名 作 为 命 令 行
上 的 参 数 ,* 号 会 匹 配 所 有 可 能 的 字 符 序 列 ,? 是 会 匹 配 任 意 一 个 字 符 ,[]匹 配 一 个 字
符 集。你甚至可以利用特殊字符来组成复杂的匹配。
在 l i n u x 中 ,文 件 和 设 备 ,以 及 和 命 令 的 输 入 和 输 出 ,都 有 相 同 的 结 构 一 b y t e 流 ,
命 令 的 所 有 输 入 数 据 流 中 , 因 为 标 准 输 入 和 标 准 输 出 同 文 件 有 着 相 同 的 结 构 ,它 们
可 以 很 容 易 地 与 文 件 交 互 ,利 用 重 定 向 操 作 符 ,你 可 以 将 标 准 输 入 和 标 准 输 出 指 向
一 个 文 件 。 利 用 ”< “重 定 向 符 ,你 可 以 将 标 准 输 出 由 一 个 命 令 重 定 向 到 一 个 文 件 。
利 用 ”< “重 定 向 符 , 你 可 将 标 准 输 入 重 定 向 为 从 一 个 文 件 读 入 , 你 可 以 也 利 用 重 定
向 添 加 操 作 符 ”> > “将 标 准 输 出 添 加 到 一 个 已 存 的 文 件 中 去 。
既 然 命 令 的 标 准 输 入 和 标 准 输 出 有 着 相 同 的 标 准 格 式 ,你 可 以 很 容 易 地 将 一
个 命 令 的 输 出 作 为 另 一 个 命 令 的 输 入 ,管 道 允 许 你 接 收 一 个 命 令 的 标 准 输 出 ,并 由
管 道 将 这 作 为 另 一 个 命 令 的 标 准 输 入 ,在 同 一 个 命 令 行 上 ,你 可 以 串 连 几 个 命 令 ,
每一个的输入都另一是个命令的输出。
使 用 编 辑 器 ,你 可 发 创 建 一 些 包 含 shell 命 令 和 变 量 定 义 的 文 件 。 这 些 文 件
被 称 作 s h e l l s c r i p t s ,。 s h e l l s c r i p t s 甚 至 有 参 数 变 量 ,它 们 将 从 命 令 行 上 接 收 参
数 ,通 过 设 置 s h e l l s c r i p t 的 执 行 许 可 ,你 可 以 把 s h e l l s c r i p t 的 各 字 当 作 s h e l l
命令对待。
你 在 s h e l l 中 也 可 以 定 义 变 量 变 对 其 赋 值 。 在 变 量 名 前 加 $ ,你 可 以 就 引 用 一
个变量。你可以把变量作为命令参数使用。它们可以包含目录络经名或者要执
行的命令。
当 你 执 行 一 个 命 令 时 ,它 被 L i n u x 当 作 一 个 要 执 行 的 任 务 。 你 可 以 指 示 L i n u x
在 后 台 执 行 任 务 ,以 使 你 执 行 其 它 命 令 ,将 后 台 操 作 符 放 于 命 令 行 末 尾 会 指 示
Linux 在 后 台 执 行 这 一 命 令 。 用 jobs 命 令 可 列 出 你 在 后 台 的 任 务 。 用 fg 命 令 ,
你 可 将 一 个 任 务 由 后 台 移 至 前 台 。 你 可 以 用 kill 命 令 来 终 止 后 台 任 务 , 或 用
CTRL-8 命 令 来 中 断 任 务 。
表 5-1shell 符 号
标 准 错 误 /重 定 向 符 号 执行
ENTER 执行一个命令行
; 在同一命令行中分隔命令
'命 令 ' 执行一条命令
* 匹配文件名中的任何符集
? 匹配文件名中的单个字符
[] 匹配文件名中的可能的字符集
\ 引 用 紧 跟 的 字 符 ,用 于 引 用 特 殊 字 符
> 将标准输出重定向回到文件或设备。
如 文 件 不 存 后 ,则 创 建 新 文 件 ;如 文 件
已 存 在 ,履 盖 该 文 件 假 设 文 件 存 在 ,则 强
制 进 行 履 盖 ,掩 盖 n o c l o b b e r 选 项
< 将标准输入重定向为由文件或设备强程

>> 将标准输出重定向到一个文件或设备,
将输出添加到文件尾
l 将一个命令的标准输出由管道作为另一
命令的输入
& 在后台执行命令
! 历史命令
2> 将标准错误重定向到一个文件或设备
2>> 将标准错误重定向并添加一个文件或设

2>&1 将标准错误重定向标准输出
1& 将标准错误由管道作为另一命令的输入
>& 把标准错误重定向到一个文件或设备

表 5-2shell 操 作
命令 执行
ENTER 执行了一个命令行
; 在同一命令行上分隔命令
commard \opts args 在回年之前键入后斜杠以复在另一命
令行继续输入
命令
'commerel' 执行一个命令
BACKSPCE 删除前一个字符
CTRL-H
CTRL-U 删除命令行并重新开始
CTRL-C 中断并停止一个命令的执行
文 件 名 Gerererion 执行
的特殊字符
* 匹配任何字符集
? 匹配任何单个字符
[] 匹配可能的字符集
\ 引用跟的字符。用于引用特殊字符
重定向 执行
command.>filnemme 将标准输出重定向到一个文件或设备
commane <filnemme 将标准输入重定向到一个文件或设备
commane>>filerane 将标准输出添加到一个文件末尾
commane>!filerane 在 C-Shell 和 K-Shell 中 ,强 制 写 入 一 个
已存在的文件
commane2>filerane B - S h e l l 中 ,将 标 准 错 误 重 定 向 到 某 文 件
commane2>>filerane B - S h e l l 中 ,将 标 准 错 误 添 加 到 文 件 末 尾
commane2>&1filerane B - S h e l l 中 ,将 标 准 错 误 重 定 向 到 标 准 输 出
commane>&filerane C - S h e l l 中 ,将 标 准 错 误 重 定 向 到 文 件
管道 执行
管道|管道 把一个命令的输出当作另一个命令输入
管 道 | &管 道 执 行 T C S H - S h e l l 中 ,把 标 准 错 误 作 为 另 一
个命令输入
后台任务 执行
& 后台执行任务
fg % jobnum 将后台的命令放入前台或继续被中断的程序
bg 将前台的命令放入后台
CTRL-Z 中 断 并 停 止 以 后 正 运 行 的 程 序 ,程 序 在 将 之 继
续之前保持信止和等待状态
notify % j o b n u m 将任务结束时通知用户
kill % j o b n u m 取消并结束在后台运行的任务
kill processnum
jobs 列 出 所 有 后 台 任 务 ,除 非 使 用 jsh shell, 否 则
在 Boune shell 中 不 存 在
ps 列出包括的后台任务在内的所有在运行的进程
at tim e date 在 某 一 特 定 的 时 间 和 日 期 执 行 命 令 ;tim e 可 用 分
钟 和 小 时 输 入 ,并 由 a m 和 p m 加 以 限 定
hour: m inutes am pm
日期可用一日或一周中某天确定
mpnth day
month 可 由 三 字 因 缩 略 词 表 示
3 a m , F e b etc
day 是 由 名 字 表 示
monday Tuesday wedanesday ,etc
可利用关键词业来标识日期和时间
am, pm., how, hoon , midnighi goday,
tomorrow
你 可 利 用 +操 作 符 由 某 一 天 或 时 间 增 加 一 个 时
间 段 。 +操 作 符 之 后 数 字 标 明 时 间 段 的 个 数
date + nuw tim e - s e g m e l t
tim e - s e g m e u t 可 以 是
hours minutes days weeks months
years
关 键 是 keyword 从 现 在 时 间 增 加 一 个 时 间 段
wext time -- segnert
next week
选项
l j o b n u m (列 出 现 有 的 at 任 务 )
r j o b n u m (取 消 一 个 任 务 )
m jobnum (任 务 结 束 时 用 m a i l 进 行 通 知 )
第 6 章 Linux 文 件 结 构

在 L i n u x 中 ,文 件 被 组 织 在 目 录 中 ,反 过 来 ,文 件 又 在 统 一 的 文 件 结 构 下 相 互 联
系 。 文 件 引 用 不 仅 仅 是 依 照 它 的 名 字 ,此 外 还 依 照 它 在 文 件 结 构 中 的 位 置 。 你 想
创 建 并 向 文 件 结 构 增 加 多 少 目 录 都 可 以 。 Linux 文 件 命 令 可 以 执 行 复 杂 的 操 作 ,
诸 如 移 动 文 件 ,带 同 子 目 录 的 整 个 目 录 的 拷 贝 。 使 用 文 件 操 作 , 诸 如 f i n d , c p , m v
和 l n ,你 可 以 对 文 件 定 位 ,拷 贝 或 将 他 们 由 一 个 目 录 连 接 到 另 一 个 目 录 。
这 些 特 性 一 齐 构 成 了 Linux 的 文 件 系 统 。 本 章 首 先 介 绍 不 同 的 文 件 类 型 和
类 别 ( c l a c s e s ) , 然 后 ,本 章 介 绍 了 L i n u x 文 件 总 体 结 构 , 以 及 如 何 利 用 路 径 名 和 工
作 目录即可实现对目录和文件的引用。本章的最后部分讨论了诸如拷贝、移动、
连 接文件等不同文件操作。

6.1 Linux 文 件

你 可 以 用 任 何 字 母 表 中 字 母 ,下 划 线 和 数 字 来 命 名 一 个 文 件 。 你 也 可 以 使 用
句 号 和 逗 号 。 但 是 ,文 件 名 不 能 以 数 字 开 头 。 此 外 ,除 非 在 特 殊 的 情 况 中 。 你 都 不
应 该 以 点 号 作 为 文 件 名 开 头 。 其 它 的 字 符 ,如 横 线 、 问 号 或 逗 号 ,它 们 都 是 系 统 保
留 的 特 殊 字 符 ,不 能 用 于 文 件 名 。 文 件 名 可 长 达 2 5 6 个 字 符 。
你可以把扩展作为文件名的一部分。句号用于区别文件名和扩展。扩展对
于将你的文件分类是非常有用的。你可能对某些大众已接纳的标准扩展比较熟
悉 。 例 如 ,C 的 源 代 码 文 件 总 是 有 C 的 扩 展 。 包 含 编 辑 过 的 目 标 代 码 文 件 有 O
扩 展 。 当 然 ,你 可 以 加 入 自 己 的 文 件 扩 展 。 下 一 例 子 都 是 有 效 的 L i n u x 文 件 名 。
preface
chapter 2
Calc.c
intro.bk 1
有 一 些 特 殊 的 初 始 化 文 件 用 于 包 含 shell 的 设 置 命 令 。 这 些 文 件 是 隐 藏 的 或
者 是 点 号 文 件 ,如 第 5 章 所 述 ,以 点 号 开 头 的 文 件 。 点 号 文 件 有 预 先 已 定 好 的 名
字 。 回 想 一 下 当 使 用 ls 命 令 来 显 示 文 件 名 时 , 点 号 文 件 不 会 被 显 示 。 要 包 括 点 号
文 件 ,你 需 要 在 ls 命 令 中 加 入 - a 选 项 。 点 号 文 件 将 在 1 4 章 详 细 讨 论 。

6.1.1 文 件 类 型
正 如 在 第 5 章 中 所 知 道 的 ,linux 中 所 有 文 件 只 有 一 种 物 理 格 式 -byte 流 。byte
流 只 是 一 个 byte 的 序 列 。 这 一 点 使 linux 将 文 件 概 念 应 用 于 系 统 中 所 有 的 数 据
元 素 。 目 录 和 设 备 都 被 分 类 成 文 件 。 将 所 有 东 西 都 当 作 文 件 对 待 ,可 使 l i n u x 很
方 便 地 组 织 并 交 换 数 据 。 文 件 中 的 数 据 可 以 被 直 接 送 往 设 备 ,例 如 屏 幕 因 为 设 备
与 常 规 文 件 一 样 ,与 系 统 有 着 相 同 的 b y t e 流 文 件 格 式 接 口 。
这 种 相 同 的 文 件 格 式 被 用 于 其 它 操 作 系 统 元 素 的 执 行 。 设 备 ,诸 如 屏 幕 或 键
盘 的 接 口 也 被 设 定 为 一 个 文 件 。 其 它 元 素 ,如 目 录 ,本 身 也 是 b y t e 流 文 件 ,但 它 们
有 着 不 同 的 内 部 组 织 形 式 。 一 个 目 录 文 件 包 含 着 目 录 信 息 ,并 以 一 种 特 殊 的 目 录
格 式 组 织 。 既 然 这 些 不 同 的 元 素 都 被 作 为 文 件 对 待 ,他 们 可 被 视 为 构 成 不 同 的 文
件 类型。字符设备是一种文件类型。目录又是另一种文件类型。这些文件类型
的 数 目 因 你 所 用 L i n u x 类 型 不 同 而 变 化 。 然 而 ,有 四 种 常 见 的 文 件 类 型 :普 通 文
件 、 目 录 文 件 ,字 符 设 备 文 件 和 块 设 备 文 件 。 尽 管 你 可 能 很 少 会 引 用 文 件 的 类 型 ,
但 搜 索 目 录 或 设 备 时 它 还 是 非 常 有 用 的 。 在 本 章 的 后 面 ,你 将 会 看 到 在 f i n d 的 命
令 的 搜 索 标 准 中 ,如 何 利 用 文 件 类 型 的 确 定 搜 索 的 目 录 和 设 备 。

6 . 1 . 2 文 件 分 类 ( c l a s s i f i c a t i o n ) :文 件 和 o d 命 令
尽 管 所 有 的 普 通 文 件 都 有 byte 流 的 格 式 ,但 它 们 有 不 同 方 面 的 应 用 。 最 显 著
的 区 别 是 二 进 制 和 文 本 文 件 之 间 。 编 译 过 的 程 序 是 二 进 制 文 件 。 然 而 ,即 便 是 文
本 文 件 也 可 根 据 不 同 的 用 途 加 以 分 类 。 你 可 以 创 建 包 含 C 编 程 源 代 码 或 shell
命 令 的 文 件 ,甚 至 可 以 有 空 的 文 件 。 文 件 也 以 是 可 执 行 程 序 或 目 录 文 件 。 L i n u x
中 的 file 命 令 可 帮 你 判 定 一 个 文 件 的 用 途 。 它 对 文 件 的 头 几 行 进 行 检 查 并 试 图
对 文 件 进 行 分 类 。 file 命 令 在 文 件 头 几 行 中 查 找 特 殊 关 键 词 或 特 殊 数 字 ,但 这 一
命 令 并 不 总 是 正 确 的 。 在 下 一 个 例 子 中 ,file 命 令 检 查 了 两 个 文 件 的 内 容 并 对 它
们 进行了分类。
$ file monday reports
monday: text
reports: directory
为 了 描 述 文 件 分 类 的 不 同 ,在 下 一 个 例 子 中 ,file 命 令 检 查 了 一 个 C 源 代 码 文
件 ,一 个 可 执 行 文 件 和 一 个 空 文 件 。
$ file calc.c proj newdata
cale c: C program text
proj: exe cutable
newdata: empty
file 命 令 也 接 受 - f 选 项 使 你 可 以 从 文 件 读 入 文 件 名 ,而 无 须 在 命 令 行 上 敲 入 。
在 下 一 个 例 子 中 ,文 件 名 从 文 件 m y f i l e 中 读 出 。
$ cat myfiles
calc.c proj newdata
$ file -f m y f i l e s
calc.c: c program text
proj: exe outable
naodata: empty
如 果 你 要 逐 字 节 地 检 查 文 件 ,可 以 使 用 o d 命 令 完 成 。 o d 命 令 执 行 对 文 件 的
( d u m p )。 缺 省 情 况 下 ,它 将 以 八 进 制 形 式 打 印 文 件 每 一 个 字 节 。 当 然 ,你 也 可 以
指 定 字 符 ,十 进 制 或 十 六 进 制 的 表 示 形 式 。 o d 命 令 在 你 需 要 查 找 文 件 中 的 特 殊
字 符 ,或 显 示 二 进 制 文 件 时 是 非 常 有 帮 助 的 。 如 果 你 进 行 字 符 的 清 查 ,某 些 特 定 无
法 打 印 的 字 符 将 以 字 符 定 义 的 形 式 表 示 。 例 如 , 回 车 键 将 用 \n 表 示 。 file 和 o d 命
令 的 选 项 都 列 在 本 章 后 的 表 6-1 中 。
6.2 文 件 结 构

Linux 将 文 件 组 织 在 一 个 分 层 相 连 的 目 录 集 中 。 每 一 个 目 录 中 可 包 含 文 件 或
其 它 的 目 录 。 在 这 种 意 义 上 ,目 录 有 两 个 重 要 的 功 能 。 一 个 目 录 包 含 文 件 ,正 如 同
文 件 放 入 文 件 柜 中 ,一 个 目 录 又 同 其 它 目 录 相 关 联 ,正 如 同 树 枝 与 其 它 的 树 枝 相 关
联 。 对 文 件 而 言 ,目 录 就 如 同 文 件 柜 ,每 个 抽 屈 之 中 都 放 着 几 个 文 件 。 要 访 问 文 件 ,
你 只 要 打 开 抽 屈 即 可 。 然 而 ,同 文 件 抽 屈 不 同 ,目 录 不 只 可 以 包 含 文 件 ,还 可 以 包
含 其 它 目 录 。 这 样 ,一 个 目 录 便 可 与 另 一 个 目 录 关 联 。
因 为 这 一 结 构 与 树 的 相 似 性 ,在 计 算 机 术 语 中 它 通 常 被 称 作 树 形 结 构 (tree
s t r u c t u r e )。 然 而 , 把 它 想 像 成 一 株 倒 置 的 灌 木 更 为 贴 切 。 没 有 主 干 , 树 是 倒 置 的 ,
头 上 根 下 。 由 根 部 向 下 扩 展 。 每 一 个 分 支 都 只 来 自 另 一 个 分 支 ,但 它 可 以 有 许 多
低 层 的 分 支 。 在 这 种 观 点 上 , 可 以 认 为 它 有 一 种 父 子 结 构 (parent child
structme)。 同 样 ,每 一 个 目 录 也 是 另 一 个 目 录 的 子 目 录 , 每 一 个 目 录 中 都 可 以 包
含 许 多 子 目 录 ,但 它 只 是 某 一 个 父 目 录 的 子 目 录 。
图 6-1 描 述 了 文 件 的 分 层 结 构 。 由 顶 部 的 根 目 录 开 始 ,其 它 的 目 录 不 断 分 支 。
每 个 目 录 都 包 含 其 它 几 个 目 录 或 文 件 ,但 每 个 目 录 只 能 有 一 个 父 目 录 。 例 如 ,目 录
c h r i s 有 两 个 子 目 录 , r e p o r t s 和 p r e g r a m s , 然 而 C h r i s 只 跟 一 个 父 目 录 相 连 ,这 一
目 录 叫 作 h o m e。
图 6-1Linux 树 结 构

图 6-2Linux 文 件 结 构 ,从 根 目 录 开 始 ,包 括 系 统 、 home 和 用 户 目 录
L i n u x 文 件 结 构 以 根 目 录 ,开 始 ,分 支 成 几 个 目 录 。 在 根 目 录 中 有 几 个 系 统 目
录 ,它 们 包 括 着 描 述 L i n u x 系 统 特 征 的 文 件 和 程 序 。 根 目 录 也 包 含 着 一 个 用 于 容
纳 系 统 中 所 有 用 户 的 home 目 录 。 每 个 用 户 的 home 目 录 中 都 包 含 着 用 户 自 行
创 建的子目录。这其中的目录都可以再包含其它目录。这一网状目录将从用 户
的 home 目 录 进 行 分 支 。

6.2.1Home 目 录
当 你 登 录 入 系 统 ,你 便 处 于 你 的 h o m e 目 录 中 。 系 统 起 这 个 目 录 起 的 名 字 同
你 登 录 的 名 字 相 同 。 你 第 一 次 登 录 后 创 建 的 所 有 文 件 都 会 被 置 于 你 的 home 目
录 中 。 然 而 ,在 你 的 h o m e 目 录 中 ,你 也 可 以 创 建 其 它 新 的 目 录 。 你 可 以 转 向 这 些
目 录并把文件存于其中。这于系统中其它用户而言也是相同的。每一个用户都
有 自 己 的 以 正 确 的 登 录 名 标 识 的 home 目 录 。 它 们 也 可 以 用 于 创 建 其 它 自 己 的
目 录。
通 过 目 录 名 或 将 目 录 定 为 缺 省 目 录 ,你 便 可 以 访 问 一 个 目 录 。 每 个 目 录 在 创
建 时 都 有 一 个 名 字 。 在 文 件 操 作 中 ,你 可 利 用 这 个 名 字 进 行 目 录 中 的 文 件 访 问 。
你 也 可 比 将 目 录 设 为 你 的 缺 少 目 录 。 如 果 在 文 件 操 作 中 你 不 使 用 任 何 目 录 名 ,那
么 将 会 对 缺 省 目 录 进 行 访 问 。 缺 省 目 录 被 叫 作 工 作 目 录 (working directory) 。 在
这 种 意 义 上 ,工 作 目 录 是 你 当 前 正 在 进 行 工 作 的 目 录 。
当 你 登 录 时 ,工 作 目 录 便 是 你 的 h o m e 目 录 , 它 通 常 与 你 的 登 录 名 有 相 同 的 名
字 。 你 也 可 以 更 换 工 作 目 录 ,用 c d 命 令 来 指 定 另 一 个 工 作 目 录 。 工 作 目 录 更 换
之 后 ,你 便 可 由 一 个 目 录 移 往 另 一 个 目 录 。 另 一 种 考 虑 目 录 的 方 法 是 把 它 认 为 一
条 走 廊 。 在 走 廊 上 ,每 个 门 上 都 有 自 己 的 名 字 。 一 些 门 通 向 房 间 ,另 一 些 门 通 向 其
它 的走廊。通向房间的门就是目录中的文件。通向其它走廊的门就是其它的目
录 。从一个走廊去往另一个走廊就是更换工作目录。穿越几条走廊即是更换几
个 目录。

6.2.2 路 径 名
在 创 建 文 件 或 目 录 时 ,你 所 给 的 名 字 并 不 是 它 们 的 全 名 。 一 个 目 录 的 全 名 是
它 的 路 径 名 。 目 录 之 间 分 层 的 网 状 关 系 构 成 了 路 径 ,这 些 路 径 可 无 歧 义 的 标 识 及
引 用 目 录 和 文 件 。 在 图 6 - 3 中 ,有 一 条 路 径 从 根 目 录 ”/”开 始 , 通 过 h o m e 目 录 到 达
r o b e r t 目 录 。 有 另 一 条 路 径 ,从 根 目 径 通 过 h o m e 和 C h r i s 目 录 到 达 r e p o r t 目 录 。
尽 管 路 径 的 某 些 部 分 开 始 是 一 样 的 ,但 在 某 一 点 它 们 不 同 了 。目 录 r o b e r t 和 r e p o r t
有 两 个 目 录 是 共 享 的 :根 和 h o m e 。 然 后 它 们 便 不 同 了 。 在 h o m e 目 录 中 , r o b e r t
以 r o b e r t 告 终 ,而 目 录 C h r i s 还 引 向 r e p o r t s . 这 样 ,文 件 结 构 中 的 每 个 目 录 都 可 以
说有着单独的路径。系统来标识一个目录的真实名字总是一个以根目录开头及
包含目录上方所有网状目录的名字。
在 L i n u x 中 ,在 路 径 中 列 出 各 个 目 录 名 并 用 斜 杠 加 以 分 隔 就 可 以 写 出 路 径
名 。路 中 第 一 个 目 录 前 的 斜 径 代 表 根 目 录 。目 录 r o b e r t 的 路 径 名 是 / h o m e / r o b e r t .
目 录 reports 的 路 径 名 是 /home/chris/reports.
路 径 名 也 适 用 于 文 件 。 当 在 目 录 中 创 建 一 个 文 件 时 ,你 起 文 件 起 了 一 个 名 字 。
然 而 ,系 统 标 识 文 件 的 真 正 名 字 是 文 件 名 和 从 根 目 录 到 文 件 所 在 目 录 的 目 录 路
径 。 在 图 6 - 4 中 ,文 件 w e a t h e r 的 路 径 包 括 根 目 录 , h o m e 和 c h r i s 目 录 以 及 文 件
名 w e a t h e r。 w e a t h e r 的 路 径 名 是 / h o m e / c h r i s / w e a t h e s . ( 根 目 录 由 第 一 个 斜 杠 代
表 )。
路径名可以是绝对的或相对的。绝对路径名是文件或目录由根目录开始的
完 全 路 径 名 。 相 对 路 径 名 ( r e l a t i v e p a t h n a m e ) 是 工 作 目 录 开 始 的 ,它 是 与 你 的 工
作目录相对的文件的路径。

图 6-3 目 录 路 径 名
利 用 图 6-4 所 示 的 目 录 结 构 。 如 果 chris 是 你 的 工 作 目 录 。 文 件 m o n d a y 的
相 对 路 径 是 /reports/monday monday 的 绝 对 路 径 名 是
/home/chris/reports/monday.
图 6-4weather 的 路 径 名 :/home/chris/weather

6.2.3 系 统 目 录
开 始 Linux 文 件 结 构 的 根 目 录 包 含 几 个 系 统 目 录 。 系 统 目 录 中 包 含 着 系 统
运 行 和 维 护 的 必 不 可 少 的 文 件 和 程 序 。 许 多 还 包 含 有 子 目 录 ,子 目 录 中 有 许 多 系
统 设 备 的 接 口 ,如 打 印 机 或 终 端 。 表 6 - 2 列 出 了 基 本 的 系 统 目 录 ,图 6 - 5 表 明 这 些
目录在树形结构中是如何组织的。
图 6-5Linux 中 系 统 目 录

6.3 列 表 、 显 示 及 打 印 文 件 : ls, cat, m o r e 和 lpr

操作系统的主要功能之一是文件管理。你可能会对你的文件执行某些基本
的 输 出 操 作 ,诸 如 把 它 们 显 示 在 屏 幕 上 或 把 它 们 打 印 出 来 。 l i n u x 系 统 提 供 了 一 套
命 令来完成诸如列表、显示、文件打印及拷贝、复命令、文件、删除等基本文
件 管 理 操 作 。 这 些 命 令 通 常 是 由 简 写 的 词 构 成 。 例 如 ,ls 命 令 是 ”l i s t”的 化 简 形 式 ,
它 将 对 目 录 中 的 文 件 进 行 列 表 。 l p r 命 令 是 ”l i n e p r i n t”的 … … , 它 将 打 印 文 件 。 c a t
和 m o r e 命 令 将 文 件 的 内 容 显 示 在 屏 幕 上 。 表 6-3 列 出 了 这 些 命 令 和 它 们 的 不
同 选项。
当 登 录 到 你 的 l i n u x 系 统 中 后 ,你 可 能 会 对 你 目 录 中 的 文 件 进 行 列 表 。 ls 命 令
会 输 出 一 个 你 的 文 件 和 目 录 名 的 列 表 , 它 是 非 常 有 用 的 。 ls 命 令 有 许 多 选 项 用 于
显示有不同特征的文件的列表。这些在第 5 章中有详细的讨论。

6.3.1 显 示 文 件 :cat 和 m o r e
你 可 能 需 要 查 看 一 个 文 件 的 内 容 。 cat 和 more 命 令 将 文 件 的 内 容 显 示 在 屏
幕 上 。 c a t 代 表 “c o n c a t e n a t e ”( 连 锁 ) 。 正 如 第 7 章 所 述 ,它 实 际 上 是 一 个 非 常 复
杂 、 功 能 强 大 的 命 令 。 这 里 只 是 被 有 限 的 利 用 ,用 于 将 文 件 的 文 本 显 示 在 屏 幕 上 。
$ cat sncydata
computers
c a t 命 令 将 一 个 文 件 的 全 部 文 本 一 次 全 部 送 往 显 示 设 备 。 将 文 件 较 大 时 ,就
带 来 一 个 问 题 。 因 为 文 本 在 屏 幕 上 迅 速 地 闪 过 ,m o r e 命 令 即 是 设 计 用 来 克 服 这
一 限 制 的 ,它 一 次 可 只 显 示 一 屏 的 文 本 。 你 便 可 以 随 心 所 欲 地 在 文 本 上 上 下 移
动 。 你 可 键 入 m o r e 命 令 ,然 后 键 入 你 想 查 看 的 文 件 名 来 使 用 m o r e 命 令 。
$ more mydata
当 m o r e 命 令 调 用 一 个 文 件 时 ,显 示 第 一 屏 的 文 本 。 按 f 键 或 空 格 可 进 入 下 一
屏 。 要 想 在 文 本 中 前 移 ,你 可 按 b 键 。 按 q 键 即 可 退 出 。

6.3.2 文 件 打 印 :lpr,lpq 和 lprm


当 你 希 望 打 印 文 件 时 ,可 使 用 lpr 命 令 将 文 件 送 往 与 系 统 相 连 的 打 印 机 。 在
下 一 个 例 子 中 ,用 户 打 印 了 m y d a t a 文 件 。
$ lpr mydata
如 果 你 一 次 想 打 印 多 个 文 件 ,那 么 在 命 令 行 的 l p r 命 令 之 后 你 可 以 指 定 不 止
一 个 文 件 。 在 下 一 个 例 子 中 ,用 户 打 印 文 件 mydata 和 preface 。
$ lpr mydata preface
打 印 作 业 被 放 入 队 列 中 ,并 在 后 台 依 次 打 印 。 当 进 行 文 件 打 印 时 ,你 可 以 继 续
从 事 其 它 的 工 作 。 用 lpq 命 令 你 可 以 看 到 某 一 时 刻 一 个 打 印 任 务 的 位 置 lpq 给
出 打 印 任 务 的 用 户 ( 发 送 作 业 用 户 的 登 录 名 ) , 打 印 任 务 的 I D ,以 b y e 标 识 的 大 小 ,
以 及 它 所 贮 存 的 临 时 文 件 。 在 下 一 个 例 子 中 ,打 印 任 务 的 用 户 是 C h r i s 打 印 功 能
是 000/5 。
$ lpq
Owner ID Chars Filename
Chris 000/5 360 /usr/lpd/cfa 000/5
如 果 您 想 取 消 一 个 不 需 要 的 打 印 任 务 ,你 可 以 利 用 l p r m 来 完 成 。 l p r m 以 打
印 作 业 的 ID 号 或 者 其 用 户 名 作 为 参 数 。 l p r m 会 将 打 印 任 务 目 打 印 队 列 中 移 出 。
在 这 项 工 作 中 , l p q 是 非 常 有 用 的 , 它 可 以 给 你 提 供 打 印 任 务 ID 号 和 同 户 名 以 便
lprm 使 用 。 在 下 一 个 例 子 中 ,15 号 打 印 任 务 被 取 消 。
$ lprm 000/5
你 的 L i n u x 系 统 可 以 连 接 若 干 台 打 印 机 ,其 中 一 台 会 被 指 定 为 缺 省 打 印 机 ,除
非 指 定 另 一 台 打 印 机 ,否 则 l p r 命 令 将 会 在 此 打 印 机 上 打 印 。 用 l p r 命 令 你 可 以 指
定想要进行打印的特定的打印机。系统中的每一台打印机都有自己的名字。利-
p 选 项 及 打 印 机 的 名 字 ,你 可 以 指 定 使 用 哪 一 台 打 印 机 。 在 下 一 个 例 子 中 ,文 件
mydata 在 打 印 机 enansl 上 进 行 打 印 。
$ lpr -Pevansl mydata

6.4 目 录 管 理 :mkdir, rmdir, ls, cd 和 p w d

如 第 4 章 所 述 , 你 可 以 创 建 并 移 动 你 自 己 的 目 录 ,也 可 以 改 变 自 己 的 工 作 目 录 ,
利 用 m k d i r , r m d i r 和 c d 命 令 。每 个 命 令 都 可 将 目 录 的 路 径 名 作 为 自 己 的 参 数 。p w d
命 令 会 显 示 你 工 作 目 录 的 绝 对 路 径 名 。 除 这 些 命 令 之 外 ,特 殊 字 符 如 点 号 、 双 点
号 和 ~ 符 号 都 可 被 用 来 引 用 工 作 目 录 ,工 作 目 录 的 父 目 录 和 h o m e 目 录 。 所 有 这
些 命 令 加 在 一 起 ,你 便 可 以 对 你 的 目 录 进 行 管 理 。 你 可 以 创 建 网 状 的 目 录 ,从 一 个
目 录 移 动 到 另 一 个 目 录 ,或 利 用 路 径 名 来 引 用 你 其 它 的 目 录 。 用 于 管 好 目 录 的 这
些 通 常 的 命 令 在 表 6-4 中 列 出 。

6 . 4 . 1 创 建 和 删 除 目 录 : m k d i r 和 rm d ir
用 m k d i r 和 r m d i r 命 令 你 便 可 以 创 建 和 删 除 目 录 。 两 个 情 况 下 ,你 都 可 以 使
用 目 录 的 路 径 名 。 在 下 一 个 例 子 中 ,用 户 创 建 了 目 录 r e p o r t s . 然 后 用 户 用 路 径 名
创 建 了 letters 目 录 。 在 rmdir 命 令 后 加 入 目 录 名 可 以 删 除 目 录 。 在 下 一 个 例 子
中 ,用 户 用 r m d i r 命 令 删 除 了 目 录 r e p o r t s ,然 后 用 路 径 名 删 除 了 目 录 l e t t e r s .
$ rmdir neports
$ rmdir/home/chris/letters
6 . 4 . 2 目 录 列 表 :ls
你 已 看 到 如 何 使 用 ls 命 令 列 出 工 作 目 录 中 的 文 化 和 目 录 。 然 而 , 为 了 区 分 文
件 名 和 目 录 名 ,你 需 使 ls 命 令 的 - F 选 项 。 然 后 列 表 中 每 个 目 录 名 后 会 加 入 一 条
斜线
$ ls
loeathes neports letters
$ ls -F
weather reports/ letters/
ls 命 令 也 可 以 目 录 名 或 目 录 路 径 名 作 参 数 。 这 样 你 无 需 先 改 换 向 该 目 录 , 便
可 列 出 此 目 录 中 的 文 件 。 在 下 一 个 例 子 中 ,ls 命 令 的 参 数 是 一 个 目 录 名 , r e p o r t s 。
然 后 ls 命 令 又 被 执 行 了 一 次 ,不 过 这 次 使 用 了 r e p o r n s 的 绝 对 路 径 名 。
$ ls reports
monday tnesday
$ ls/home/chris/reports
monday twesday
$

6.4.3 路 径 名 : p w d 命 令
在 每 个 目 录 中 ,你 可 以 再 创 建 另 外 的 目 录 , 即 在 实 际 上 成 为 网 状 目 录 。 利 用 c d
命 令 ,你 可 以 一 个 目 录 改 换 入 另 一 个 目 录 。 然 而 ,没 有 指 示 符 来 告 知 你 目 前 处 于 哪
一 个 目 录 中 。 要 找 出 你 改 换 到 了 哪 个 目 录 ,用 p w d 命 令 可 以 显 示 你 目 前 的 工 作 目
录 。 p w d 命 令 不 仅 仅 显 示 目 录 名 ,它 显 示 了 整 个 路 径 名 ,如 下 例 所 示 ,这 里 显 示 的
路 径 名 包 括 h o m e 目 录 ,dylam 它 是 h o m e 目 录 的 一 部 分 。 每 一 个 目 录 名 都 用 斜
线 隔 开。根目录以开头的斜线表示:
$ pwd
/home/dylan

6.4.4 更 换 目 录 :cd 命 令
如 何 所 知 的 ,用 c d 命 令 可 以 更 换 目 录 。 更 换 后 的 目 录 当 成 为 工 作 目 录 ,它 是
你 的 缺 省 目 录 。 文 件 名 诸 如 ls 和 c p ,都 将 对 你 工 作 目 录 中 的 文 件 除 当 操 作 当 特
别 的指定。
当 你 登 录 入 系 统 ,你 的 工 作 目 录 是 你 的 h o m e 目 录 。 当 一 个 用 户 帐 号 创 建 时 ,
系 统 也 为 该 用 户 创 建 了 一 个 h o m e 目 录 。 当 你 登 录 时 ,你 便 总 被 置 于 h o m e 目 录
中 。c d 命 令 允 许 你 将 另 一 个 目 录 作 为 工 作 目 录 。在 某 种 意 义 上 , 你 可 从 你 的 h o m e
目 录移到另一个目录中。这一目录便成为任何命令和新文件创建的缺省目录。
例 如 ,ls 命 令 将 列 出 新 的 工 作 目 录 中 的 文 件 。 c d 命 令 将 你 想 转 移 的 目 录 名 作 的 参
数 。
$ cd directory-name
在 下 一 个 例 子 中 ,用 户 从 h o m e 目 录 更 换 到 props 目 录 中 。 用 户 执 行 了 p w d
命 令来显示工作目录。
$ pwd
/home/dylan
$ pwd
/home/dylan/props
$
注 意 ,当 你 创 建 一 个 新 目 录 时 ,你 已 经 处 于 一 个 工 作 目 录 当 中 了 。 你 所 创 建 的
任 何目录都在工作目录之中。工作目录和你在其中创建的新目录之间有父子关
系 。工 作 目 录 是 新 建 目 录 的 父 目 录 。如 果 用 户 在 h o m e 目 录 中 ,创 建 了 一 个 p r o p s
目 录 ,那 么 h o m e 目 录 便 是 p r o p s 目 录 的 父 目 录 , p r o p s 是 h o m e 目 录 的 子 目 录 。
你 可 用 两 点 ”. .”来 代 表 一 个 目 录 的 父 目 录 。 在 字 面 上 ,它 表 示 着 父 目 录 的 路 径
名 。 你 可 用 cd 命 令 和 双 点 号 移 回 到 父 目 录 。 将 父 目 录 作 为 当 前 目 录 。 在 下 一 个
例 子 中 , 用 户 进 入 p r o p s 目 录 ,然 后 又 移 回 h o m e 目 录 。
$ cd props
$ pwd
/ home/dylan/props
$ cd..
$ /home/dylan
如 果 你 想 改 换 回 h o m e 目 录 ,你 只 需 键 入 c d 命 令 本 身 , 而 无 须 加 任 何 文 件 名
参 数 。 你 将 移 回 h o m e 目 录 ,将 主 再 次 作 为 工 作 目 录 。 在 下 一 个 例 子 中 ,用 户 改 换
回 home 目 录 。
$ pwd
/home/chris/letless
$ cd
$ pwd
/home/chris
你 会 发 现 你 会 频 繁 地 用 h o m e 目 录 进 入 其 它 目 录 ,然 后 再 返 回 。 在 下 一 个 例
子 中 , 用 户 由 自 己 的 h o m e 目 录 , d y l a n ,进 入 p r o p s 目 录 。 然 后 用 户 用 单 独 的 c d
命 令 ,又 返 回 了 自 己 的 h o m e 目 录 。 在 每 次 改 换 之 前 ,用 户 使 用 p w d 命 令 来 显 示
工作目录。
$ pwd
/home/dylan
$ cd props
$ pwd
/home/dylan/props
$ cd
$ pwd
/home/dylan

6.4.5 网 状 目 录 (nested Directories)


让 我 们 来 看 一 下 cd 命 令 如 何 在 一 系 列 网 状 目 录 间 穿 梭 的 。 在 下 一 个 例 子
中 ,cd 命 令 进 入 letters 目 录 。 mkdir 命 令 建 了 一 个 叫 作 t h a n k y o u 的 letters 的 子
目 录 。 再 次 使 用 c d 命 令 ,用 户 进 入 t h a n k y o u 目 录 。 在 此 目 录 中 ,又 创 建 了 一 个
目 录 b i r t h d a y 。 用 户 又 进 入 该 目 录 。 每 次 , p w d 命 令 都 显 示 了 路 名 。 最 后 ,没 有 参
数 的 c d 命 令 回 到 了 h o m e 目 录 中 。 ls 命 令 加 - R 选 项 将 打 印 出 , 工 作 目 录 下 的 所
有网状子目录。
$ pwd
/home/chris
$ cd letters
$ pwd
/home/chris/letters
$ mkdir thankyou
$ cd thankyou
$ pwd
/home/chris/tetters/thankyou letters:
$ mkdir birthday
$ cd birthday
$ pwd
/home/chris/letters/thankyou/birn
$ cd
$ pwd
/home/chris
$ ls -R
thankyou
letters/thankyou
birthday
letters/thanbyan/birthday
$

6 . 4 . 6 引 用 工 作 目 录 和 父 目 录 : .和 . .
一 个 目 录 总 是 有 父 目 录 的 ( 当 然 ,根 目 录 除 外 ) 。 例 如 , 在 上 一 列 表 中 , t h a n k y o u
目 录 的 父 目 录 是 letters 目 录 。 将 一 个 目 录 被 创 建 后 ,便 有 两 个 入 口 。 一 个 以 .表
示 , 另 一 个 以 .. 表 示 。 点 是 表 示 目 录 的 路 径 名 , 双 点 号 表 示 目 录 的 父 目 录 的 路 径 名 。
双 点 是 可 以 命 令 中 作 为 参 数 ,代 表 的 父 目 录 的 引 用 。 单 点 代 表 目 录 本 身 。 在 下 一
个 例 子 中 ,用 户 进 入 l e t t e r s 目 录 。 ls 命 令 与 .参 数 一 起 列 出 了 l e t t e r s 目 录 中 的 文
件 。 ls 命 令 和 ..参 数 一 起 列 出 了 l e t t e r s 的 父 目 录 ,C h r i s 中 的 文 件 名 。

图 6-6 工 作 目 录 (用 点 表 示 )是 letters,它 的 父 目 录 ,chris 用 两 个 点 表 示 ,是 home 目 录


$ cd letters
$ ls.
thankyou
$ ls..
weathen letters
$
图 6-6 描 述 了 点 号 和 双 点 号 代 表 工 作 目 录 和 父 目 录 的 使 用 。 正 如 上 例 所 示 ,
父 目 录 是 h o m e 目 录 :chris 。 工 作 目 录 是 letters 。
你 可 以 用 单 点 号 来 引 用 工 作 目 录 ,而 不 用 它 的 路 径 名 。 例 如 ,将 一 个 文 件 以 原
名 拷 贝 入 工 作 目 录 ,点 号 可 用 来 代 替 工 作 目 录 的 路 径 名 。 在 这 种 意 义 上 ,点 号 是 工
作 目 录 的 另 一 个 名 字 。 在 下 一 个 例 子 中 ,用 户 将 文 件 w e a t h e r 由 目 录 chris 拷 贝
入 目 录 reports 中 。 reports 目 录 是 工 作 目 录 ,因 此 可 用 点 号 代 替 。
$ cd reports
$ cp/home/chris/weather
双 点 是 常 用 于 引 用 父 目 录 中 的 文 件 。 下 列 中 ,cat 命 令 显 示 了 父 目 录 中 的
w e a t h e r 文 件 ,文 件 的 目 路 径 名 是 . .是 加 斜 杠 和 文 件 名 。
$ cat ../weather
raining and warm
利 用 c d 命 令 和 ..是 你 可 以 从 一 个 低 的 目 录 间 到 连 续 的 相 应 父 目 录 中 。 在 下
一 个 例 子 中 , u s e r 在 目 录 t h a n k y o u 中 。然 后 不 断 用 户 回 到 c h r i s 中 ,使 用 c d 命 令 。
$ pwd
/home/chris/letters/thankyou
$ cd..
$ pwd
/home/chris/letters
$ cd..
$ pwd
/home/chris
很 多 时 候 你 会 同 时 使 用 .. 和 . 作 为 命 令 参 数 。 例 如 , 以 l e t t e r s 作 为 工 作 目
录 , w e a t h e r 可 被 拷 贝 到 l e t t e r s 之 中 , 只 需 用 ..引 用 c h r i s 目 录 及 用 。 引 用 l e t t e r s
目录。
$ cp /w e a t h e r .

6.4.7 使 用 绝 对 和 相 对 路 径 名 :~
如 前 所 述 ,你 可 用 绝 对 或 相 对 路 径 名 来 引 用 文 件 和 目 录 。 然 而 ,每 一 个 都 有 其
限 制 。 尽 管 绝 对 路 径 名 可 引 用 任 何 文 件 或 路 径 ,它 通 常 以 较 常 并 且 复 杂 ,使 之 很 难
使 用 。 相 对 路 径 名 通 常 较 短 且 易 于 使 用 ,但 它 在 引 用 文 件 的 数 目 上 受 到 限 制 。 通
常 , 你 会 尽 可 能 地 使 用 相 对 路 径 名 ,只 有 在 必 要 时 ,只 有 在 必 要 时 , 不 使 用 绝 对 路 径
名 。 一 些 Shell 提 供 了 缩 略 路 径 名 的 方 法 。 相 对 路 径 名 由 工 作 目 录 开 始 。 在 下
一 个 例 子 中 ,ls 命 令 利 用 了 文 件 t h a n k g a n 的 相 对 路 径 和 绝 对 路 径 。 工 作 目 录 是
用 户 h o m e 目 录 ,C h r i s t h a k y a n 的 相 对 路 径 名 是 l e t t e r s / t h a n k y a n .
$ls letters/ thankyan
larisa
$ls/home/Chain/letters/thankyan
larisa
$.
相对路径名只能引用工作目录的子目录中的文件。这一子目录以在任何 深
度 ,但 它 们 的 路 径 必 须 从 工 作 目 录 开 始 分 支 。 假 如 你 要 引 用 某 一 在 目 录 树 上 更 高
的 目 录 或 在 另 一 分 子 上 的 目 录 。 例 如 说 ,reports 目 录 。 在 这 种 情 况 下 ,你 需 要 利
用 r e p o r t s 的 绝 对 路 径 名 。 在 下 一 个 例 子 中 ,用 户 用 绝 对 路 径 名 引 用 了 r e p o r t s 目
录 中 的 monday 文 件 。
$cat/home/Chris/reports/monday
将 引 用 目 录 树 中 更 高 层 目 录 时 也 需 要 绝 对 路 径 名 。 假 定 thandyan 是 工 作 目
录 ,一 个 用 户 想 显 示 你 的 h o m e 目 录 :/home/Chris 中 的 文 件 。 Chris 目 录 不 是
t h a n k y a n 的 一 个 子 目 录 ,不 能 用 相 对 路 路 径 名 加 以 引 用 。 在 这 种 情 况 下 , 用 户 为
了 引 用 h o m e 目 录 中 的 文 件 就 必 须 使 用 全 路 径 名 。 在 下 一 个 例 子 中 ,用 户 想 在
t h a n k y a n 目 录 中 显 示 h o m e 目 录 : / h o m e / c h r i s 中 的 一 个 文 件 w e a t h e r。 用 户 需
要 使 用 weather 的 绝 对 路 径 名 来 完 成 这 一 工 作 。
$Pwd
/H o m e / C h r i s / l e t t e r s / t h a n k y a n
$cat/home/chris/weather
raining and waim
由 根 目 录 到 你 的 h o m e 目 录 的 绝 对 路 径 名 可 能 非 常 复 杂 ,并 有 可 能 因 系 统 管
理 员 的 原 因 而 改 变 。 为 了 让 它 更 易 使 用 ,你 可 以 使 用 特 殊 字 符 ,波 浪 线 ~ ,它 代 表
你 的 h o m e 目 录 的 绝 对 路 径 名 。 在 下 一 个 例 子 中 ,用 户 在 w e a t h e r 之 前 加 入 了 波
浪 线 和 斜 和 来 完 成 对 h o m e 目 录 中 weather 文 件 的 引 用 。
$Pwd
/home/Chris/letters/thankyon
$cat /weater
raining and warm
$
你 必 须 指 定 由 h o m e 目 录 之 后 的 其 它 路 径 。 在 下 一 个 例 子 中 ,用 户 引 用 了
reports 目 录 中 的 m o n d a y 文 件 中 。 波 浪 线 代 表 了 用 户 的 h o m e 目 录 的 路
径 : / h o m e / C h r i s ,然 后 又 指 定 了 到 m o n d a y 文 件 的 剩 余 路 径 。
$cat /reports/monday.

6 . 5 文 件 和 目 录 操 作 : f i n d . c p . m v . r m 和 ln

随 着 你 创 建 文 件 数 目 的 增 加 ,你 可 能 希 望 将 之 备 份 ,改 变 它 们 的 名 字 ,删 除 部 分
文 件 ,或 者 给 它 们 增 加 命 字 。 L i n u x 为 你 提 供 了 几 个 文 件 命 令 朵 查 找 文 件 、 拷 贝
文 件 、 重 命 名 或 删 除 文 件 。 如 果 你 有 大 量 的 文 件 ,你 可 以 对 不 查 找 并 确 定 某 一 特
殊 文 件 。 这 些 命 令 是 整 词 的 缩 略 形 式 , 由 两 个 字 符 组 成 。 C P 命 令 代 表 ”c o p y ”, 可
以 完 成 文 件 拷 贝 命 令 , m r 代 表 ”m o r e ”, 可 对 文 件 重 定 各 或 移 动 文 件 ,rm 代
表 ”r e m o r e ”,可 以 删 除 一 个 文 件 ,ln 代 表 ”l i n k”, 可 对 文 件 添 加 一 个 名 字 。 这 一 规 则
的 例 外 是 f i n d 命 令 ,它 对 文 件 名 进 行 搜 索 来 找 到 一 个 文 件 。 表 6 - 5 列 出 了 包 括 它
们的选项在内的不同的操作。

6.5.1 查 找 目 录 :find.
一 旦 在 许 多 不 同 目 录 中 有 大 量 的 文 件 ,你 便 需 要 对 某 一 文 件 或 某 一 类 型 的 文
件 进 行 查 找 。 利 用 find 命 令 可 以 进 行 此 种 查 找 。 find 命 令 的 参 数 是 目 录 名 和 几
个 指 定 查 找 类 型 和 查 找 标 准 的 可 能 的 选 项 。 然 后 find 将 在 指 定 的 目 录 及 其 子 目
录 中 查 找 符 合 标 准 的 文 件 。 find 命 令 可 按 文 件 名 、 文 件 类 型 ,用 户 名 甚 至 最 新 更
改 的日期来查找文件。
$find directory-fist option criteria
- n a m e 选 项 确 定 了 查 找 标 准 并 指 导 find 命 令 查 找 与 此 标 准 匹 配 的 文 件 名 。
要 按 文 件 名 进 行 查 找 ,可 使 用 f i n d 命 令 ,加 带 目 录 名 , 其 后 再 加 上 - n a m e 选 项 和 文
件 名。
$find directory-list -name filenane
find 命 令 也 有 些 只 是 执 行 操 作 的 选 项 ,如 将 查 找 结 果 输 出 的 操 作 。 如 果 你 希
望 f i n d 命 令 显 示 找 到 的 文 件 ,只 须 在 命 令 行 上 将 - p r i n t 选 项 和 其 它 任 何 选 项 加 入
即 可 。 -print 选 项 指 示 find 命 令 将 所 查 找 到 的 所 到 文 件 名 送 入 标 准 输 出 。 在 下
一 个 例 子 中 ,用 户 搜 索 了 r e p o r t s 目 录 中 所 有 以 m o n d a y 为 名 的 文 件 。 一 旦 找 到 ,
这 一文件和它的相对路径名将会被打印出来。
$find reports -name monday -print
reports/monday
find 命 令 将 用 目 录 列 表 中 指 定 的 目 录 名 来 显 示 一 个 文 件 名 。 如 果 你 指 定 了
一 个 绝 对 路 径 名 ,找 到 的 目 录 的 绝 对 路 径 将 被 显 示 。 如 果 指 定 了 相 对 路 经 名 ,那 么
只 会 显 示 目 录 的 相 对 路 径 。 上 例 中 ,用 户 在 目 录 列 表 中 拽 定 了 一 个 相 对 路 径
名 , r e p o r t s .查 找 到 的 文 件 名 也 以 这 个 相 对 路 径 名 为 开 始 。 在 下 一 个 例 子 中 , 用 户
指 定 了 目 录 列 表 中 一 个 绝 对 路 径 名 ,查 找 的 文 件 名 则 会 以 绝 对 路 径 名 输 出 。
$find /home/chais -name monday -print
/home/chris/reports/monday.
如 果 你 想 搜 索 你 的 工 作 目 录 ,可 以 使 用 目 录 路 径 名 中 的 点 是 来 代 表 工 作 目
录 。 双 点 是 代 表 父 目 录 。 下 一 个 例 子 用 点 呈 代 表 工 作 目 录 ,搜 索 了 工 作 目 录 中 的
所 有 文 件 和 子 目 录 。 如 果 你 位 于 h o m e 目 录 中 ,这 是 一 种 搜 索 你 所 有 目 录 的 方 便
的 方法。注意找到的文件是以点是开头而输出的。
$find -name weather -print
./weather
你 可 以 将 s h e l l 特 殊 字 符 作 为 搜 索 标 准 的 一 部 分 。 然 而 ,特 殊 字 符 必 须 加 以 引
用 以 免 s h e l l 对 之 取 值 。 在 下 一 个 例 子 中 ,将 对 p r o g r a m s 目 录 中 所 有 以 .c 为 扩 展
的 文件加以搜索。
$find programs -name '*.c' -print
搜索标准
你 也 可 利 用 find 命 令 来 查 找 其 它 目 录 。 在 L i n u x 中 ,一 个 目 录 被 正 式 划 分 为
一 种 特 殊 类 型 的 文 件 。 尽 管 所 有 的 文 件 都 有 b y t e 流 的 格 式 ,但 是 一 些 文 件 , 诸 如
目 录 ,有 特 殊 的 用 法 。 在 这 个 意 义 上 ,一 个 文 件 也 说 是 有 一 种 文 件 类 型 。 f i n d 命 令
有 一 个 -type 选 项 ,可 用 来 查 找 一 个 文 件 或 一 种 文 件 类 型 。 -type 选 项 有 一 个 字 符
代 表 文 件 类 型 。 这 一 代 表 目 录 的 字 符 是 d ,在 下 一 个 例 子 中 ,利 用 了 目 录 名 和 目 录
文 件 类 型 来 查 找 称 作 thankyon 的 目 录 。
$find /home/chris -name thankyon -type d -print
/home/ chris/letters /thankyon
如 上 文 所 述 ,文 件 不 同 类 型 并 不 像 操 作 系 统 的 其 它 元 素 — — 诸 如 设 备 的 文 件
格 式 那 样 是 截 然 不 同 的 文 件 。 在 这 种 意 义 上 ,一 个 设 备 被 作 为 一 种 类 型 的 文 件 看
诗 ,你 可 以 用 f i n d 命 令 来 查 找 设 备 、 目 录 ,和 普 通 的 文 件 。 表 6 - 6 列 出 了 f i n d 命
令 的 -type 选 项 可 使 用 的 不 同 文 件 类 型 。
find 命 令 包 含 许 多 不 同 的 搜 索 标 准 。 你 可 以 按 文 件 大 小 、 文 件 最 后 被 修 改
的 时 间 ,它 所 具 有 的 连 接 ,它 所 属 的 组 群 ,及 其 它 一 些 标 准 来 查 找 文 件 。 表 6-6 中
列 出 了 这 些 不 同 的 查 找 标 准 。 其 中 两 个 比 较 常 用 的 是 -size 和 - m t i m e 选 项 。 每
一 个 都 以 一 个 数 字 作 参 数 。 -size 选 项 缺 省 以 块 作 度 量 单 位 ,如 果 在 数 字 后 加 入 c ,
它 将 以 字 符 c b y t e 为 度 名 单 位 。 你 可 用 ”+ ””- ”来 修 改 一 个 数 字 以 查 找 比 指 是 大 小
要 大 或 小 的 文 件 。 例 如 +100C 会 选 择 超 过 100 个 字 符 的 文 件 。 -mtime 选 项 以
它 们 多 少 天 之 前 被 修 改 过 为 查 找 标 准 。 例 如 ,利 用 这 一 选 项 , 你 可 以 查 找 你 两 天 前
使 用 过 的 文 件 。 在 下 一 个 例 子 中 ,find 命 令 用 -size 选 项 来 查 找 所 有 大 于 10 个 字
节 的 文 件 。 第 二 个 例 子 中 ,find 命 令 用 - m t i m e 选 项 来 查 找 三 天 前 修 改 过 的 文 件 。
$find .-size +10c -print
.weather
./reports/monday
$find . -mtime +3 -print
./weather_
复杂的搜索
当 选 项 在 命 令 行 上 列 出 时 ,它 们 之 间 是 潜 在 的 与 操 作 。 只 有 满 足 所 有 要 求 的
文 件 名 才 会 被 列 出 。 然 而 利 用 引 用 的 括 号 和 逻 辑 上 的 O R 和 N O T 操 作 符 ,你 便
可 以 创 建 复 杂 的 搜 索 查 询 。 f i n d 命 令 的 N O T 操 作 将 是 一 个 惊 叹 号 ”!”,放 在 任 何
搜 索 标 准 前 的 !号 将 对 比 标 准 取 反 。 如 果 这 一 标 准 的 匹 配 结 果 为 假 ,那 么 文 件 便 是
有 效 匹 配 。 便 如 ,下 述 命 令 列 出 所 以 无 .C 扩 展 的 文 件 名 。
$/s
main.c/ib.o today
$ f i n d . ! - n a m e “*.c ”- p r i n t
/ib.o today
find 命 令 的 逻 辑 或 操 作 符 是 - o ,放 在 两 个 搜 索 标 准 之 间 的 -o 选 项 表 明 二 者 之
间 是 或 的 关 系 。 如 果 文 件 满 足 其 一 或 两 者 的 要 求 ,那 文 件 就 是 一 个 有 效 的 匹 配 。
你 需 要 把 -o 每 项 和 它 的 搜 索 标 准 操 作 数 放 入 括 号 内 。 括 号 之 前 加 左 斜 杠 并 在 前
后 加 入 空 格 将 会 实 现 对 括 号 的 引 用 ,下 一 个 命 令 查 找 有 w e a t h e r 名 字 的 文 件 和 目
录 。注意在引用的括号前后的空格。
$ find . \(-name weathee -o -type d \) -print
./weather
./reports
./cetters
./cetters/ thankyou
用 引 用 的 括 号 将 搜 索 标 准 组 合 起 来 ,你 便 可 以 实 现 复 杂 的 逻 辑 操 作 。 下 列 中
对 一 个 名 为 reports 的 目 录 和 所 有 尺 寸 大 于 lobyte 的 文 件 进 行 查 找 。 引 用 的 括
号 放 在 - n a m e 和 -type 的 与 操 作 和 与 -size 的 或 操 作 之 外 。 这 一 命 令 的 逻 辑 操 作
可被表达为:
((name=reports) AND (file=directory type)) OR (size>10)
$find.\(\(-name reports -type d\)-o -size+10\)
-print
./reports
./weather

6.5.2 文 件 拷 贝
要 进 行 文 件 拷 贝 ,只 须 将 两 个 文 件 名 指 定 为 c p 命 令 的 参 数 。 第 一 个 文 件 名 是
要 被进行拷贝的文件——已存在的那个文件。这通常被称作源文件。第二个文
件 名是拷贝的文件。这一操作会产生一个包含着源文件全部数据的新的文件。
第 二 个 参 数 通 常 被 称 作 目 标 文 件 。 cp 命 令 的 语 句 如 下 :
$cp source-file destination-file
下 列 中 ,用 户 将 一 个 叫 作 p r o p o s a c 的 文 件 拷 贝 到 叫 做 o l d p r o p 的 新 文 件 中 。
$cp proposal oldprop
当 用 户 对 目 录 中 文 件 列 表 时 ,新 的 拷 贝 也 在 列 表 中 。
$ ls
proposat oldprop
你 在 不 经 意 间 用 cp 命 令 破 坏 了 另 一 文 件 是 有 可 能 的 。 cp 命 令 进 行 拷 贝 时 ,
首 先 创 建 一 个 文 件 ,然 后 将 数 据 拷 贝 入 其 中 。 如 果 另 一 文 件 与 目 标 文 件 同 为 ,那 么
这 一 文 件 将 被 破 坏 ,而 另 一 同 名 的 新 文 件 会 被 创 建 。 在 某 种 定 义 上 ,原 有 文 件 被 新
的 拷 贝 覆 盖 了 。 在 下 一 个 例 子 中 ,proposal 文 件 被 newprop 文 件 覆 盖 了 。 因 为
proposal 文 件 已 经 存 在 了 。
$cp newprop proposal
在 1 5 章 ,你 将 学 习 如 何 对 系 统 进 行 设 置 来 查 觉 这 种 覆 盖 。 那 时 ,用 c p 命 令 和
-i 选 项 会 更 安 全 。 利 用 这 一 选 项 ,cp 首 先 会 察 看 这 一 文 件 是 否 已 存 在 。 如 果 已 存
在 ,便 会 问 你 是 否 愿 意 覆 盖 已 存 在 的 文 件 。 如 果 你 输 入 y ,这 一 文 件 将 被 破 坏 并 创
建 一 个 新 文 件 作 为 拷 贝 文 件 。 如 果 你 输 入 其 它 任 何 东 西 ,它 便 认 为 是 否 定 的 回
答 ,cp 命 令 将 会 被 中 断 ,保 留 原 有 的 文 件 。
$cp -i newprop proposal
Orerwrite proposal? n
$
将文件拷入目录
要 将 文 件 由 工 作 目 录 拷 贝 到 另 一 目 录 ,只 须 将 目 录 名 作 为 命 令 的 第 二 个 参 数
即 可 。 新 的 拷 贝 文 件 名 与 原 来 相 同 ,但 拷 贝 文 件 在 一 个 不 同 的 目 录 中 。
不 同 目 录 中 的 文 件 可 以 有 相 同 的 名 字 。 因 为 它 们 在 不 同 目 录 中 ,它 们 被 当 作
不同的文件登记。
$cp filename directoly-name
要 将 一 个 文 件 由 h o m e 目 录 拷 贝 入 一 个 目 录 ,你 只 须 指 定 子 目 录 名 即 可 。 下
列 中 ,文 件 n e w p r o o p 被 由 工 作 目 录 拷 贝 入 p r o p s 目 录 。
$cp newprop props
C P 命 令 可 将 几 个 文 件 名 列 表 作 为 自 己 的 参 数 ,因 此 你 可 以 同 时 将 几 个 文 件
拷 贝 入 一 个 目 录 。 只 要 在 命 令 行 上 列 出 文 件 名 ,并 将 目 录 名 作 为 最 后 一 个 参 数 , 然
后 所 有 文 件 便 被 拷 贝 入 目 标 在 下 一 个 例 子 中 ,用 户 将 文 件 p r e f a c e 和 d o c l 拷 贝 到
p r o p s 目 录 中 ,注 意 p r o p s 是 最 后 一 个 参 数 。
$cp preface doc props
你 可 以 利 用 第 5 章 介 绍 的 特 殊 字 符 来 创 建 文 件 名 列 表 供 cp 或 m v 使 用 。 例
如 ,你 想 把 所 有 的 C 源 代 码 文 件 拷 贝 到 指 定 目 录 。 无 须 在 命 令 行 上 将 每 个 文 件 名
逐 一 列 出 ,只 要 用 特 殊 符 ”* ”和 . c 扩 展 即 可 匹 配 并 列 出 所 有 的 C 源 代 码 文 件 ( 所 有
此 类 文 件 都 有 .c 扩 展 名 ) 。 在 下 一 个 例 子 中 ,用 户 将 p r o p e s 目 录 中 所 有 文 件 拷 贝
到 o l d p r o p 目 录 中 。 注 意 在 *.* 之 前 p r o p s 路 径 名 的 使 用 。 在 这 种 语 境 下 , p r o p s
是 一 个 加 在 *.* 产 生 的 文 件 列 表 上 的 路 径 名 。
$cp props/ *.* oldprop
你 当 然 可 以 使 用 其 它 的 特 殊 字 符 , 如 ”.””? ”或 ”[]”。 在 下 一 个 例 子 中 , 用 户 将 源
代 码 和 目 标 代 码 文 件 (.c 和 . o ) 拷 贝 到 p r o j b k 目 录 。
$cp *.[oc] projbk
当 你 拷 贝 文 件 时 ,你 可 能 想 给 拷 贝 文 件 起 一 个 前 的 名 字 。 将 新 文 件 名 对 目 录
名 之 后 ,并 以 斜 杠 隔 开 即 可 完 成 这 一 任 务 。
$cp filename directory-name/new-filename
在 下 一 个 例 子 中 ,文 件 n e w p r o p 被 拷 贝 到 p r o p s 目 录 中 ,拷 贝 文 件 名 字 为
v e r s i o n 1 。用 户 然 后 进 入 p r o p s 目 录 并 对 文 件 列 表 。 其 中 只 有 一 个 叫 作 V e r s i o n 1
的文件。
$cp newprop props/version/
$cd props
$ls
versionl.
当 你 想 把 一 个 文 件 由 子 目 录 拷 贝 到 父 目 录 中 时 ,你 需 要 指 定 子 目 录 的 名 字 。c p
命 令的第一个参数是需要拷贝的文件名。文件名前必须加由斜杠分隔开的子目
录 的名字。第二个参数是将拷贝在父目录中的文件名。
$cp Child-directory-name/filename new-filename
下 列 中 ,文 件 v e r s i o n l 被 由 p r o p s 目 录 拷 贝 到 h o m e 目 录 。
$cp props/version/ version1
假 定 ,你 已 将 工 作 目 录 更 换 到 了 一 个 子 目 录 , 你 想 将 一 个 文 件 中 子 目 录 拷 贝 入
父 目 录 。 你 需 要 通 过 一 些 方 法 来 引 用 父 目 录 。 你 可 以 用 双 点 号 来 完 成 ,它 代 表 着
父 目录的路径名。
$cp filename ..
$cp filename../new-filename
例 如 ,如 果 p r o p s 目 录 是 你 现 在 的 工 作 目 录 ,你 想 将 文 件 Version ′ 的 拷 贝 到
它 的 父 目 录 中 ( 本 例 中 ,是 用 户 的 h o m e 目 录 ) ,你 需 要 把 双 点 是 作 为 c p 命 令 的 第
二 个参数。
$cp version1..
如 果 你 想 给 以 v e r s i o n / 的 拷 贝 起 一 个 新 名 字 ,将 名 字 加 在 第 二 个 参 数 之 后 , 名
字 之前加斜杠。
$cp version 1../newversion
6.5.3 移 动 文 件
你右使用 mv 命令来为文件改名或将文件由一个目录移入另一个目录。当利
用 m v 来 对 文 件 改 名 时 ,只 需 将 新 文 件 名 作 为 其 第 二 个 参 数 。 第 一 个 参 数 是 你 正
在 使用的文件名。
$mv original-filename new-filename
$mv proposal version1
与 c o 相 同 ,m v 命 令 也 很 有 可 能 意 外 地 删 除 一 个 文 件 。 将 对 文 件 更 名 时 ,你 可
能 不小心选择了另一个已存在的文件的名字。mv 命令的一个选项也可以事先查
看 有 相 同 文 件 名 的 文 件 是 否 存 在 。 如 果 存 在 ,会 向 你 询 问 是 否 将 之 覆 盖 。 下 列 中 ,
一 个 以 version1 为 名 的 文 件 已 经 存 在 。
覆 盖 状 况 被 查 觉 到 ,你 会 被 询 问 是 否 将 那 个 文 件 覆 盖 。
$ ls
proposal version1
$mv-i version1 proposal
over write proposal? n
$
你 可 将 文 件 由 一 个 目 录 移 动 到 另 一 目 录 ,只 要 将 文 件 名 作 为 m v 命 令 的 第 二
个 参 数 。 这 种 情 况 下 ,你 可 以 认 为 m v 命 令 是 简 单 地 将 文 件 由 一 个 目 录 移 到 另 一
个 ,而 不 是 将 文 件 更 名 。 在 将 文 件 移 动 之 后 , 文 件 将 与 在 原 目 录 中 具 有 相 同 的 文 件
名 ,除 非 你 有 特 殊 的 指 定 。
$mv filename directory-name
在 下 一 个 例 子 中 ,文 件 n e w p r o p 由 h o m e 目 录 移 动 到 p r o p s 目 录 。
$mv newprop props
如 果 你 想 在 移 动 文 件 时 对 文 件 更 名 ,可 在 目 录 名 后 指 定 新 的 文 件 名 。 目 录 名
和 新 的 文 件 名 之 间 由 斜 杠 分 隔 。 在 下 一 个 例 子 中 ,文 件 n e w p r o p 移 动 到 p r o p s
目 录 并 被 更 名 为 verion1.
$mv newprops props/version1
$cd props
$ls
通 过 在 文 件 名 前 指 定 子 目 录 名 ,一 个 文 件 也 可 以 被 很 容 易 地 由 一 个 子 目 录 移
动 到父目录。
$mv props/version1 version1
假 定 ,你 已 将 你 的 工 作 目 录 移 到 工 作 目 录 的 子 目 录 中 ,你 想 将 一 个 一 个 由 子 目
录 移 到 父 目 录 中 。 如 同 C P 命 令 一 样 ,你 也 可 以 用 双 点 是 来 引 用 父 目 录 。
$mv filename ..
$mv filename ../new-filename
如 果 p r o p s 是 你 现 在 的 工 作 目 录 ,你 想 将 文 件 由 p r o p s 目 录 移 到 它 的 父 目 录
中 , - h o m e 目 录 中 ,那 你 应 把 双 点 是 作 为 m v 命 令 的 第 二 个 参 数 :
$mv version1..
如 果 你 想 在 X 目 录 中 给 文 件 r e v s i o n 1 更 换 一 个 新 名 字 ,只 要 将 新 名 字 加 在 m r
命 令 第 二 个 参 数 之 后 ,名 字 之 前 加 斜 杠 。
$mv version1 ../ddprop
一 个 文 件 的 实 际 名 字 是 文 件 名 之 前 加 它 的 目 录 路 径 。 当 文 件 tuesday 移 到
reports 目 录 后 , 实 际 上 它 的 路 径 名 已 经 变 了 。 文 件 tresday 的 全 名 已 由
/home/chris/tuesday 变 成 /home/chris/reports/tuesday,它 的 路 径 名 现 在 包 括 目
录 r e p o r t s s 。 在 这 种 意 义 上 ,将 文 件 更 名 更 像 是 将 文 件 进 行 了 移 动 。
利 用 绝 对 路 径 名 也 同 样 方 便 。 在 下 一 个 例 子 中 ,文 件 t o d a y 移 到 目 录 r e p o r t s
中 ,并 更 名 为 t u e s d a y , 注 意 在 m v 和 ls 命 令 中 都 使 用 文 件 的 绝 对 路 径 来 作 文 件 名
参数。
$mv today/home/chris/reports/tuesday
$ ls/home/chris/reports
monday tuesday
$
同 c p 命 令 一 样 ,m v 命 令 也 可 以 同 时 将 几 个 文 件 由 一 个 目 录 移 到 另 一 目 录 。
你只需在命令行上列出文件名。你最后输入应该总是目标目录。在下一个例子
中 ,用 户 将 文 件 w e d n e s d a y 和 f r i d a y 移 到 了 l a s t l e e k 目 录 中 。
$cp wednesday friday lastloeek
你也可以利第 5 章描述的任一个特殊字符产生文件名的列表以供 mv 命令
使 用 。 在 下 一 个 例 子 中 ,用 户 将 现 有 目 录 中 的 所 有 源 代 码 文 件 移 到 n e w p r o j 目 录
中。
l209 $mv *.c newproj
如 果 你 想 将 一 个 给 定 目 录 中 所 有 的 文 件 移 到 另 一 个 目 录 , 你 可 以 用 *.* 来 作 匹
配 以 产 生 这 些 文 件 的 列 表 。 在 下 一 个 例 子 中 ,用 户 将 r e o r t s 目 录 中 所 有 的 文 件 都
移 到 lepbks 目 录 。
$mv leports/*.* lepbks

6.5.4 目 录 的 移 动 和 拷 贝
你 也 可 以 对 目 录 进 行 移 动 和 拷 贝 。 cp 和 m v 都 可 以 把 目 录 名 作 为 第 一 个 参
数 ,使 你 可 以 把 子 目 录 由 一 个 目 录 拷 贝 或 移 动 到 另 外 一 个 目 录 中 去 。 第 一 个 参 数
是 要 被 拷 贝 成 移 动 的 目 录 名 ,第 二 个 参 数 是 将 要 把 子 目 录 置 于 其 中 的 目 录 名 。 文
件适用的路径名结构同样适用于目录的移动或拷贝。
将 子 目 录 由 一 个 目 录 拷 贝 到 另 一 个 目 录 也 同 样 容 易 。 要 进 行 目 录 拷 贝 ,cp 命
令 要 求 你 使 用 一 个 选 项 。 一 个 选 项 代 表 了 ”回 归 的 ”。 它 指 示 c p 命 令 拷 贝 一 个 目
录 和 它 所 包 含 的 子 目 录 。 换 句 话 说 ,整 个 的 目 录 树 ,由 那 个 目 录 起 ,都 会 被 拷 贝 。
在 下 一 个 例 子 中 ,目 录 thankyou 被 拷 贝 到 目 录 oldletloos 中 。 现 在 就 有 两 个
t h a n k y o u 子 目 录 了 。 一 个 在 l e t t e r s 中 ,另 一 个 o l d l e t t e r s 中 。
$cp-r letters/thankyou oldletters
$ls-F letters
/thankyou
$ls -F oldletters
/thankyou
假 定 , 你 只 想 拷 贝 一 个 目 录 中 的 文 件 , 而 不 想 拷 贝 一 个 目 录 ,使 之 成 为 另 一 个 目
录 的 子 目 录 。 要 将 一 个 目 录 中 的 全 部 文 件 拷 贝 到 另 一 个 目 录 中 ,你 必 须 指 定 它 们
的文件名。特殊字符星号可以匹配一个目录中的全部文件和子目录名。要 将
l e t t e r s 目 录 中 的 全 部 文 件 拷 贝 到 o l d l e t t e r s 目 录 中 ,你 应 将 星 号 作 为 你 的 第 一 个
参 数 以 便 产 生 letters 目 录 中 所 有 文 件 名 的 列 表 。 如 果 你 要 为 第 一 参 数 指 定 一 个
路 径 名 ,你 可 以 把 星 号 放 在 末 尾 。 在 下 一 个 例 子 中 ,letters 目 录 中 所 有 的 文 件 都 被
拷 贝 到 o l d l e t t e r s 目 录 。 为 l e t t e r s 指 定 了 一 个 路 径 名 ,路 径 名 末 尾 的 星 号 匹 配 了
letters 目 录 中 所 有 的 文 件 。
$cp-letters/* oldletters
为 了 将 子 目 录 包 含 在 拷 贝 操 作 中 ,你 需 要 使 用 c p 的 一 个 选 项 。
$cp-r letters/* oldletters

6.5.5 特 殊 字 符 ~
你 已 经 看 过 你 可 以 如 何 利 用 波 浪 线 来 代 表 home 目 录 的 绝 对 路 径 名 。 例 如 ,
为 了 将 一 个 文 件 由 低 层 的 目 录 拷 贝 到 h o m e 目 录 中 ,你 可 以 用 波 浪 线 来 代 表
h o m e 目 录 的 绝 对 路 径 名 。 在 下 一 个 例 子 中 ,用 户 进 入 r e p o r t s 目 录 ,然 后 将 文 件
m o n d a y 由 reports 目 录 拷 贝 到 h o m e 目 录 中 。
$cd reports
$cd monday ~
为 了 在 将 文 件 拷 贝 到 h o m e 目 录 时 给 文 件 更 换 一 个 新 的 名 字 ,你 可 将 名 字 放
在 ~ /之 后 。 在 下 一 个 例 子 中 ,文 件 m o n d a y 被 拷 贝 回 h o m e 目 录 中 ,拷 贝 被 更 名
为 t o d a y。
$cp monday ~ /today
在 m v 命 令 中 也 可 以 用 同 样 的 方 法 使 用 波 浪 线 。 在 下 一 个 例 子 中 ,文 件
m o n d a y 被 从 reports 目 录 移 动 到 h o m e 目 录 。
$mv monday ~
如 果 将 文 件 由 低 层 目 录 移 到 h o m e 目 录 时 你 想 将 之 更 名 ,新 名 字 前 应 加 波 浪
线 和 斜 杠 :~ /。 在 下 一 个 例 子 中 ,用 户 进 入 了 r e p o r t s 目 录 ,文 件 m o n d a y 被 移 动
回 home 目 录 并 被 更 名 为
t o d a y。
$cd reports
$mv monday ~ /today
当 你 将 利 用 home 目 录 的 路 径 名 时 你 就 可 以 使 用 波 浪 线 。 在 下 一 个 例 子 中 ,
以 前 介 绍 过 的 一 个 m v 和 ls 命 令 与 波 浪 线 一 齐 执 行 。
$mv weather ~ / reports/monday
$ls ~ /reports
monday
$

6 . 5 . 6 删 除 文 件 :rm 命 令
当 你 使 用 l i n u x 时 ,你 会 发 现 你 所 使 用 文 件 的 数 目 剧 增 。 在 l i n u x 中 创 建文件
是 很 容 易 的 。 诸 如 象 编 辑 器 的 应 用 程 序 ,象 c p 命 令 ,都 很 容 易 地 可 以 创 建 文件。
最 终 ,这 其 中 的 许 多 文 件 会 变 得 过 时 且 毫 无 用 处 。 你 可 以 用 r m 命 令 将 之 删除。
在 下 一 个 例 子 中 ,用 户 删 除 了 文 件 o l d p r o p 。
$ rm oldprop
r m 命 令 可 接 受 任 何 数 目 的 参 数 ,使 你 可 以 列 出 几 个 文 件 的 名 字 并 一 次 把它们
同 时 删 除 。 你 只 要 在 输 入 rm 之 后 把 它 们 列 在 命 令 行 上 即 可 。
$rm proposal version1 version2
使 用 rm 命 令 时 要 小 心 。 它 是 不 可 恢 复 的 。 一 旦 一 个 文 件 被 删 除 ,它 是 不 能
被 修 复 的 。 例 如 ,假 如 你 在 输 c p , r m 或 其 它 命 令 时 ,不 小 心 误 输 入 了 r m 命 令 。 当
你 按 了 回 车 键 并 认 识 到 自 己 的 错 误 时 ,已 经 太 晚 了 。 文 件 已 经 没 有 了 。 为 了 防 止
此 种 情 况 的 发 生 ,你 可 以 使 用 r m 命 令 的 一 个 选 项 来 确 保 你 想 删 除 一 个 文 件 。 利
用 一 个 选 项 ,你 会 被 每 个 文 件 揭 示 是 否 确 定 将 之 删 除 。 如 果 你 输 入 y ,文 件 将 被 删
除 。 如 果 你 输 入 任 何 其 它 东 西 ,文 件 将 被 保 留 。 在 下 一 个 例 子 中 ,rm 命 令 被 指 示
去 删 除 文 件 p r o p o s a l 和 o l d p r o p。 然 后 它 会 询 问 对 每 个 文 件 的 确 认 。 用 户 决 定
删 除 o l d p r o p ,保 留 p r o p o s a l。
#rm -i proposal oldprop
Remove proposal? n
Romove oldprop? y
$

6 . 5 . 7 连 接 :ln 命 令
用 ln 命 令 有 两 个 参 数 :文 件 的 原 名 和 文 件 新 的 添 加 名 。 ls 操 作 会 列 出 两 个 文
件 名 ,但 是 物 理 文 件 只 有 一 个 。
$ ln original-file-name added-file-name
在 下 一 个 例 子 中 ,文 件 t o d a y 有 一 个 另 外 的 名 字 w e a t h e r。 它 是 t o d a y 文 件
的另一个名字。
$ls
today
$ln today weather
$ls
today weather
将 ln 命 令 对 同 一 文 件 使 用 多 次 ,你 可 以 给 同 一 文 件 几 个 不 同 的 名 字 。 在 下 一
个 例 子 中 ,文 件 t o d a y 有 了 w e a t h e r 和 w e e k e n d 名 字 。
$ln today weather
$ln today weekend
$ls
today weather weekend
你 可 以 使 用 ls 命 令 的 一 个 选 项 来 察 看 一 个 文 件 有 几 个 连 接 。有 一 个 选 项 的 ls
命 令 列 出 了 若 干 条 信 息 ,诸 如 许 可 ( 将 在 下 章 中 介 绍 ) ,和 一 个 文 件 拥 有 的 连 接 数 , 文
件 大 小 和 最 后 修 改 的 日 期 。 在 这 行 信 息 中 , 在 用 户 登 录 名 前 的 第 一 个 数 字 ,标 定 了
一 个文件的连接数。在日期之前的数字是文件的大小。日期是文件最后被修改
的 时 间 。 在 下 一 个 例 子 中 ,用 户 列 出 了 文 件 t o d a y 和 w e a t h e r 的 全 部 信 息 。 注 意
二 者 的 连 接 数 都 为 2 。 而 且 ,文 件 大 小 和 修 改 日 期 相 同 。 这 意 味 着 这 两 个 文 件 确
实 是一个文件的不同名字。
$ls -l today weather
-rw-rw-r-- 2 Chris group 563 Feb 14 10:30 today
-rw-rw-r-- 2 Chris group 563 Feb 14 10:30 weather
这些仍然没有告诉你哪些文件名是确切相连的。当文件有相同连接数、大
小 和 修 改 日 期 时 ,如 上 面 t o d a y 文 件 和 w e a t h e r 文 件 的 情 况 ,你 在 某 种 程 度 上 可 以
确 认 二 者 是 同 一 文 件 。 然 而 , 要 想 完 全 确 认 , 你 应 使 用 ls 命 令 的 一 个 选 项 。 利 用
一 个 选 项 ,ls 命 令 列 出 了 文 件 名 和 它 的 i 节 点 ( i n o d e )数 。 I 节 点 数 是 系 统 来 标 识 文
件 的 一 个 特 殊 数 字 。 如 果 两 个 文 件 有 相 同 的 I 节 点 数 ,它 们 代 表 了 相 同 的 文 件 。
它 们 是 同 一 文 件 的 不 同 名 字 。 在 下 一 个 例 子 中 ,用 户 列 出 了 文 件 t o d a y , w e a t h e r
和 larisa 。 注 意 t o d a y 和 w e a t h e r 有 相 同 的 I 结 点 数 。
$ l s - i t o d a y w e a t h e r larisa
1234 today 1234 weather 3976 larisa
添 加 名 ,或 连 接 , 它 们 由 ln 命 令 创 建 , 并 通 常 用 于 在 不 同 目 录 中 对 同 一 文 件 的
引用。在一个目录中的文件可以被链接到另一个目录并在另一个目录中进行访
问 。 假 定 你 想 在 另 一 个 目 录 中 引 用 home 目 录 中 的 文 件 。 你 可 在 那 个 目 录 中 建
立 一 个 h o m e 目 录 中 文 件 的 连 接 。 这 一 连 接 实 际 是 文 件 的 另 一 个 名 字 ,因 为 连 接
在 另 一 个 目 录 中 ,它 可 与 原 文 件 有 相 同 的 名 字 。 要 将 h o m e 目 录 中 的 一 个 文 件 连
接 到 另 一 个 目 录 ,将 另 一 个 目 录 名 作 为 ln 命 令 的 第 二 个 参 数 即 可 。
$ln filename directory-name
在 下 一 个 例 子 中 , C h r i s 目 录 中 的 文 件 t o d a y 被 连 接 到 目 录 r e o r t s 中 。 ls 命 令
会 列 出 C h r i s 目 录 中 的 文 件 t o d a y 被 连 接 到 目 录 r e p o r t s 中 。ls 命 令 会 列 出 C h r i s
目 录 和 r e p o r t s 目 录 中 的 t o d a y 文 件 ,实 际 上 ,只 存 在 t o d a y 文 件 的 一 份 拷 贝 , 即
home 目 录 中 的 原 文 件 。
$ln today reports
$ls
today reports
$ls reports
today
$
如 同 c p 和 m v 命 令 一 样 ,你 也 可 以 给 连 接 一 个 新 名 字 。 只 要 将 新 名 字 放 在 目
录 名 之 后 ,并 加 斜 杠 分 隔 即 可 。 在 下 一 个 例 子 中 ,文 件 t o d a y 被 用 w e d n e s d a y 的
名 字 连 接 到 目 录 r e p o r t s 中 。 这 时 也 只 有 一 个 真 实 的 文 件 ,即 C h r i s 目 录 中 叫 作
t o d a y 的 原 文 件 。 然 而 ,现 在 t o d a y i s w e d n e s d a y 的 名 字 连 接 到 了 目 录 r e p o r t s
中 , 在 这 种 意 义 上 ,today 有 了 另 外 一 个 名 字 。 在 目 录 reports 中 ,today 以
wednesday 的 名 字 存 在 。
$ln today reports/wednesday
$ls
today reports
$ls reports
wednesday
$
你可以引用文件的路径名很轻易地把一个目录的一个文件连接到另一个目
录 的 另 一 个 文 件 中 去 。 在 下 一 个 例 子 中 ,reports 目 录 中 的 文 件 m o n d a y 被 连 接
到 目 录 Chris 中 。 注 意 第 二 个 参 数 是 绝 对 路 径 名 。
$ln monday/home/Chris
要 删 除 文 件 ,你 需 要 删 除 它 所 有 的 连 接 。 一 个 文 件 名 实 际 上 被 认 为 是 到 文 件
的 一 个 连 接 。 命 令 rm 将 到 文 件 的 连 接 删 除 。 如 果 你 的 文 件 有 几 个 连 接 而 你 只
删 除 了 其 中 一 个 ,其 它 的 原 地 未 动 ,那 么 你 便 可 以 通 过 其 它 的 文 件 名 来 引 用 文 件 。
即 使 你 将 初 始 的 连 接 — — 文 件 的 初 始 文 件 名 删 除 ,情 况 仍 然 如 此 。 任 何 增 加 的 连
接 都 会 一 样 地 起 作 用 。 在 下 一 个 例 子 中 , t o d a y 文 件 被 r m 命 令 删 除 。 然 而 ,同 一
个 文 件 还 有 一 个 叫 w e a t h e r 的 连 接 ,文 件 可 由 w e a t h e r 的 名 字 加 以 引 用 ( 见 图 6 -
7 )。
$ln today weather
$rm today
$cat weather
The storm broke today and the sun came out.
$
图 6-7 要 删 除 一 个 文 件 ,你 需 要 删 除 它 的 所 有 链 接
符号连接和硬连接
L i n u x 支 持 所 谓 的 符 号 连 接 , 就 我 们 所 介 绍 的 而 言 ,被 称 作 硬 连 接 。 尽 管 , 硬 连
接 可 以 满 足 你 大 部 分 的 需 要 ,但 它 仍 然 有 很 大 的 局 限 性 。 当 你 试 图 连 接 其 它 用 户
的 目 录 中 的 文 件 时 ,硬 连 接 可 能 会 失 败 。 这 是 因 为 L i m u x 文 件 结 构 可 被 物 理 上 划
分 为 称 作 文 件 系 统 的 部 分 。 一 个 文 件 系 统 可 由 许 多 物 理 存 贮 设 备 或 设 备 组 成 ,从
一 个软盘到一系列的硬盘。尽管所有文件系统中的文件都被连接到同一个总的
目 录 树 中 ,每 一 个 文 件 系 统 在 物 理 上 将 管 理 自 己 的 文 件 和 目 录 。 这 意 味 着 一 个 文
件 系统中的文件不能由硬连接到另一个文件系统的文件上。如果你试图连接另
一 个 文 件 系 统 中 另 一 用 户 目 录 中 的 文 件 ,硬 连 接 将 会 失 败 。
使用符号连接使可以克服这一限制。符号连接中包含着它所连接到的文件
的 路 径 名 。 它 不 是 一 个 直 接 的 硬 连 接 ,而 是 如 何 定 位 一 个 特 定 文 件 的 信 息 。 不 像
硬 连 接 一 样 为 同 一 个 文 件 再 登 记 一 个 名 字 ,符 号 连 接 只 是 被 认 为 是 代 表 路 径 名 的
另一种符号。它是文件路径名的另一种写法。
使 用 ln 命 令 的 - S 选 项 你 便 可 以 创 建 一 个 符 号 连 接 。 在 下 一 个 例 子 中 , 用 户 为
文 件 /home/george/veglist 创 建 了 一 个 叫 作 lunch 的 连 接 。
$ ln-s lunch/home/george/veglist
如 果 你 列 出 了 一 个 符 号 连 接 和 它 的 文 件 的 信 息 ,你 会 发 现 显 示 的 信 息 是 不 同
的 。 在 下 一 个 例 子 中 , 用 户 用 ls 命 令 和 一 个 选 项 列 出 了 l u n c h 和
/home/george/veglist 的 全 部 信 息 。 命 令 行 中 第 一 个 字 符 标 识 了 文 件 的 类 型 。 符
号 连 接 有 它 们 自 己 的 文 件 类 型 — — 用 L 表 示 。 l u n c h 的 文 件 类 型 是 L ,表 明 它 是
一 个 符 号 连 接 , 而 不 是 一 个 通 常 的 文 件 。 在 术 语 ”g r o u p ”之 后 的 是 文 件 的 尺 寸 。 注
意 到 二 者 的 大 小 是 不 同 的 。 文 件 lunch 仅 有 4byte 大 。 这 是 因 为 L u n c h 只 是 一
个符号连接——包含着另一文件的路径的文件——路径名只会占用几个字节。
它 不 是 文 件 veglist 的 一 个 直 接 的 硬 连 接 。
$ls lunch/home/george/veglist
Lrw-rw-r--1 Chris group 4 Feb 14 10:30 lunch
-rw-rw-r--1 george group 793 Feb14 10:30 veglist
要 删 除 一 个 文 件 ,你 只 需 删 除 它 的 硬 连 接 。 如 果 还 有 一 些 符 号 连 接 ,它 们 不 会
完 成 对 文 件 的 访 问 。 在 这 种 情 况 下 ,符 号 连 接 中 将 包 含 一 个 已 经 不 存 在 的 文 件 的
路 径 名 。 与 硬 连 接 不 同 , 使 用 符 号 连 接 你 可 以 创 建 目 录 的 连 接 。 在 效 果 上 ,你 可 以
创 建 另 一 个 名 字 来 实 现 对 目 标 目 录 的 引 用 。 然 而 ,如 果 你 用 符 号 连 接 来 代 表 一 个
目 录 名 ,你 要 记 住 p w d 命 令 总 是 会 显 示 实 际 的 目 录 名 ,而 不 是 符 号 名 。 在 下 一 个
例 子 中 , 用 户 将 目 录 t h a n k y o u 连 接 到 符 号 连 接 gifts 上 。当 用 户 使 用 c d 命 令 和 g i f t s
时 ,用 户 实 际 上 将 进 入 t h a n k y o u 目 录 。 p w d 会 显 示 t h a n k y o u 目 录 的 路 径 名 。
$ln -s/home/chris/letters/thankyou gifts
$cd gifts
$pwd
/home/chris/letters/thankyou
$
如 果 你 想 显 示 符 号 连 接 的 名 字 ,你 可 用 c w d 变 量 对 之 访 问 。 c w d 是 一 个 特 殊
的 系 统 变 量 ,它 容 纳 着 一 个 目 录 的 符 号 递 接 的 名 字 ,如 果 存 在 这 一 符 号 连 接 的 话 。
cwd 变 量 将 在 15 章 加 以 讨 论 。 你 可 echo $ cwd 命 令 显 示 了 cwd 的 内 容 。
$pwd
/home/Chris/letters/thankyou
$echo $cwd
/home/Chris/gifts

6.6 总 结 :Linux 文 件 系 统

在 L i n u x 中 ,文 件 被 组 织 在 目 录 中 。 目 录 本 身 相 互 间 分 层 连 接 ,构 成 一 种 树 形
结 构 。 每 一 个 目 录 中 都 包 含 了 文 件 和 其 它 目 录 。 在 分 层 结 构 的 顶 端 是 根 目 录 ,由
它 分 支 出 系 统 目 录 和 用 户 的 home 目 录 。 系 统 目 录 中 包 含 着 维 持 Linux 系 统 运
行 的 应 用 程 序 ,home 目 录 是 用 户 的 登 录 目 录 。
目 录 的 网 状 结 构 构 成 了 一 个 由 高 层 目 录 到 底 层 目 录 的 路 径 ,反 之 亦 然 。 由 根
目 录 到 一 个 特 定 目 录 之 间 的 目 录 集 就 是 目 录 的 路 径 名 。 实 际 上 ,每 一 个 文 件 都 由
一 个 路 径 名 ,由 根 目 录 开 始 到 文 件 所 在 目 录 。 路 径 名 和 文 件 名 一 同 构 成 了 文 件 的
绝对路径名。
你 可 以 轻 松 地 管 理 目 录 — — 创 建 新 目 录 ,删 除 旧 目 录 ,由 一 个 目 录 更 换 到 另 一
个 目 录 。 在 一 个 目 录 中 你 还 可 以 创 建 任 何 深 层 的 子 目 录 。 当 然 录 入 系 统 后 ,你 总
是 处 于 一 个 缺 省 的 目 录 中 。 这 一 缺 省 目 录 叫 作 你 的 工 作 目 录 ,你 创 建 的 任 何 文 件
都 会 被 放 入 这 一 目 录 中 ,除 非 另 加 指 定 。
你 可 以 用 c d 命 令 来 改 变 缺 省 目 录 。 在 此 意 义 上 ,你 可 以 从 一 个 目 录 移 到 另 一
个 目 录 。 当 你 首 次 登 录 入 系 统 时 ,你 缺 省 的 目 录 是 你 的 h o m e 目 录 。
你可在目录之间或目录本身上进行文件操作。你可将文件由一个目录拷贝,
移 动 到 另 一 个 目 录 。 你 甚 至 可 以 移 动 ,拷 贝 整 个 目 录 ,你 也 可 以 给 文 件 创 建 连 接 。
连接是文件的另一个名字。可你以在一个目录中有一个可引用另一目录中文件
的连接。
表 6-1file 和 o d 命 令
命令 执行
file 检查一个文件的头几行以确定其分类
-f filename 将要进行检查的文件名由一个文件中读出
od 将文件的内容以八进制、字符、十进制或十六
进制的形式逐一打击;八进制是缺省格式
-c 将 byte 值 以 字 符 形 式 输 出 ; 非 打 印 字 符 有
相应的字符表示形式
-d 将 byte 值 以 十 进 制 形 式 输 出
-x 将 byte 值 以 十 六 进 制 形 式 输 出
-o 将 byte 值 以 八 进 制 形 式 输 出

表 6-2Linux 中 标 准 系 统 目 录
目录 功能
/ 文件系统结构的开始—叫作根目录
/home 包 含 着 用 户 的 home 目录
/bin 包含着所有标准的命令和应用程序
/usr 包含着系统使用的文件和命令;这一目录被分为
若干子目录
/usr/bin 包含着面向用户的命令和应用程序
/usr/sbin 包含系统管理命令
/usr/lib 包含编程语言的序
/usr/doc 包 含 Linux 的 文 档
/usr/man 包 含 在 线 的 手 工 man 文 件
/usr/spooc 包 含 缓 冲 文 件 ,如 一 些 打 印 作 业 和 网 络 传 输
/sbin 包含系统重启动的系统管理命令
/var 包含一些如信箱文件之类的可变文件
/dev 包含与诸如终端和打印机的文件接口
/etc 包含系统设置和其它系统文件
表 6-3 文 件 列 表 、 显 示 和 打 印
命令选项 执行
ls 列出文件和目录名
$ls
cat 这 一 过 滤 器 被 用 于 文 件 显 示 ,它 可 将 文 件 名 作
为 参 数 。 它 将 文 件 内 容 直 接 送 入 标 准 输 出 ,后 者
在缺省情况下指向屏幕
more 这一应用将文件逐屏显示。它可将文件名作为
参 数 。 它 将 文 件 的 内 容 输 出 到 屏 幕 ,一 次 只 显 示
一 屏 内 容 $more filenames
+num 从 文 件 的 第 num 页 开 始 显 示
numf 跳 过 num 数 的 屏 幕
numb 返 回 num 数 的 屏 幕
d 显示半屏
h 列 出 所 有 more 命 令
q 退 出 more 命 令
lpr 将文件送往在线打印机打印;参数可以是一个文
件的列表
-p printername 选择一个特定的打印机
lpq 列出打印任务的队列
lprm 将一个打印任务自打印队列中删除
表 6-4 目 录 命 令
命令 执行
mkdir 创建一个目录
$ mkdir reports
rmdir 删除一个目录
$ rmdir letters
ls -F 用斜杠列出目录名
$ls -F
today reports/letters/
ls -R 列出工作目录和子目录
cd directory name 进 入 特 定 的 目 录 ,并 将 之 作 为 工 作 目 录 ; 没 有 指 定
目 录 名 的 cd 命 令 将 回 到 h o m e 目 录 中
$cd reports
$cd
pwd 列出一个工作目录的路径名
$pwd
/home/chris/reports
directory name/filename 在路径名中的斜杠用于分隔每个目录名。对文
件 的 路 径 名 而 言 ,斜 杠 将 文 件 名 同 前 面 的 目 录 名
分开
$ cd/home/Chris/reports
$ cat/home/Chris/reports/m ydata
引用工作目录。你可将之作为参数或路径名的
一部分
$ ls.
$ mv ../aleina.
~ /pathname 波 浪 线 是 一 个 代 表 home 目 录 路 径 名 的 特 殊 字
符。当使用文件或目录的绝对路径名时它是很
有用的
$ cp monday ~ / today
$ mv tuesday ~ / weather

表 6-5 文 件 操 作
命令 执行
cp filename filename 拷 贝 文 件 。 C P 有 两 个 参 数 :原 文 件 名 和 新 的 拷 贝
文件名。你可以使用文件的路径名以进行跨目录
的拷贝
$cp today reports/monday
cp -r dirname dirname 将一个子目录由一个目录拷贝到另一个目录中。
被拷贝的子目录将包含它所有的子目录
$cp -r letters/thankyou oldletters
mv filename filname 移 动 或 将 文 件 更 名 。 m v 有 两 个 参 数 :第 一 个 是 要
移动的文件第二个是新文件名或目录的路径名。
如 果 它 是 一 个 目 录 名 ,这 一 文 件 在 字 面 上 被 移 到 那
一 目 录 中 ,并 且 将 文 件 的 路 径 名 加 以 改 变
$mv today/home/Chris/reports
mv dirname dirname 移 动 一 个 目 录 ,在 这 种 情 况 下 , 两 个 参 数 都 是 目 录
$mv letters/thankyou oldletters
ln filename filename 为文件创建一个名为连接的增加名。可在一个
目录中创建另一个目录中文件的连接
$ln today reports/monday
rm filenames 删除文件。可以有任意数目的文件作参数。字
面上删除了文件的连接。如果一个文件有多个
连 接 ,你 应 当 连 接 全 部 删 除 以 最 终 删 除 一 个 文 件
$rm today weather weekend

表 6-6find 命 令
命令或选项 执行
find 根据一个标准搜索目录以查找文件。这一命
令有许多参数确定搜索标准和要采取的行为
-have pattern 查 找 名 字 中 具 有 pattern 的 文 件
-group name 查找属于那一组名的文件
-size name 查 找 具 有 num 块 大 小 的 文 件 。 如 果 在 num 之 后
加 入 C ,那 将 以 b y t e 为 单 位 进 行 查 找
-mtime num 查 找 num 天 之 前 修 改 过 的 文 件
-newer pattern 查 找 与 pattern 匹 配 文 件 之 后 的 修 改 过 的 文 件
-print 将查找结果输出到标准输出。结果通常是文
件 名 的 列 表 ,包 括 它 们 的 全 路 径 名
-type filetype 查找特定类型的文件
b 块设备文件
c 字符设备文件
d 目录文件
f 常规文件
p 指 定 的 管 道 (fifo)
l 符号连接
第 7 章文件管理操作

L i n u x 在 文 件 管 理 和 目 录 管 理 上 有 几 个 特 征 ,你 可 以 找 到 文 件 的 详 细 信 息 ,如
它 们 最 近 何 时 被 修 改 过 和 它 们 拥 有 的 连 接 数 。 你 可 以 控 制 对 文 件 的 访 问 。 Linux
中 的 每 一 个 文 件 都 有 许 可 , 它 确 定 谁 有 权 对 之 访 问 ,以 及 何 种 访 问 。 你 可 以 允 许 其
它 用户访问指定的文件或者限制为只由你自己访问。
文 件 存 在 于 诸 如 CD-ROMS 或 软 盘 等 物 理 设 备 上 。 每 一 设 备 上 的 文 件 都 被
组 织 成 为 一 个 文 件 系 统 。 要 访 问 一 个 设 备 上 的 文 件 ,你 便 将 它 的 文 件 系 统 连 到 一
个 特 别 的 目 录 中 。 这 被 称 作 装 卸 文 件 系 统 。 例 如 ,要 访 问 软 盘 上 的 文 件 ,如 何 可 以
访 问 C D - R O M S ,软 盘 和 硬 盘 分 区 。 你 甚 至 可 以 访 问 M S - D O S 的 硬 盘 分 区 和 软
盘 ,以 及 一 个 远 程 服 务 器 上 的 文 件 系 统 。
你 也 可 以 将 你 的 文 件 备 份 到 一 个 档 案 中 ,以 备 以 后 读 取 ,你 也 可 以 把 它 们 组 合
成 为一个档案文件已通过网络传到另一系统中。你也可以将文件压缩以进行更
有 效的传送或只是为了占用更少的空间。档案和压缩是在线软件包经常使用的
方 法 。 你 可 以 下 载 一 个 压 缩 并 存 档 的 软 件 包 ,然 后 将 之 解 压 并 将 档 案 扩 展 开 。 然
后 你 便 可 以 把 新 的 软 件 包 安 装 在 你 的 系 统 上 了 。 这 是 一 种 取 得 Linux 软 件 的 常
用 方法。
7.1 显 示 文 件 信 息 :ls -l

如 图 7 - 1 所 示 ,ls -l 命 令 显 示 文 件 的 详 细 信 息 。 首 先 显 示 的 是 许 可 ,其 次 是 连
接 数 ,文 件 的 所 有 者 ,用 户 所 属 的 组 名 ,以 b y t e 度 量 的 文 件 大 小 ,文 件 最 后 被 修 改 的
日 期 和 时 间 ,以 及 文 件 的 名 字 。 组 名 指 的 是 有 组 许 可 的 组 群 。 在 图 7 - 1 中 ,文 件
m y d a t a 的 类 型 是 一 个 普 通 文 件 。 只 有 一 个 连 接 ,即 文 件 没 有 其 它 的 名 字 。 所 有
者 的 名 字 是 C h r i s ,与 登 录 名 相 同 ,组 名 是 W e a t h e r 可 能 还 有 些 属 于 W e a t h e r 组
的 其 它 的 用 户 。 文 件 的 大 小 是 2 0 7 b y t e s ,它 最 后 一 个 被 修 改 是 在 F e b r u a r y 2 0 ,在
上 午 11:55 分 。 文 件 名 是 mydata 。

图 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

7 . 2 文 件 和 目 录 许 可 :C h m o d

Linux 系 统 中 的 每 个 文 件 和 目 录 都 有 一 许 可 来 确 定 谁 可 以 通 过 何 种 方 式 对 文
件 和 系 统 加 以 访 问 ,你 可 以 设 置 许 可 将 记 问 限 制 在 三 种 方 法 之 内 :你 可 以 只 限 由 自
己 进 行 记 问 ; 你 可 以 允 许 一 个 预 先 指 定 的 组 中 的 用 户 记 问 权 ,或 者 你 可 以 允 许 系
统 上 的 任 何 一 个 人 记 问 ,你 也 可 以 控 制 一 个 文 件 和 目 录 如 何 被 记 问 。 一 个 文 件 和
目 录 可 能 有 读 ,写 和 执 行 许 可 ,当 文 件 被 创 建 时 ,文 件 所 有 者 自 动 拥 有 读 和 写 权 限 ,
以 例将文件显示和修改。你可把许可改为你想要的任何组合。一个文件可以有
只 读 许 可 ,禁 示 任 何 的 更 改 操 作 。 它 可 以 有 执 行 许 可 ,允 许 它 作 为 一 个 程 序 执 行 。
有 三 种 不 同 类 型 的 用 户 可 对 目 录 和 文 件 加 以 记 问 :文 件 所 有 者 , 组 、 或 其 它
人 。 所 有 者 是 文 件 的 创 建 者 。 你 创 建 了 任 何 文 件 ,你 使 是 它 的 拥 有 者 。 你 也 可 以
允 许 你 的 组 群 有 权 访 问 文 件 的 权 限 。 用 户 被 分 为 组 。 例 如 ,某 一 班 或 一 个 工 程 的
所 有用户被系统管理员分为组。一个用户有可能将文件的高问权限赋予组中的
其 它 用 户 。 最 后 ,你 还 可 以 将 文 件 的 记 问 权 赋 予 系 统 中 所 有 其 它 的 用 户 。 在 这 种
情 况 下 ,系 统 中 每 一 位 用 户 可 能 都 能 访 问 你 的 某 一 文 件 或 目 录 。 在 这 种 意 义 上 ,系
统 中 的 任 何 其 它 用 户 都 构 成 了 ”其 它 ”这 一 类 。
每一类用户都有自己的一套读、写和执行许可。第一套许可控制用户对 自
己文件的访问——所有者的访问。第二套控制组对一个用户文件的访问。第 三
个 控 制 着 所 有 其 它 用 户 对 用 户 文 件 的 访 问 。 这 三 类 一 所 有 者 ,组 和 其 它 的 三 种
读、写、执行许可能成了九种类型的许可。
正 如 你 在 上 节 中 所 知 ,ls 命 令 和 - l 选 项 列 出 了 文 件 的 详 细 信 息 ,包 括 许 可 。 在
下 一 个 例 子 中 ,最 右 边 的 一 套 字 符 就 是 为 文 件 m y d a t a 设 定 的 许 可 。
$ls-l mydata
-rw-r--r--l Chris weather 207 Feb 20 11:55 mydata
横 线 代 表 的 是 空 许 可 。 r 代 表 的 是 读 许 可 ,w 代 表 写 ,执 行 许 可 由 x 代 表 。 注
意 这 里 共 有 10 个 位 置 。 第 一 个 字 符 指 定 了 文 件 类 型 。 在 通 常 意 义 上 ,一 个 目 录
可 被 认 为 是 一 个 文 件 。 如 果 第 一 个 字 符 是 横 线 ,那 么 列 出 的 是 一 个 文 件 。 如 果 是
d ,那 么 列 出 的 是 一 个 目 录 。
图 7-2 属 主 ,组 和 其 它 文 件 许 可 :r 表 示 读 许 可 ,w 表 示 写 ,x 表 示 执 行 ,横 线 表 示 无 权 限
后面的九个字符是按不同的用户类型安排的。第一套三个字符是用户自 己
的 文件许可。第二组三个字符是组的文件许可。最后三个字符是其它用户的 文
件 许 可 。 在 图 7 - 2 中 ,文 件 m y d a t a 的 所 有 者 有 读 和 写 许 可 ,组 类 只 有 读 许 可 ,其 它
用 户 类 也 只 有 读 许 可 。 这 意 味 着 ,尽 管 组 中 的 其 它 用 户 或 系 统 中 任 意 其 它 用 户 都
可 以 进 行 读 操 作 ,只 有 所 有 者 可 对 文 件 修 改 。
你 可 以 使 用 Chmod 命 令 来 创 建 不 同 的 许 可 设 置 。 Chmod 的 参 数 是 两 个 列
表 :许 可 变 更 和 文 件 名 。 你 可 用 两 种 不 同 方 法 指 定 许 可 列 表 。 一 种 方 法 是 使 用 许
可 符 号 ,它 被 叫 作 符 号 方 法 ( s y m b o l m e t h o d )。 另 一 种 方 法 利 用 被 称 作 二 进 制 屏
蔽 ,它 被 叫 作 绝 对 或 相 对 方 法 。 两 种 方 法 中 ,符 是 法 更 简 单 ,因 此 会 首 先 介 绍 它 。
在 本 章 最 后 的 表 7-1 。 列 出 了 C h m o d 命 令 的 选 项 。
7.2.1 设 置 许 可 :许 可 符 号
正 如 你 所 预 料 的 ,设 置 许 可 的 符 号 方 法 使 用 字 符 r、 w 和 x 来 各 自 代 表 读 ,写
和 执 行 。 每 一 项 许 可 都 可 以 进 行 添 加 或 删 除 。 加 入 一 个 许 可 的 符 号 是 加 号 ,十 、
删 除 许 可 的 符 号 是 减 号 ,一 o 在 下 一 个 例 子 中 ,C h m o d 命 令 加 入 文 件 m y d a t a 的
执行许可并删除了写许可。读许可没有变动。
$ chmod +x-w mydata
还有用于标识每种用户类型的许可符号。所有者、组和其它用户分别由字
符 u 、 g 和 o 代 表 。 注 意 所 有 者 这 一 类 是 由 u 代 表 ,可 认 为 它 是 代 表 用 户 。 类 别
字 符 是 放 在 写 、 读 和 执 行 许 可 前 面 的 。 如 果 未 使 用 类 别 字 符 ,那 第 就 认 为 是 所 有
的 类 ,设 定 的 许 可 适 用 于 用 户 所 有 者 , 组 和 其 它 用 户 。 下 例 及 图 7-3 中 , 第 一 个
Chmod 命 令 将 组 许 可 设 为 读 和 写 。 第 二 个 Chmod 命 令 将 其 它 用 户 许 可 设 为 读 。
注 意 在 许 可 和 类 别 之 间 没 有 空 格 、 许 可 列 表 也 是 一 个 长 短 语 ,中 间 没 有 空 格 。
图 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 和 1 6 章 讨 论 。 执 行 许 可 表 明 一 个 文 件 中 包 含
着 可 执 行 的 指 令 并 可 直 接 由 系 统 运 行 。 在 下 一 个 例 子 中 ,文 件 l s c 被 设 定 了 可 执
行许可后被执行。
$ Chmod u+x lsc
$ lsc
main,c lib,c
$
除 读 /写 /执 行 许 可 外 ,你 也 可 以 设 置 可 执 行 文 件 所 有 者 属 性 。 正 常 情 况 下 ,运
行 程 序 的 用 户 在 程 序 运 行 期 间 拥 有 该 程 序 ,尽 管 程 序 文 件 本 身 可 能 是 另 一 用 户 所
拥 有 的 。 用 户 I D 许 可 允 许 一 个 程 序 的 所 有 者 总 是 拥 的 这 一 程 序 ,即 使 其 它 用 户
正 在 运 行 这 一 程 序 。 例 如 ,在 系 统 中 的 大 部 分 软 件 都 是 由 根 用 户 的 所 拥 有 而 被 普
通 用 户 所 运 行 。 在 这 种 情 况 下 ,根 用 户 应 在 普 通 用 户 运 行 程 序 时 仍 然 对 程 序 有 所
有 权 , 以 便 程 序 有 修 改 根 用 户 所 有 文 件 修 改 的 许 可 。 组 ID 许 可 是 为 组 设 定 执 行
上述功能的许可。一个组所拥有的程序在另一个组的用户运行程序时仍然有所
有权。这样程序便可修改组的文件。
用 s 选 项 可 以 加 入 用 户 ID 和 组 ID 对 文 件 许 可 。 下 一 例 子 将 用 户 ID 许 可 赋
予 了 p p p d 程 序 ,它 是 由 根 用 户 所 拥 有 的 。 当 普 通 用 户 远 行 p p p d 时 ,根 用 户 仍 保
留 所 有 仅 ,使 p p p d 程 序 可 修 改 根 用 户 文 件 。
# Chmod + s /usr/sbin/pppd
用 户 ID 和 组 I D 许 可 在 所 有 者 和 组 段 的 执 行 位 置 上 以 S 代 表 。 用 户 I D 和 组
ID 是 执 行 许 可 ,x 的 一 个 变 形 。 读 、 写 和 用 户 I D 许 可 是 r w s 而 不 是 r w x 。
# 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

7.2.2 绝 对 许 可 :二 进 制 屏 蔽
许 多 用 户 发 现 利 用 绝 对 方 法 更 方 便 ,而 不 是 使 用 许 可 符 号 。 绝 对 方 法 一 次 可
变 更 ,所 有 的 许 可 ,而 不 是 一 项 加 以 指 定 。 它 使 用 了 一 种 二 进 制 屏 蔽 来 引 用 每 类 中
的 所 用 许 可 。 三 类 ,每 类 有 三 种 许 可 , 构 成 了 总 数 为 八 的 二 进 制 数 , 每 进 制 数 都 以
八 为 基 础 结 构 的 ,将 变 成 二 进 制 数 时 ,每 一 个 八 以 内 的 数 都 成 为 三 位 二 进 制 数 。 二
进 制 数 是 0 或 1 的 集 合 。 一 个 数 字 中 的 三 个 八 进 制 数 可 变 为 三 套 二 进 制 数 ,加 起
来 总 共 是 九 ,即 文 件 许 可 的 确 切 数 目 。
你可以利用八进制数作屏蔽来设置不同的文件许可。每一个八进制数适 用
于 用 户 类 型 的 一 种 。 你 可 以 认 为 这 些 数 与 从 左 到 右 排 列 的 许 可 类 型 相 匹 配 ,最 左
端 是 所 有 者 类 型 。 第 一 个 八 进 制 数 适 用 于 所 有 者 类 型 ,第 二 个 适 用 于 组 ,第 三 个 适
用于其它类型。
你 所 选 择 的 实 际 的 八 进 制 数 将 确 定 每 类 的 读 、 写 和 执 行 属 性 。 这 时 ,你 需 要
知道八进制数字如何转换成为相应的二进制数字。下面的表中列出了八进制 数
0~ 7 如 何 转 换 成 为 有 三 个 数 字 的 相 应 二 进 制 数 字 。 你 可 以 认 为 八 进 制 数 首 先 转
换 成 为 二 进 制 数 ,然 后 二 进 制 数 中 的 三 个 数 字 再 分 别 设 置 读 、 写 和 执 行 属 性 。 每
一 个 二 进 制 的 数 字 都 与 一 个 相 应 的 属 性 相 匹 配 ,也 是 从 左 到 右 。 如 果 二 进 制 数 字
是 0 ,那 么 许 可 被 禁 止 。 如 果 二 进 制 数 为 1 ,那 么 许 可 被 允 许 。 第 一 个 数 字 设 置 读
的 许 可 为 允 许 或 禁 止 , 第 二 个 设 置 写 的 许 可 ,第 三 个 设 置 执 行 许 可 , 例 如 , 八 进 制 数
6 转 换 为 二 进 制 数 1 1 0 ,这 将 把 读 、 写 许 可 设 为 允 许 ,而 将 执 行 许 可 标 止 。
Octal Binary
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

图 7-4 用 八 进 制 来 设 置 权 限
当 使 用 二 进 制 屏 蔽 时 ,你 需 要 为 三 个 种 类 的 三 种 许 可 确 定 三 个 数 字 。 这 使 得
它 比 符 号 许 可 显 得 要 死 板 。 要 设 置 所 有 者 对 文 件 mydata 的 执 行 许 可 为 允 许 ,及
写 许 可 禁 止 ,并 且 保 留 读 许 可 , 你 要 使 用 二 进 数 5 ( 1 0 1 ) , 同 时 还 要 指 定 组 和 其 它 用
户 记 问 的 数 字 。 如 果 这 几 类 要 保 留 读 许 可 ,你 需 要 为 每 类 指 定 4(100),这 样 你 有
三 个 八 个 八 进 制 数 , 5 4 4 ,转 换 为 二 进 制 数 为 , 1 0 1 100 1 0 0 。 在 图 7-4 中 ,为 文
件 mydata 设 置 了 这 些 许 可 。
$ Chmod 544 mydata
无 须 十 分 费 力 地 完 成 由 八 进 制 到 二 进 制 的 转 换 以 确 定 你 应 使 用 哪 个 数 字 ,有
一 种 十 分 简 单 的 方 法 。 读 、 写 和 执 行 许 可 分 别 与 数 字 4,2,1 相 联 系 。 (见 下 表 )。
要 确 定 为 某 类 应 使 用 哪 个 数 字 ,只 需 将 4 ( 读 ) 和 2 ( 写 ) 加 起 业 即 为 6 。 这 就 是 你 所
需 的 八 进 制 数 。 要 给 一 类 读 和 执 行 许 可 ,只 要 将 4 (读 )和 1 (执 行 )相 加 得 5 。 要 想
设 置 所 有 的 许 可 ,你 要 将 4 ( 读 ) 2 (写 ) 和 1 ( 执 行 ) 相 加 得 7 ,它 等 于 二 进 制 为 1 1 1 。 下
一 个 例 子 用 这 种 方 法 来 计 算 上 例 中 所 使 用 的 许 可 。 所 有 者 有 读 和 执 行 许 可 ,而 组
和 其它用户只有读许可。
Owner rx 4+1=5
group r 4 4
others r 4 4
544 101 100 100
$ Chmod 544 mydata
例 如 , 要 给 你 组 中 的 成 员 读 和 写 的 许 可 ,而 系 统 中 其 它 用 户 设 有 许 可 ,你 需 要 给
组 数 字 6 ( 1 1 0 ) ,给 其 它 用 户 0 ,给 所 有 者 6 保 存 了 所 有 者 的 读 写 许 可 。 你 可 以 通 过
把 4 ( 读 )和 2 ( 写 ) 相 加 得 6 来 计 算 读 ,写 许 可 。 即 然 ,你 不 想 , 任 何 其 它 用 户 拥 有 许
可 ,你 可 以 给 它 们 0 ,你 现 在 得 到 数 字 6 6 0 ,等 于 二 进 制 数 1 1 0 110 0 0 0 ,注 意
八 进 制 数 将 利 用 二 进 制 的 000 来 把 所 有 的 许 可 设 为 禁 止 。
$ Chmod 660 mydata
许可数字二进制数
r 4 100
w 2 010
x 1 001
二 进 制 屏 蔽 的 最 通 常 的 用 法 是 来 设 置 执 行 许 可 。 如 第 8 章 中 将 要 介 绍 的 ,你
可 以 创 建 包 含 L i n u x 命 令 的 文 件 。 这 些 文 件 都 称 为 S h e l l s c r i p t s ,要 执 行 S h e l l
s c r i p t s 中 的 命 令 ,你 必 须 首 先 指 明 这 一 文 件 是 可 执 行 的 — — 它 包 含 着 系 统 可 以 执
行 的 命 令 。 可 以 有 几 种 方 法 完 成 上 述 工 作 ,其 中 之 一 是 设 置 Shell script 文 件 的
可 执 行 许 可 。 假 定 你 刚 完 成 了 一 个 Shell scripts 文 件 并 给 予 它 执 行 许 可 以 例 将
之 运 行 , 同 时 你 想 保 留 读 和 写 许 可 ,包 括 执 行 许 可 ( 你 也 可 以 将 4 读 , 2 - 写 ,和 1 - 执 行
相 加 得 7 ) 。 给 组 和 其 它 用 记 许 可 赋 0 将 禁 止 他 们 的 记 问 。 你 得 到 数 字 7 0 0 ,与 之
相 等 的 二 进 制 数 是 111 000 0 0 0 ,在 下 一 个 例 子 中 ,文 件 m y p r o g 的 所 有 者 的 许
可被设置的包含执行许可。
$ Chmod 700 myprog
如 果 你 希 望 其 它 的 用 户 可 以 执 行 并 读 文 件 ,但 不 能 修 改 ,你 可 以 用 数 字 5 ( 1 0 1 )
来 设 置 读 和 执 行 许 可 为 允 许 ,并 禁 止 写 许 可 。 在 这 种 情 况 下 ,你 要 使 用 八 进 制 数
7 5 5 ,即 二 进 制 的 1 1 1 0 1 101。
$ Chmod 755 myprog
对 于 所 有 权 和 粘 着 置 位 许 可 ,你 可 在 八 进 制 数 的 前 面 再 加 一 个 八 进 制 数 。 用
户 ID 许 的 可 八 进 制 许 可 是 4 ( 1 0 0 ) ; 组 ID 为 2 ( 0 1 0 ); 对 于 粘 着 置 位 是 1 ( 0 0 1 ) 。
在 下 一 个 例 子 中 设 置 了 程 序 p p p d 的 用 户 ID 许 可 , 同 时 设 定 了 所 有 者 、 组 和 其 它
用户的读、写许可。
# Chmod 4555 /usr/sbin/pppd
下 面 的 例 子 设 置 了 程 序 xtetris 的 粘 着 置 位 。
# Chmod 1755 /usr/X11R6/bin/xtetris
下 一 个 例 子 将 设 置 程 序 X M a n 的 粘 着 置 位 和 用 户 ID 许 可 。 许 可 5 7 5 5
的 二 进 制 数 为 101
11 101 101。
# chmod 5755 /usr/X11R/bin/xman
# l s -l / u s r / X 1 1 R 6 / b i n / x m a n
-rwsr-xr-t 1 root root 44364 Mar 26 04:28
/usr/X11R6/bin/xman

7.2.3 目 录 许 可
你也可以设置目录许可。一个目录的读许可可以使用户显示目录中的文件。
执 行许可使用户可进入该目录。写许可允许用户在该目录中创建或删除自己的
文 件 。 如 果 你 允 许 其 它 用 户 对 一 个 目 录 有 写 许 可 ,用 户 便 可 在 目 录 中 添 加 自 己 的
文 件 。 当 你 创 建 一 个 目 录 时 ,它 主 动 给 所 有 者 读 、 写 和 执 行 许 可 。 你 可 例 出 目 录
中 的 文 件 ,进 入 该 目 录 ,可 在 其 中 创 建 文 件 。
同 文 件 相 同 ,目 录 也 有 所 有 者 ,组 和 其 它 用 户 的 一 套 许 可 。 通 常 ,你 可 能 希 望 用
户 可 以 进 入 你 的 一 个 目 录 并 对 目 录 中 文 件 进 行 列 表 ,但 不 希 望 他 们 在 目 录 中 添 加
文 件 。 这 种 情 况 下 ,你 应 设 置 目 录 的 读 和 执 行 许 可 ,而 禁 止 写 许 可 。 这 会 使 用 户 可
以 进 入 目 录 并 对 文 件 列 表 ,但 不 能 的 创 建 新 文 件 或 将 自 己 的 文 件 拷 贝 入 目 录 。 下
一 个 例 子 设 置 了 目 录 t h a n k y o u 的 组 的 读 和 执 行 许 可 ,但 没 有 写 许 可 。 组 中 的 成
员 可 以 进 入 t h a n k y o u 目 录 并 对 文 件 列 表 ,但 不 能 创 建 新 文 件 。
# Chmod g+rx-w letters/thankyou
如 同 文 件 一 样 ,你 也 可 利 用 八 进 制 数 来 设 置 目 录 许 可 。 要 设 置 与 上 例 中 相 同
的 许 可 , 你 要 使 用 八 进 制 数 7 5 0 ,即 二 进 制 的 1 1 101 0 0 0。
$ Chmod 750 letters/thankyou
正 如 你 所 知 的 ,ls 命 令 加 上 - l 先 项 可 例 出 一 个 目 录 中 所 有 的 文 件 。 要 卢 只 列
出 目 录 的 消 息 , 可 加 入 d 修 改 符 。 在 下 一 个 例 子 中 , 命 ls-ld 列 出 了 目 录 t h a n k y o u
的 信 息 。 注 意 在 许 可 例 表 中 的 第 一 个 字 符 是 d ,代 表 它 是 一 个 目 录 。
$ ls -cd thankyou
drwxr-x--- 2 chris 512 Feb10 04:30 thankyou
如 果 你 有 一 个 希 望 其 它 用 户 记 问 的 文 件 ,你 不 仅 要 对 文 件 设 置 许 可 , 而 且 还 要
保证对文件所在的目录。这一点也适用于一个目录的父目录。尽管一个目录允
许 其 它 用 户 访 问 ,但 其 父 目 录 未 设 定 访 问 许 可 , 那 么 这 一 目 录 仍 是 不 可 访 问 的 。 在
这 一 点 上 , 你 必 须 对 目 录 树 多 加 注 意 。 要 提 供 一 个 目 录 的 记 问 权 ,目 录 树 中 在 此 目
录上面的所有父目录也必须是可以访问的。
在 图 7 - 5 中 ,用 户 树 中 在 此 目 录 上 面 的 所 有 父 目 录 也 必 须 是 可 以 访 问 的 。 需
要 进 入 Chris 和 Letters 目 录 才 能 进 行 问 。 将 (每 个 目 录 )其 它 用 户 类 的 执 行 许 可
设 为 允 许 即 可 做 到 这 一 点 。 注 意 只 须 设 定 执 行 许 可 ,而 设 有 读 和 写 许 可 。 其 它 用
户 不 允 许 在 目 录 Chris 和 letters 中 进 行 文 件 列 表 和 增 加 文 件 。 他 们 只 能 进 入 这
一目录并引用其子目录。
图 7-5 要 打 开 一 个 其 它 用 户 可 以 访 问 的 目 录 ,你 必 须 也 让 该 目 录 的 所 有 父 目 录 可 被 访 问

7.2.4 改 变 一 个 文 件 的 所 有 者 或 组 : C h o w n 和 C h g r p
尽 管 其 它 用 户 有 可 能 对 文 件 访 问 ,但 只 有 文 件 所 有 者 才 能 修 改 许 可 。 如 果 , 你
想 赋
予 其 它 某 个 用 户 对 你 某 个 文 件 许 可 的 控 制 ,你 需 要 将 文 件 的 所 有 者 由 你 改 为
那 个
用 户 。 Chown 命 令 将 一 个 文 件 的 控 制 权 移 交 给 另 一 个 用 户 。 这 一 命 令 以 另
一 个
用 户 名 作 为 第 一 个 参 数 。 在 用 户 名 后 ,你 可 列 出 想 移 交 的 文 件 名 。 在 下 一 个
例 子
中 ,用 户 将 文 件 mydata 的 控 制 权 移 交 给 R o b e n t .
$ Chown robert mydata
$ ls -l m ydata
-rw-r--r-- 1 robert weather 207 Feb 20 11:15 mydata
只 要 你 愿 意 ,你 也 可 以 用 C h g r p 命 令 来 改 变 一 个 文 件 的 组 。 C h g r p 把 文 件 新
的 组 名 作 为 第 一 个 参 数 。 在 新 组 名 后 ,你 可 以 列 出 想 变 更 到 那 一 组 去 的 文 件 名 。
在 下 一 个 例 子 中 ,用 户 将 文 件 t o d a y 和 w e l k e n d 的 组 改 到 f o r e c a s t 组 中 。 l s - 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

7.3 文 件 系 统 :安 装 和 卸 载

尽 管 你 的 L i n u x 系 统 中 所 有 的 文 件 都 被 连 接 入 一 个 总 的 目 录 树 中 ,文 件 本 身
位 于 一 些 诸 如 硬 盘 和 CD-ROM 之 类 的 存 贮 设 备 中 。 在 某 一 存 贮 设 备 上 的 文 件 被
组 织 成 为 一 种 文 件 系 统 。 你 的 L i n u x 目 录 树 可 能 包 含 几 个 文 件 系 统 ,每 一 个 在 不
同 的存贮设备上。文件本身被组织成为根目录开始的无缝隙的目录树。尽管你
的 根 目 录 可 能 位 于 硬 盘 分 区 的 文 件 系 统 中 ,但 在 C D - R O M 上 的 文 件 仍 然 有 一 条
直 接的路径名。
在 一 个 文 件 系 统 中 的 文 件 与 你 的 目 录 树 是 相 分 离 的 ,除 非 你 专 门 将 文 件 联 入
目录树。一个文件系统将文件组织成自己的目录树。你可以把它想象成为必须
被 连 入 主 目 录 树 的 一 颗 子 目 录 树 。 例 如 ,一 个 有 L i n u x 文 件 的 软 盘 有 自 己 的 目 录
树 。 你 需 要 把 这 棵 子 树 与 你 硬 盘 分 区 上 的 主 目 录 树 相 连 。 在 它 们 相 连 之 前 ,你 是
无法访问软盘上的文件的。
将一种存贮设备上的文件系统连接到主目录树上被称为安装设备。这是由
m o u n t 命 令 来 完 成 的 。 要 访 问 C D - R O M 上 的 文 件 ,你 首 先 要 安 装 C D - R O M 。 安
装操作将把存贮设备的目录树连接到你指定的目录中去。它是一种系统管理的
任 务 ,不 能 由 普 通 的 用 户 来 完 成 。 要 安 装 一 个 文 件 系 统 ,一 定 要 作 为 根 用 户 登 录 。
表 7-2 列 出 了 m o u n t 命 令 的 不 同 选 项 。
m o u n t 命 令 有 两 个 参 数 : L i n u x 系 统 要 访 问 文 件 系 统 的 存 贮 设 备 ,新 的 文 件 系
统 将 要 被 连 入 的 文 件 结 构 中 的 目 录 。 mount 点 是 你 希 望 存 贮 设 备 上 文 件 连 入 系
统 的 主 目 录 中 的 目 录 。 device 是 将 你 的 系 统 与 硬 件 设 备 相 连 的 特 殊 的 设 备 文 件 。
mount 命 令 的 语 法 如 下 :
# mount device moantpoint
设 备 文 件 目 录 / d e v 中 ,它 们 通 常 有 一 些 以 设 备 数 结 尾 的 缩 略 名 。 例 如 , f d 0 可
能 指 联 入 你 的 系 统 的 第 一 个 软 驱 。在 P C 操 作 L i n u x 系 统 中 ,硬 盘 分 区 有 一 个 h d
的 前 缀 ,后 面 是 一 个 字 母 表 中 字 符 以 标 明 硬 盘 ,最 后 是 分 区 号 。 例 如 , h d a 2 指 第 一
硬 盘 中 的 第 二 个 分 区 。 在 多 数 情 况 下 ,你 可 以 利 用 有 前 缀 的 m a n 命 令 来 获 取 与
设 备 有 关 的 更 多 的 详 细 信 息 。 例 如 ,m a n s d 显 示 了 S C S I 设 备 的 m a n 页 数 。
一 个 文 件 系 统 要 是 可 访 问 的 ,它 首 先 要 被 安 装 。 甚 至 你 的 硬 盘 分 区 上 的 文 件
系 统 也 要 由 m o u n t 命 令 加 以 安 装 。然 而 , 当 你 装 L i n u x 系 统 并 在 硬 盘 上 开 辟 L i n u x
分 区 时 ,你 的 系 统 一 旦 开 始 便 被 设 置 为 自 动 安 装 你 的 主 文 件 系 统 。 软 驱 和 光 驱 则
需 要 显 式 地 安 装 。 下 例 将 第 一 个 软 盘 驱 动 设 备 的 软 盘 ( f d 0 )安 装 到 目 录 / m y d i r 中 。
# m o u n t /dev/fd0/mydir
在 你 关 闭 系 统 之 前 ,所 有 你 安 装 的 文 件 系 统 都 必 须 被 卸 载 。 你 的 主 文 件 系 统
是 主 动 卸 载 的 。 然 而 ,如 果 你 想 用 一 个 文 件 系 统 来 代 替 一 个 已 安 装 的 文 件 系 统 , 你
必 须 首 先 将 已 安 装 的 文 件 系 统 卸 载 。 假 定 你 已 安 装 了 一 个 软 盘 ,现 在 你 想 把 它 取
出 再 放 入 一 个 新 的 ,你 必 须 在 放 入 新 盘 之 前 首 先 将 原 有 的 卸 载 , 然 后 再 安 装 新 的 软
盘 。 用 unmount 命 令 可 以 卸 载 一 个 文 件 系 统 。 unmount 可 将 设 备 名 或 设 备 安 装
的目录作为参数。语法如下:
# unmount device-or-mountpoint
下 一 个 例 子 卸 载 了 安 装 在 目 录 /m y d i r 下 的 软 盘 :
# unmount /dev/fdo
利 用 将 设 备 安 装 在 目 录 /m y d i r 中 的 例 子 ,你 也 可 以 利 用 这 一 目 录 来 卸 载 文 件
系统。
# unmount /mydir
unmount 命 令 有 一 个 重 要 的 限 制 。 你 永 远 不 能 卸 载 一 个 你 正 在 其 中 工 作 的
文 件 系 统 。 如 果 你 进 入 了 一 个 文 件 系 统 中 的 一 个 目 录 ,然 后 你 想 卸 载 这 一 文 件 系
统 ,你 会 接 到 一 个 文 件 系 统 忙 的 错 误 信 息 。 例 如 ,你 将 O p e n L i n u x 的 C D - R O M
装 在 目 录 /m n t / c d r o w 下 ,然 后 你 进 入 了 /m n t c d r o m 目 录 。
如 果 你 想 更 换 C D 。 这 将 会 失 败 ,因 为 你 现 在 正 位 于 它 所 安 装 的 目 录 中 。 在
你 卸 载 CD-ROM 之 前 你 必 须 离 开 这 一 目 录 。
# m o u n t / d e v / h d c /m n t / c d r o m
# cd /mnt/cdrom
# unmount /mnt/cdrom
unmount:/dev/hdd:device is busy
# cd /root
# unmount /mnt/cdrom (239)
在 每 个 存 贮 设 备 上 的 文 件 系 统 都 被 格 式 化 过 以 占 据 一 定 数 量 控 间 。 例 如 ,你
可 将 你 的 硬 盘 分 区 格 式 化 为 占 300m 空 间 。 在 这 一 文 件 系 统 中 安 装 或 创 建 的 文
件 将 占 据 部 分 空 间 ,剩 余 空 间 可 留 给 新 的 文 件 和 目 录 。 要 查 出 在 一 个 文 件 系 统 中
还 有 多 少 剩 余 空 间 ,你 可 以 使 用 d f 命 令 。 它 按 设 备 名 会 例 出 你 所 有 的 文 件 系 统 ,
它 们 的 存 贮 空 间 大 小 ,已 经 利 用 的 空 间 的 百 分 比 ,以 及 它 们 所 安 装 的 位 置 。 d f 命
令 ,而 不 是 f d i s k 命 令 ,是 一 种 列 出 分 区 表 的 安 全 的 方 法 。
$ df
F ile sytem 1024-blocks used available
capacity Mounted on /dev/hda3 297635
169499 112764 60% /
/dev/hda1 205380 182320 23060
89% /m n t / d o s /dev/hdc 637986
637986 0 100% /m n t / c d r o m
利 用 d f 命 令 ,你 也 可 知 道 某 一 目 录 属 于 哪 个 文 件 系 统 ,只 需 输 入 d f 和 目 录 名 ,
或 df,来 代 表 当 前 目 录 。
$ df .
File system 1024-blocks used avai/able capcity Mounted on
/dev/hda3 297635 169499 112764 6 0 % 1
要 确 认 某 一 文 件 系 统 运 行 正 常 ,你 可 以 使 用 f s c k 命 令 进 行 检 查 。 输 入 f s c k 和
代 表 文 件 系 统 的 设 备 名 。 表 7-3 列 出 了 fsck 的 选 项 。 下 面 的 例 子 检 查 了 软 驱 中
的磁盘和主硬盘:
# fsck /dev/fdo
# fsck /dev/hdal

7.3.1 安 装 并 格 式 化 软 盘
要 访 问 一 张 软 盘 上 的 文 件 ,你 首 先 需 要 把 软 盘 安 装 到 你 的 L i n u x 系 统 中 。 你
的 软 驱 设 备 名 是 f d 0 ,目 录 / d e v . / d e v / f d 0 代 表 软 驱 。 注 意 fd 之 后 的 0 ,如 果 你 有 多
个 软 驱 , 它 们 会 分 别 用 f d 1 , f d 2 等 口 来 代 表 。你 可 以 把 它 安 装 到 任 何 目 录 。但 O p e n
L i n u x 安 装 已 经 为 软 盘 创 建 了 一 个 范 例 的 目 录 ,/m n t / f l o p p y 。 下 一 个 例 子 把 软 驱
中 的 软 盘 安 装 到 /m n t / f l o p p y 目 录 :
# mount /dev/fdo /mnt/floppy
记 主 你 正 在 安 装 一 张 软 盘 ,而 不 是 软 驱 。 你 不 能 只 是 将 一 张 软 盘 取 走 , 再 放 入
一 张 新 的 。 m o u n t 命 令 已 将 这 些 文 件 联 入 你 的 主 目 录 树 中 ,你 的 系 统 认 为 在 软 驱
的 软 盘 中 可 以 找 到 这 些 文 件 。 如 果 你 将 软 盘 取 出 后 又 放 入 另 外 一 张 ,那 在 对 之 访
问时会出现错误。
要 更 换 磁 盘 ,你 首 先 必 须 将 软 驱 中 的 磁 盘 卸 载 ,在 放 放 新 盘 之 后 ,你 必 须 明 确 地
安 装 新 磁 盘 。 可 用 umount 命 令 来 完 成 这 一 任 务 。 注 意 在 umount 命 令 中 并 没
有 n。
# umount /dev/fdo
在 卸 载 操 作 中 ,你 可 以 指 定 其 安 装 的 目 录 或 / d e v / f d o 设 备 :
# umount /mnt/floppy
你 现 在 可 以 取 走 软 盘 ,放 入 一 张 新 盘 ,然 后 进 行 安 装 了 。
# mount /mat/floppy
当 你 关 闭 系 统 时 ,你 所 安 装 的 磁 盘 将 自 动 被 卸 载 ,无 须 你 将 之 明 确 卸 载 。
要 将 软 盘 格 式 化 ,使 用 m k f s 命 令 。 它 在 盘 上 创 建 了 一 个 L i n u x 文 件 系 统 。 一 定
要 确 保 用 - t e x t 2 选 项 来 指 定 e x t 2 类 型 的 文 件 系 统 。 一 旦 格 式 化 ,你 命 名 可 以 安
装 这 一 文 件 系 统 。 mkfs 将 设 备 名 和 盘 上 存 贮 块 的 数 目 作 为 参 数 。 一 个 块 中 有
1 0 0 0 b y t e , 1 4 0 0 格 式 化 了 一 张 1 . 4 4 M B 的 软 盘 。 你 不 用 先 安 装 空 盘 ,只 要 批 发 它
放 在 软 驱 中 然 后 输 入 mkfs 命 令 和 它 的 参 数 就 可 以 了 。 下 一 个 例 子 格 式 化 了 一 张
1.44MB 的 软 盘 。
# mkfs -t ext2 /dev/fdo 1400

7.3.2 安 装 C D - R O M
你 也 可 以 把 C D - R O M 盘 片 mount 到 你 的 Linux 系 统 。 在 Open Linux 系 统
中 ,目 录 /m n t / c d r o m 是 专 为 C D - R O M 文 件 系 统 保 留 的 。 在 文 件 / e t c / f s t a b 中 你 会
看 到 它 的 一 个 入 口 。 要 安 装 CD-ROM,你 只 要 输 入 mount 命 令 和 目 录 名
/m n t / c d r o m 即 可 。 你 无 须 指 定 设 备 名 。 一 旦 安 装 , 你 可 以 通 过 /m n t / c d r o m 目 录
对 CD-ROM 进 行 访 问 。
# mount /mnt/cdrom
如 同 软 盘 一 样 ,要 记 住 你 安 装 的 是 一 张 光 盘 ,而 不 是 光 驱 。 你 不 能 仅 仅 将 光 盘
移 走 再 放 入 另 外 一 张 。 m o u n t 命 令 已 将 这 些 文 件 联 入 主 目 录 树 ,你 的 系 统 认 为 在
CD-ROM 驱 动 器 的 光 盘 中 会 找 到 这 些 文 件 。
要 更 换 盘 片 ,你 需 要 先 用 u m o u n t 命 令 卸 载 在 C D - R O M 驱 动 器 中 的 盘 片 。 在
你 的 命 令 实 施 之 前 , 你 的 C D - R O M 不 会 打 开 。 在 放 入 新 的 光 盘 之 后 ,你 可 以 显 式
地安装新的盘片。
# umount /mnt/cdrom
你 现 在 可 以 取 走 光 盘 并 放 入 另 外 一 张 。 然 后 执 行 mount 命 令 以 进 行 安 装 。
# mount /mnt/cdrom
如 果 你 想 把 C D - R O M 安 装 到 另 一 个 目 录 中 ,你 必 须 在 m o u n t 命 令 中 加 入 设
备 名 。 下 一 个 例 子 把 光 驱 中 的 光 盘 安 装 到 /m y d i r 目 录 中 。 本 例 中 C D - R O M 的 设
备 名 是 / d e v / h d c。
# mount /dev/hdc /mydir
光 驱 的 设 备 名 是 随 着 光 驱 类 型 而 变 的 。 ID E C D - R O M 的 设 备 名 有 与 ID E 硬
盘 分 区 相 同 的 前 缀 h d 。 其 后 的 一 个 字 符 标 识 了 光 驱 并 将 它 与 其 它 的 ID E 设 备 区
分 开 来 。例 如 , 一 个 接 到 第 二 个 ID E 口 的 C D - R O M 的 名 字 是 h d c 。一 个 作 为 s l a v e
接 到 第 二 个 ID E 口 的 I D E C D - R O M 的 名 字 可 能 是 h d d 。 实 际 的 名 字 将 在 C D -
R O M 安 装 的 时 候 确 定 ,正 如 同 安 装 L i n u x 系 统 时 一 样 。 S C S I 的 光 驱 有 自 己 的 单
独 的 命 名 法 。 它 以 s d 开 头 代 表 S C S I 驱 动 器 ,其 后 跟 一 个 标 识 的 字 符 。 例 如 ,一
个 SCSI CD-ROM 的 名 字 可 能 是 sdb 或 sda。 当 安 装 系 统 时 ,CD-ROM 的 名 字
便 已 确 定 。 你 可 以 查 看 /etc/fstab 文 件 或 使 用 根 目 录 用 户 桌 面 中 的 fstool 来 进 行
确认。
要 更 换 光 盘 , 你 应 先 卸 载 光 驱 中 的 C D - R O M 。 然 后 , 放 入 新 盘 片 ,再 对 它 进 行
明确地安装。
# umount /mydir
你 现 在 可 以 取 走 CD-ROM 并 放 入 另 一 张 光 盘 。 然 后 执 行 mount 命 令 进 行
安装。
# m o u n t / d e v / h d c /m y d i r

7.3.3 安 装 硬 盘 分 区 :Linux 和 M S - D O S
你 可 以 用 m o u n t 命 令 安 装 L i n u x 或 M S - D O S 硬 盘 分 区 。 然 而 ,更 加 实 用 的
是 利 用 文 件 / e t c / f s t a b 进 行 自 动 安 装 ,正 始 下 节 第 述 。 你 在 安 装 时 所 创 建 的 L i n u x
硬 盘 分 区 已 经 自 动 装 好 。 要 安 装 一 个 L i n u x 硬 盘 分 区 ,只 要 输 入 m o u n t 命 令 和 分
区 的 设 备 名 及 你 想 安 装 的 目 录 名 。 ID E 硬 盘 使 用 h d 前 缀 , S C S I 硬 盘 使 用 s d 前
缀 。 一 个 硬 盘 驱 动 器 的 前 缀 后 面 跟 着 一 个 标 识 硬 盘 的 第 二 个 分 区 ,sdb3 代 表 第
二 个 S C S I 硬 盘 上 的 第 三 个 分 区 。 要 查 找 设 备 名 ,你 可 以 用 d f 来 显 示 你 的 硬 盘 分
区 或 检 查 /etc/fstab 文 件 。 下 一 个 例 子 将 /dev/hda4 上 的 Linux 硬 盘 分 区 安 装 到
目 录 /m n t / m y d a t a 。
# mount -t ext2 /dev/hda4 /mnt/mydata
你 也 可 以 安 装 一 个 M S - D O S 分 区 并 直 接 访 问 其 中 的 文 件 。 同 Linux 分 区 一
样 ,你 也 要 使 用 m o u n t 命 令 ,但 是 你 要 把 文 件 系 统 的 类 型 定 M S - D O S 。 需 要 使 用 -
t 选 项 和 m s d o s 类 型 来 完 成 上 述 任 务 。 在 下 一 个 例 子 中 ,用 户 将 / d e v / h d a l 的
M S - D O S 硬 盘 分 区 安 装 到 L i n u x 文 件 结 构 的 目 录 /m n t / d o s 中 。 /m n t / d o s 是 M S -
D O S 文 件 系 统 的 一 个 普 通 的 命 名 ,你 可 以 把 分 区 安 装 到 任 何 一 个 目 录 。 但 要 保
证你已创建了该目录。
# mount -t msdos /dev/hdal /mnt/dos
如 果 你 想 从 一 个 新 的 硬 盘 或 一 个 现 有 硬 盘 上 ,来 安 装 一 个 新 的 分 区 。 你 需 要
用 L i n u x 的 f d i s k 或 c f d i s k 来 创 建 这 一 分 区 ,并 用 m k f s 命 令 将 之 格 式 化 。 一 旦 将
之 创 建 并 格 式 化 ,你 就 可 以 把 它 安 装 在 你 的 文 件 系 统 中 了 。 要 开 始 c f d i s k ,需 在 命
令 行 上 f d i s k 。 它 将 启 动 一 个 交 互 式 的 程 序 ,你 可 以 用 它 创 建 你 的 L i n u x 分 区 。 使
用 L i n u x 的 fdisk 要 特 别 小 心 。 如 果 你 不 小 心 ,它 可 能 会 删 除 你 的 整 个 硬 盘 。
fdisk 的 功 用 如 同 在 第 2 章 中 讨 论 的 安 装 过 程 中 大 致 相 同 。 命 令 n 将 创 建 一
个 新 的 分 区 ,命 令 t 允 许 你 将 它 的 类 型 设 为 L i n u x 类 型 , 8 3 。 表 7 - 5 列 出 了 f d i s k
命令。
硬 盘 分 区 的 命 名 是 以 h d ( I D E 驱 动 器 ) 或 s d ( S C S I ) 驱 动 器 )开 头 ,后 面 是 一 个
标识硬盘的字母和一个代表硬盘上分区的数字。它们可以属于任何的操作系统,
如 M S - D O S , O S / 2 ,或 W i n d o w s N T 。 L i n u x 。 创 建 的 第 一 个 硬 盘 分 区 是 h d a 2 ,
如 果 你 添 加 一 个 新 的 I D E 硬 盘 ,它 的 第 一 个 分 区 的 名 字 是 h d b 1 。
一 旦 创 建 了 分 区 ,你 需 要 将 之 进 行 格 式 化 。 用 m k f s 命 令 和 硬 盘 分 区 的 名 字
即 可 完 成 这 一 工 作 。 一 个 硬 盘 分 区 是 一 个 在 /dev 目 录 中 有 自 己 的 设 备 名 的 设 备 。
使 用 m k f s 命 令 时 ,你 要 指 定 它 的 全 路 径 名 。 例 如 ,第 一 个 硬 盘 上 的 第 二 个 分 区 会
有 设 备 名 /dev/hda5。 下 一 个 例 子 将 那 个 分 区 进 行 了 格 式 化 。
# mkfs -t ext2 /dev/hda5
你 现 在 可 以 安 装 你 新 的 硬 盘 分 区 ,并 将 之 联 到 文 件 结 构 中 去 。

7.3.4 自 动 安 装 文 件 系 统 :fstab 文 件
当 在 你 的 L i n u x 系 统 中 加 入 一 个 新 的 硬 盘 分 区 时 ,你 很 可 能 希 望 在 开 始 时 对
它 进 行 自 动 安 装 ,在 结 束 时 自 动 卸 载 。 否 则 ,你 每 次 开 启 或 关 闭 系 统 的 时 候 ,都 要
对 硬 盘 分 区 明 确 地 安 装 和 卸 载 。 要 让 Linux 自 动 装 卸 你 新 的 硬 盘 分 区 中 的 文 件
系 统 ,你 只 须 将 它 的 名 字 加 到 f s t a b 文 件 中 , 你 可 以 直 接 仔 细 地 编 辑 f s t a b 文 件 输
入 一 个 新 的 入 口 来 完 成 这 一 工 作 ,你 也 可 以 用 下 一 节 中 描 述 的 f s t o o l 命 令 。 f s t a b
文 件 在 目 录 /etc 中 。 它 列 出 了 用 m o u n t 命 令 和 -a 选 项 安 装 的 文 件 系 统 。 这 一
mount -a 命 令 在 /etc/rcd/rcboot 文 件 中 。 这 一 命 令 进 行 了 系 统 初 始 化 操 作 。 每
次 你 启 动 系 统 时 它 都 被 执 行 。 当 你 关 闭 系 统 的 时 候 ,umount -a 命 令 被 执 行 以 卸
载 fstab 文 件 中 所 列 的 全 部 文 件 系 统 。 u m o u n t - a 命 令 可 以 在 /etc/rcd/init/balt 文
件 中 找 到 ,它 当 中 包 含 着 当 你 关 闭 系 统 时 要 执 行 的 命 令 。 这 样 ,你 在 /etc/fstab 文
件 中 指 定 的 文 件 系 统 将 在 系 统 启 动 时 自 动 安 装 ,当 系 统 关 闭 时 被 自 动 卸 载 。 其 它
如 R e d h a t 的 系 统 可 能 会 把 umount -a 命 令 放 在 名 为 /etc/rcd/rcsysinit 的 文 件 中 。
在 f s t a b 文 件 中 的 一 个 入 口 包 括 几 个 域 ,每 个 域 之 间 用 空 格 或 t a b 隔 开 。 第 一
个 域 是 要 安 装 的 文 件 系 统 的 名 字 。 它 通 常 以 / d e v 开 头 ,如 / d e v / h d a 3 代 表 第 三 个
硬 盘分区。第二个域是你希望将设备上的文件系统进行安装的文件结构中的目
录 。 第 三 个 域 是 要 安 装 的 文 件 系 统 的 类 型 。 表 7-6 列 出 了 你 所 有 可 以 安 装 的 文
件 系 统 类 型 。 一 个 标 准 的 L i n u x 硬 盘 分 区 的 类 型 是 e x t。 下 一 个 例 子 表 示 了 一 个
主 L i n u x 硬 盘 分 区 的 入 口 。 它 被 安 装 在 根 目 录 /中 ,文 件 类 型 是 e x t 2 。
/dev/hda3 ext2 defaults 0 /
在文件系统类型之后的还列出了安装文件系统的不同选 项。你可以输入
d e f a u l t 来 指 定 一 套 缺 省 的 选 项 。 你 可 以 一 个 个 列 出 特 定 的 选 项 ,选 项 之 间 用 逗 号
分 隔 ( 没 有 空 格 )。 缺 省 选 项 指 一 设 备 为 读 /写 ,非 同 步 、 块 、 普 通 用 户 无 法 进 行 安
装 ,程 序 可 在 上 面 执 行 。与 之 相 反 , 一 个 C D - R O M 只 有 有 限 的 几 个 选 项 可 供 选 择 , r o
和 noauto,ro 指 定 它 是 只 读 的 ,noauto 指 定 它 不 是 自 动 安 装 的 。 noauto 选 项 是
同 C D - R O M 和 软 驱 一 同 使 用 的 ,那 么 它 们 就 不 会 被 自 动 安 装 ,既 然 你 不 知 道 在 启
动 的 时 候 在 驱 动 器 中 是 否 有 东 西 。 同 时 ,CD-ROM 和 软 驱 的 入 口 指 定 了 当 你 决
定 进 行 安 装 时 要 安 装 的 目 录 。 表 7-7 列 出 了 安 装 一 个 文 件 系 统 的 选 项 。 紧 跟 着
是 一 个 C D - R O M 和 软 驱 入 口 的 例 子 。 注 意 :C D - R O M 文 件 系 统 的 类 型 同 硬 盘 分
区 的 文 件 系 统 类 型 L s o 9 6 6 0 是 不 同 的 。软 驱 同 硬 盘 分 区 一 样 有 相 同 的 缺 省 选 项 。
/dev/fdo /mnt/floppy ext2 defaults,noauto 0 0
/dev/hdc /mnt/cdrom Tso9660 ro,noauto 0 0
最 后 的 两 个 域 由 整 数 值 组 成 。 前 一 个 被 dump 命 令 用 来 判 断 一 个 文 件 系 统
是 否 需 要 被 清 除 ,将 文 件 系 统 进 行 备 份 。 最 后 一 个 被 f s c k 用 来 判 定 是 否 需 要 对 一
个 文 件 系 统 进 行 检 查 以 及 以 何 种 次 序 进 行 。 如 果 域 的 值 为 1 ,它 表 明 是 一 个 b o o t
分 区 。 值 0 表 明 fsck 无 须 对 文 件 系 统 进 行 检 查 。
下 面 有 文 件 /etc/fstab 的 一 个 拷 贝 。 注 意 第 一 行 是 注 释 。 所 有 的 注 释 行 都 以
# 开 头 。 / p r o c 文 件 系 统 的 入 口 是 一 种 特 殊 的 入 口 ,它 被 L i n u x 操 作 系 统 用 来 管 理
它的进程。它并不是一个实际的设备。
/extc/fstab
#<device <mountpoi <filesyste <options> <dump> <fskorder
> nt> m type> >
/dev/hda3 / ext2 0 1
defaults
/dev/hdc /m n t / c d r o m iso9660 ro,noauto 0 1
/dev/fdo /m n t / f l o p p y ext2 defaults,no 0
auto
/pdo /proc proc defaults
/dev/hda2 none swap sw
/dev/hda1 /m n t / d o s msdos defaults 0 0
为 了 要 在 /etc/fstab 文 件 中 加 入 一 个 入 口 ,你 或 者 可 以 直 接 编 辑 /etc/fstab 文
件 ,或 者 利 用 实 用 具 f s t o o l 为 你 提 供 信 息 , 并 在 / e t c / f s t a b 文 件 中 加 入 正 确 的 入 口 。
正 如 前 面 所 描 述 的 ,你 可 以 把 M S - D O S 操 作 系 统 使 用 的 M S - D O S 分 区 装 到
L i n u x 的 文 件 结 构 中 ,同 你 安 装 任 何 的 L i n u x 文 件 系 统 相 同 。 你 只 要 把 文 件 的 类
型 指 定 为 M S - D O S 即 可 。 你 可 能 觉 得 当 你 启 动 Linux 系 统 时 自 动 安 装 M S - D O S
分 区 是 很 方 便 的 。 要 做 到 这 一 点 ,你 只 要 在 你 的 / e t c / f s t a b 文 件 中 为 M S -D O S 分
区 加 一 个 入 口 即 可 。 你 可 以 为 每 一 个 想 要 安 装 的 MS-DOS 分 区 设 置 一 个 入 口 ,
并 在 你 想 安 装 的 目 录 名 之 前 批 定 分 区 的 设 备 名 。 目 录 /m n t / d o s 是 一 个 逻 辑 上 的
选 择 ( 要 确 保 /m u t 目 录 之 中 已 经 创 建 3 d o s 目 录 ) 。 至 于 文 件 系 统 的 类 型 , 输 入
m s d o s 。 下 一 个 例 子 列 出 了 一 个 e t c / f s t a b 文 件 的 标 准 M S - D O S 分 区 的 入 口 ,注
意 在 e t c / f s t a b 文 件 的 最 后 一 项 是 一 个 安 装 M S -D O S 分 区 的 项 。
/dev/hdal /mnt/dos msdos defaults 0 0
对 于 任 何 一 个 在 文 件 e t c / f s t a b 中 有 条 目 的 分 区 ,你 可 以 只 用 f s t a b 中 的 项 指
定 的安 装 目 录 对 之 进 行 安 装 ,你 无 需 输 入 设 备 文 件 名 。 m o u n t 命 令 将 查 询 fstab
文 件中 的 项 对 之 进 行 寻 找 , 利 用 目 录 来 标 识 项 ,这 样 , 就 可 以 找 到 设 备 名 。 例 如 , 要
将 上一 个 例 子 中 / d e v / h d a l D O S 分 区 卸 载 , m o u n t 命 令 ,只 须 知 道 它 所 安 装 的 目 录
即 可, 在 这 个 例 子 里 是 /m n t / d o s 。
# mount /mnt/dos
如 果 你 的 e t c / f s t a b 文 件 被 破 坏 了 — — 比 如 说 ,有 一 行 偶 然 被 删 除 或 修 改 了 —
— 那 么 你 的 系 统 将 会 启 动 并 进 入 一 种 维 护 模 式 ,允 许 你 对 分 区 进 行 只 读 访 问 。 要
想 进 行 读 /写 访 问 以 修 复 你 的 etc/fstab 文 件 ,你 需 要 重 新 安 装 你 的 主 分 区 。 下 面
的命令进行了这样的操作:
# mount -n -0 remount, ro/
你 可 以 利 用 这 里 的 etc/fstab 文 件 的 例 子 来 看 到 你 的 条 目 应 该 是 何 种 样 子 。
/proc 和 s w a p 分 区 项 是 尤 其 重 要 的 。

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


你 可 以 用 Lisa 工 具 来 管 理 你 的 fstab 文 件 ,而 不 是 直 接 对 它 进 行 编 辑 。 Lisa
是 同 a m d d a e m o n 装 在 一 起 进 行 工 作 的 ,因 此 它 是 首 选 的 。 在 系 统 设 置 菜 单 中 ,
你 会 看 到 一 项 是 ”安 装 表 设 置 ”, 这 一 项 会 弹 出 , 图 7 - 6 所 示 的 菜 单 , 列 出 了 对 你 的
m o u n t 表 ,即 e t c / f s t a b 文 件 的 项 进 行 显 示 ,添 加 和 删 除 的 选 项 。
图 7-6Lisa mount 表 的 选 项
要 加 入 一 项 , 选 择 ”在 m o u n t 表 中 加 入 新 的 项 目 ”。 下 一 屏 的 显 示 要 求 你 输 入
要 安 装 的 分 区 的 名 字 或 你 想 要 安 装 的 N F S 路 径 ( 见 图 7 - 7 )。 它 会 使 这 一 项 生 效 ,
并 确 保 它 是 一 个 实 际 的 分 区 或 是 一 个 可 访 问 的 路 径 ,然 后 你 会 被 要 求 输 入 你 想 将
分 区中的文件系统安装到的目录的名字。再然后你会被要求确认文件系统是只
读 的 ,还 是 可 以 读 写 的 。
图 7-7 在 mount 表 中 加 入 一 项
“D e l e t e a n e n t r y ”选 项 允 许 你 交 一 项 从 文 件 系 统 中 删 除 。 要 小 心 不 要 无 意
中 将 根 文 件 系 统 删 除 ,即 安 装 在 / 和 / p r o c 以 及 s w a p 分 区 的 文 件 系 统 。
如 果 不 使 用 L i s a ,你 也 可 以 使 用 R e d h a t 的 f s t o o l 实 用 工 具 来 管 理 你 的
etc/fstab 文 件 。 fstool 现 在 并 不 是 设 计 为 与 a m d d a e m o n 一 同 使 用 的 。 你 可 以
从 f v w m 任 务 条 或 菜 单 来 访 问 fstool, 也 可 从 A d m in-Tools 文 件 夹 的 C a l d e a 根 桌
面 对 这 进 行 访 问 。 当 你 启 动 f s t o o l 后 ,一 个 列 着 你 的 e t c / f s t a b 文 件 内 容 的 窗 口 会
出 现 。 使 用 其 中 的 按 钮 和 菜 单 ,你 可 以 安 装 或 卸 载 文 件 系 统 , 在 e t c / f s t a b 文 件 中
加 入 新 的 文 件 系 统 ,也 可 以 更 改 你 的 文 件 系 统 的 任 何 选 项 。 你 也 可 以 轻 松 地 加
入 N F S 文 件 系 统 ,图 7-8 显 示 了 fstool 的 窗 口 。
图 7-8fstool 窗 口
在 fstab 文 件 中 列 出 的 文 件 系 统 的 项 被 显 示 在 窗 口 中 央 的 栏 内 。 最 顶 端 的行
列 出了每个域的名字。下端依次排开的五个按钮描述了你可以对文件系统 执行
的 不 同 操 作 。 只 要 单 击 文 件 系 统 的 条 目 ,它 就 会 处 于 高 亮 状 态 。 然 后 单 击 按 钮。
单 击 I n f o 按 钮 可 以 弹 出 一 个 显 示 文 件 系 统 详 细 信 息 的 窗 口 ,包 括 剩 余 空 间 的 byte
数 。 Check 按 钮 可 以 检 查 文 件 系 统 是 否 有 错 误 。
Mount 和 unmount 按 钮 可 对 选 定 的 文 件 系 统 安 装 或 卸 协 。 Format 按 钮 将 一
个 文 件 系 统 进 行 格 式 化 , E d i t 按 钮 允 许 你 改 变 一 些 域 ,例 如 文 件 系 统 的 选 项 。 使 用
f s t o o l 进 要 非 常 小 心 。 你 不 会 想 将 一 个 你 想 进 行 访 问 的 文 件 系 统 卸 载 ,你 也 不 想
无 意 中 将 一 个 文 件 系 统 格 式 化 ,以 致 丢 失 上 面 你 所 有 的 数 据 。
窗 口 的 左 上 角 有 两 个 菜 单 ,一 个 设 置 你 的 文 件 系 统 管 理 员 ( F S M ) , 另 一 个 设 置
网 络 文 件 系 统 (NIS),NFS 文 件 将 在 下 章 进 行 讲 述 。 你 可 对 文 件 系 统 管 理 员 进 行
设 置 ,以 在 窗 口 中 显 示 更 多 的 信 息 ,例 如 你 的 文 件 系 统 中 未 占 用 的 存 贮 空 间 所 占 的
百 分 比 。 你 也 可 以 用 F S M 菜 单 在 /etc/fstab 文 件 中 添 加 或 删 除 文 件 系 统 , A d d 条
目 允 许 你 添 加 一 个 文 件 系 统 , 而 D e l e t e 条 目 允 许 你 删 除 一 个 文 件 系 统 。 例 如 ,要
将 在 一 个 硬 盘 分 区 上 的 M S - D O S 文 件 系 统 加 到 e t c / f s t a b 文 件 中 去 ,你 应 从 F S M
菜 单 中 选 择 A d d ,然 后 输 入 文 件 系 统 的 设 备 名 。

7 . 4 网 络 文 件 系 统 :N F S 和 e t c / e x p o r t s

网 络 文 件 系 统 : ( N F S )可 以 允 许 你 将 一 中 远 地 计 算 机 上 的 文 件 系 统 如 同 本 地
的 文件系统一样进行安装。你便可以直接访问远地文件系统上的任何一个文件。
这 样 做 有 一 个 优 点 :在 岗 络 上 不 同 的 文 件 系 统 可 以 访 问 同 一 上 文 件 ,而 无 须 各 自 保
留 自己的拷贝。只会在远地文件系统中有一个其它的计算机可以直接进行访问
的 文件。
N F S 在 T C P / I P 的 岗 络 中 工 作 ,远 地 计 算 机 使 所 包 含 的 文 件 系 统 能 够 被 其 它
网 络 上 的 计 算 机 所 访 问 。 为 了 完 成 这 项 任 务 ,它 需 要 将 文 件 系 统 输 出 ,这 便 需 要 在
称 作 /etc/exports 的 N F S 设 置 文 件 中 加 入 一 个 条 目 ,与 此 同 时 还 要 同 时 两 个
d a e m o n — — rpc. mountd 和 rpc.nfsd 来 支 持 其 它 文 件 系 统 的 访 问 。 /etc/exports
文件中的条目指定了要被输出的文件系统以及岗络上可对之进行访问的计算
机 。 对 于 文 件 系 统 ,输 入 安 装 点 ,即 它 所 要 安 装 的 目 录 。 这 之 后 是 一 个 计 算 机 的 列
表 ,列 出 了 可 以 对 这 个 文 件 系 统 访 问 的 计 算 机 。 在 每 台 计 算 机 后 可 能 跟 着 包 含 在
括 号 中 以 逗 号 所 分 隔 的 安 装 选 项 。 例 出 ,你 想 给 一 台 计 算 机 读 权 限 而 给 另 外 一
台 计 算 机 读 /写 权 限 。 如 果 只 列 出 了 选 项 ,那 么 它 们 适 用 于 在 一 台 计 算 机 。 表 7-8
列 出 了 安 装 选 项 的 列 表 。 在 /etc/exports 文 件 中 条 目 的 例 子 如 下 所 示 。 无 安 全 检
查 的 只 读 访 问 权 限 给 予 所 百 的 计 算 机 ,以 对 安 装 在 / p u b 目 录 — — 一 个 公 共 访 问 的
通 用 名 字 — — 中 的 文 件 系 统 进 行 访 问 。 ant.trek.com 计 算 机 被 赋 予 了 对 安 装 在
/home/foodstuff 目 录 中 文 件 系 统 进 行 读 / 写 访 问 的 权 限 。 下 一 项 允 许
butterfly.trek.com 对 你 的 C D - R O M 进 行 访 问 。 最 后 一 项 禁 止 任 何 人 对
/home/richlp 的 访 问 。
/etc/exports
/pub(ro,Tnsecure,all-squash)
/home/foodstuffant.trek.com(rw)
/m n t / c d r o m b a t t e r f l y , t r e k , c o m ( r o )
/home/richcp(noaccess)
一 旦 N F S 的 文 件 系 统 被 设 置 为 允 许 ,网 络 上 不 同 的 计 算 机 在 使 用 文 件 系 统 之
前 应 首 先 进 行 安 装 。 你 可 以 用 etc/fstab 文 件 的 条 目 或 用 一 个 明 确 的 m o u n t 命 令
来 安 装 一 个 N F S 文 件 系 统 。 在 etc/fstab 文 件 文 中 N F S 的 条 目 的 安 装 类 型 是
N F S 。 一 个 N F S 文 件 系 统 名 包 括 文 件 系 统 所 在 计 算 机 的 主 机 名 ,其 后 是 它 所 安
装 的 目 录 名 。 二 者 之 间 由 冒 号 分 隔 开 。 便 如 ,rose,berkeley,edu:/nome/prject 指
定 了 文 件 系 统 被 安 装 在 名 为 rose.berkeley.edu 的 计 算 机 的 /home/project 目 录
中。
NFS 也 有 自 己 的 一 些 特 殊 选 项 可 供 你 在 NFS 项 中 使 用 。 你 可 以 指 定 数 据 报
的 大 小 ,以 及 你 的 计 算 机 等 待 主 机 回 应 的 时 间 。 你 也 以 指 定 一 个 文 件 系 统 是 进 行
硬 安 装 还 是 进 行 软 安 装 。 对 于 一 个 硬 安 装 的 文 件 系 统 而 言 ,如 果 因 为 某 种 原 因 远
地 的 系 统 回 应 失 败 ,你 的 计 算 机 会 不 断 地 与 远 地 计 算 机 联 系 。 对 于 软 安 装 而 言 , 在
一 个 给 定 的 时 间 间 隔 这 后 ,你 的 计 算 机 会 停 止 与 远 端 主 机 的 联 系 并 给 出 出 错 信
息 。 硬 安 装 是 缺 省 的 。 表 7-9 和 m o u n t 命 令 的 页 包 含 着 这 些 N F S 客 户 端 先 项
的 列 表 。 它 们 与 前 面 所 说 的 NFS 服 务 器 端 的 选 项 是 不 同 的 。
下 面 是 一 个 N F S 条 目 的 例 子 。 远 地 系 统 是 a n t . t r e k . c o m ,文 件 系 统 被 安 装 在
/nome/projects 目 录 中 。 文 件 系 统 将 被 安 装 在 本 地 的 /home/richlp 目 录 中 。 系 统
的 类 型 是 N F S , t i m e o 选 项 指 定 本 地 系 统 将 等 待 十 分 之 一 秒 的 二 十 倍 ,即 两 秒 钟 ,
来等候回应。
ant.trek.com:/home/Projects /home/richlp nfs time0=20
你 也 可 以 使 用 m o u n t 命 令 和 -t nfs 选 项 来 明 确 地 安 装 一 个 N F S 文 件 系 统 。
要 明 确 地 安 装 前 一 个 条 目 ,可 以 使 用 下 述 命 令 :
#mount -t nfs -0 time0=20 ant.trek.com:/home/[rpkects/home/richlp

7.4.1NIS
在支持网络的 N F S 中 ,许 多 资 源 和 设 备 被 同 一 个 系 统 所 共 享 。 正 常 情 况 下 ,
每 个 系 统 都 应 有 自 己 对 每 个 设 备 和 资 源 的 设 置 文 件 。 如 果 有 变 动 ,则 需 要 对 每 个
系 统 都 加 以 改 动 。 然 而 N F S 提 供 了 一 种 被 称 为 网 络 信 息 服 务 ( N I S )的 特 殊 服 务 ,
它 可 为 整 个 网 络 维 护 其 设 置 文 件 。 如 果 有 变 动 ,你 只 需 改 变 N IS 文 件 即 可 。 N IS
对 大 部 分 管 理 信 息 所 需 的 信 息 都 是 有 效 的 ,例 如 与 用 户 有 关 的 信 息 ,网 络 或 设 备 的
访 问 。 命 名 ,你 可 以 用 N IS 服 务 来 维 护 密 码 信 息 ,你 只 须 修 改 N IS 的 密 码 文 件 即
可 。
N IS 最 早 是 由 S u n M i c r o s y s t e m 开 发 出 来 的 , 它 开 始 被 称 为 S u n 的 黄 皮 书 。
N IS 文 件 保 存 在 一 个 N I S 服 务 器 上 (N IS 服 务 器 有 时 也 被 称 作 Y P 服 务 器 ) 。 在 网
格 上 的 单 独 的 系 统 利 用 N I S 客 户 来 向 N I S 服 务 器 发 送 请 求 。 N IS 服 务 器 把 它 的
信 息 存 在 一 个 叫 作 m a p s 的 特 殊 的 数 据 库 文 件 中 。 现 在 有 N IS 客 户 端 和 服 务 器
端 的 L i n u x 版 本 L i n u x 的 N I S 客 户 很 容 易 地 就 可 以 连 接 到 使 用 N IS 的 网 络 上 。
你 的 C D - R O M 中 有 L i n u x 的 客 户 端 和 服 务 器 端 ,它 们 在 R P M 包 中 被 作 为 缺
省 选 项 进 行 了 安 装 。 N IS 的 客 户 端 是 作 为 初 始 的 O p e n L i n u x 安 装 的 一 部 分 来 进
行 安 装 的 ,你 在 任 何 时 候 都 可 以 用 L i s a 来 设 置 你 的 N IS 客 户 端 。 N I S 的 客 户 端
程 序 是 ypbind(NIS 客 户 端 的 daemon)ypwhich,ypcat,yppoll,ypmatch,yppasswd
和 y p s e t。 每 一 个 都 有 列 着 自 己 的 详 细 使 用 方 法 的 m a n 页 ,N IS 的 服 务 器 程 序 有
ypserv,ypinit,yppasswdd,yppush,ypxfr 和 n e t g r o u p— — 每 一 个 都 有 自 己 的 m a n
页 。 在 / u s n / d o c / H O W T O 目 录 中 可 以 找 到 一 上 详 细 的 N IS — — H O W T O 文 档 。
7.5 档 案 文 件 和 设 备 :tar

tar 实 用 工 具 可 为 文 件 和 目 录 创 建 档 案 。 利 用 tar,你 可 以 为 某 一 特 定 文 件 创
建 档 案 ,在 档 案 中 改 变 文 件 ,或 者 向 档 案 中 加 入 新 的 文 件 ,只 要 你 愿 意 。 你 甚 至 可
以 为 目 录 以 及 其 中 的 文 体 和 子 目 录 创 建 档 案 ,然 后 在 必 要 的 时 候 恢 复 。 t a r 最 早
是 被 开 发 用 来 在 磁 带 上 创 建 档 案 。 名 词 ”t a r”代 表 的 是 磁 带 档 案 ( t a p e a r c h i v e ) , 你
可 以 在 任 何 设 备 上 创 建 档 案 ,如 软 盘 ,你 也 可 以 创 建 另 一 个 档 案 文 件 包 含 一 个 档 案
文 件 。 对 于 备 份 文 件 或 看 将 几 个 文 件 组 合 成 为 一 个 文 件 以 便 于 网 络 传 输 而 言 ,tar
是 一个非常理想的实用工具。
在 Linux 中 ,tar 通 常 被 用 来 在 设 备 或 文 件 上 创 建 档 案 。 利 用 F 选 项 和 设 备 或
文 件 的 名 字 ,你 可 以 指 示 t a r 命 令 将 档 案 置 于 特 定 的 设 备 或 文 件 中 。 利 用 t a r 命 令
和 F 选项的语法如下例子如下例所示。设备或文件名通常被引用作档案文件中。
当 为 t a r 的 档 案 创 建 一 个 文 件 时 ,这 个 文 件 名 的 扩 展 通 常 是 如 果 你 指 定 了 一 个 目
录 名 ,那 么 它 所 的 子 目 录 都 会 被 包 含 在 档 案 之 中 。
$ tar opionsf archive-name.tar directory-and-filenames
要 创 建 一 个 档 案 , 应 使 用 C 选 项 。 与 F 选 项 一 起 ,C 选 项 会 在 设 备 或 文 件 中
创 建 档 案 。 你 应 在 F 选 项 的 左 边 输 入 这 一 选 项 。 注 意 在 tar 命 令 的 选 项 前 面 没
有 横 线 。 表 7 - 1 0 列 出 了 t a r 的 不 同 选 项 。 在 下 一 个 例 子 中 ,目 录 m y d i r 和 它 所 有
的 子 目 录 都 被 存 入 文 件 myarch.tar 中 。
$ tar cf m yarch.tar mydir
用 户 然 后 可 以 利 用 x 选 项 将 目 录 由 磁 带 中 恢 复 。 xf 选 项 将 从 一 个 档 案 文 件
或 设 备 进 行 恢 复 。 t a r 命 令 的 恢 复 操 作 也 会 产 生 它 所 有 的 子 目 录 ,在 下 一 个 例 子
中 ,xf 选 项 指 示 tar 命 令 从 tar 文 件 m yarch.tar 中 恢 复 所 有 的 文 件 和 子 目 录 。
$ tar xf m yarch.tar
你可以用 r 选项向一个已经被创建的档案中添加文件。r 选项将文件添加到
档 案 的 末 尾 。 在 下 一 个 例 子 中 , 用 户 将 Letters 目 录 中 的 文 件 添 加 到 档 案
mgarch.tar 中 。
$ tar rf m y a r c h . t a r Letters
如 果 你 想 要 改 动 那 么 已 经 存 档 的 目 录 中 的 文 个 ,你 可 以 使 用 u 选 项 使 t a r 更
新 档 案 中 的 文 件 。 tar 比 较 每 一 个 档 案 文 件 与 相 应 用 户 目 录 中 文 件 最 近 一 次 被 修
改 的 时 间 ,然 后 将 上 一 次 存 档 这 后 又 被 修 改 过 的 文 件 拷 贝 到 档 案 文 件 中 去 。 在 用
户 目 录 中 新 创 建 的 文 件 也 会 被 添 加 到 档 案 文 件 中 。在 下 一 个 例 子 中 , 用 户 用 m y d i r
目 录 中 最 近 被 修 改 或 添 加 的 文 件 来 对 myarch.tar 文 件 进 行 更 新 。
tar uf myarch.tar mydir
如 果 你 想 查 看 在 一 个 档 案 中 存 贮 着 哪 些 文 件 。 你 可 以 使 用 tar 命 令 和 t 选 项 。
下 一 个 例 子 将 列 出 所 有 存 贮 在 myarch.tar 档 案 中 的 文 件 。
tar tf m yarch.tar
要 将 文 件 备 份 到 一 个 特 定 的 设 备 ,只 须 把 设 备 名 作 为 档 案 。 在 下 一 个 例 子 中 ,
用 户 在 / d e v / f d o 设 备 的 软 盘 中 创 建 了 一 个 档 案 ,并 将 m y d i r 目 录 中 所 有 的 文 件 都
拷贝到档案中。
$ tar cf/dev/fdo m ydir
要 恢 复 设 备 磁 盘 中 的 文 件 ,可 使 用 x f 选 项 :
$ tar xf/dev/fdo
如 果 你 所 备 份 的 文 件 大 小 超 过 设 备 可 用 的 存 贮 器 , 如 软 盘 ,你 可 以 创 建 一 个 使
用 多 个 标 号 的 t a r 档 案 。 M 选 项 指 示 t a r 命 令 提 示 你 使 用 一 个 新 的 存 贮 设 备 ,当
玖 百 的 设 备 已 满 的 时 候 。 当 使 用 M 选 项 向 一 个 软 驱 进 行 存 档 时 ,tar 命 令 在 一 张
软 盘 已 满 的 时 候 会 提 醒 你 再 放 入 一 张 新 的 软 盘 。 这 样 你 就 可 以 把 tar 档 案 存 入
几张磁盘中。
$ tar cmf/dev/fdo mydir
要 恢 复 几 张 盘 中 的 档 案 ,只 要 将 第 一 张 放 入 软 驱 ,然 后 输 入 有 X 和 M 选 项 的 t a r
命令。当必要时你会被提醒放入另外一张软盘。
$ tar xmf/dev/fdo
t a r 操 作 不 会 对 档 案 文 件 实 行 压 缩 操 作 。 如 果 你 想 压 缩 档 案 文 件 ,你 可 以 指 示
t a r 激 活 gzip 实 用 工 具 来 在 存 档 之 前 对 文 件 进 行 压 缩 。 利 用 Z 选 项 ,tar 在 对 文 件
存 档 之 前 首 先 要 使 用 g z i p 来 压 缩 文 件 。当 恢 复 文 件 时 , 同 样 的 Z 选 项 将 激 活 g z i p
对文件解压。
$ tar czf m yarch.tar mydir
记 住 压 缩 档 案 中 的 单 个 文 件 和 整 体 压 缩 档 案 是 不 同 的 。 通 常 ,档 案 文 件 是 为
了 便 于 传 输 而 把 几 个 文 件 组 合 成 为 一 个 t a r 文 件 。 为 了 缩 短 传 输 时 间 ,档 案 应 当
越 小 越 好 。 你 可 以 将 压 缩 可 以 对 之 压 缩 , 减 小 它 的 大 小 ,然 后 传 送 压 缩 后 的 版 本 。
接 收 者 可 以 对 之 解 压 缩 ,然 后 恢 复 t a r 文 件 。 在 t a r 文 件 上 使 用 g z i p 将 会 产 生
有 .tar.gz 扩 展 的 文 件 。 扩 展 . g z 被 加 到 一 个 被 压 缩 的 gzip 文 件 名 之 后 。 下 面 的
例 子 创 建 了 m y a r c h . t a r 的 一 个 压 缩 的 版 本 ,它 又 具 有 了 . g z 的 扩 展 。
$ gzip myarch.tar
$ ls
$ myarch.tar.gz
如 果 你 已 经 指 定 了 一 个 特 定 的 缺 省 设 备 ,比 如 说 磁 带 ,你 希 望 在 上 面 创 建 一 个
档 案 ,你 只 需 要 使 用 t a r ,而 无 须 使 用 f 选 项 和 设 备 或 文 件 名 。 这 对 进 行 你 文 件 的
备 份 是 有 帮 助 的 ,缺 省 设 备 的 名 字 的 名 字 存 在 被 称 为 /etc/default/tar 的 文 件 中 。
在 下 一 个 例 子 中 说 明 了 使 用 缺 省 设 备 的 tar 命 令 的 语 法 。 如 果 你 指 定 了 一 个 目
录 中 ,那 么 它 所 有 的 子 目 录 都 会 被 包 含 在 档 案 中 。
$ tar option directory-and-file-names
在 下 一 个 例 子 中 ,目 录 mydir 和 它 所 有 的 子 目 录 都 被 存 在 缺 省 磁 带 设 备 的一
个 磁带上。
$ tar c mydir
在 下 一 个 例 子 中 ,m y d i r 目 录 和 它 所 有 的 文 件 及 子 目 录 被 从 缺 省 的 磁 带 设备
中 恢复出来并放入用户的工作目录中。
$ tar x mydir

7.5.1XTar
XTar X-Windows 应 用 程 序 可 让 你 使 用 W indows 和 菜 单 来 选 择 tar 档 案 文
件 并 将 之 恢 复 。 你 可 以 在 Xterm 窗 口 中 输 入 命 令 xtar 或 者 从 fvwm 工 作 菜 单 中
选 项 x t a r 。 x t a r 有 三 个 菜 单 : X T a r , O p t i o n s 和 A t t r i b u t e s。 你 首 先 应 使 用 X T a r
菜 单 上 的 O p e n 项 来 选 择 一 个 tar 档 案 文 件 。 这 一 操 作 将 打 开 一 个 窗 口 。 窗 口 中
显 示 了 一 个 目 录 中 的 文 件 ,你 可 以 从 一 个 目 录 移 到 另 一 个 目 录 。 一 旦 你 选 择 了 你
所 希 望 的 t a r 档 案 ,组 成 t a r 档 案 的 所 有 文 件 将 在 主 窗 口 中 列 出 。 利 用 X T a r 你 可
选 择 将 整 个 tar 档 案 恢 处 处 或 者 只 是 恢 复 其 中 的 几 个 文 件 。 要 恢 复 整 个 档 案 ,应
选 择 Xtar 菜 单 中 Unpack All item 选 项 。 这 一 选 项 允 许 你 将 档 案 恢 复 到 一 个 你
指 定 的 目 录 中 。 要 恢 复 某 一 人 单 独 的 文 件 ,你 首 先 要 选 中 这 一 文 件 (你 可 以 使 用
X T a r 菜 单 中 的 S e a r c h 功 能 来 找 到 这 一 文 件 )然 后 选 择 O p t i o n 菜 单 中 Extract item
项 。 选 项 菜 单 中 也 有 一 上 View 项 来 显 示 诸 如 R E A D M E 文 件 之 类 比 较 短 的 文 本
文 件 。 图 7-9 显 示 一 个 显 示 tar.gz 文 件 的 X T a r 程 序 , X T a r 也 可 工 作 于 压 缩 的 档
案 (你 无 须 首 先 将 之 解 压 )。

7.6 文 件 压 缩 :gzip

减小文件的大小有若干个原因。最普遍的两个是减小存贮空间和在通过网
络 传 输 文 件 时 ,减 少 传 输 的 时 间 。g z i p 实 用 工 具 是 用 来 对 文 件 压 缩 和 解 压 的 G N U
实 用 压 缩 工 具 。 要 压 缩 一 个 文 件 ,只 要 输 入 命 令 和 文 件 名 。 这 将 使 用 文 件 的 压 缩
版 本 来 代 替 原 文 件 ,现 在 的 文 件 有 3.gz 扩 展 。
$ gzip mydata
$ ls
mydata.gz
图 7-9XTar 归 档 工 具
要 将 一 个 gzip 文 件 解 压 ,可 使 用 gzip 命 令 和 -d 选 项 或 g u n z i p 命 令 。 这 些 命
令 将 把 有 . g z 扩 展 的 压 缩 文 件 解 压 ,并 用 有 相 同 根 名 的 解 压 版 本 代 替 压 缩 文 件 , 但
是 没 有 了 . g z 扩 展 。当 使 g u n z i p 时 ,你 甚 至 都 有 用 输 入 . g z 扩 展 。g u n z i p 和 g z i p - d
将 假 定 文 件 有 . g z 扩 展 。 表 7 - 1 1 列 出 了 gzip 的 不 同 选 项 。
$ gunzip mydata.gz
$ ls
m ydata
假 定 你 希 望 显 示 或 打 印 一 个 压 缩 文 件 的 内 容 而 不 对 文 件 先 进 解 压 。 Zcat 命
令 将 产 生 文 件 的 一 个 解 压 版 本 并 将 之 发 向 标 准 输 出 。你 然 后 可 以 把 这 个 输 出 定
向 到 打 印 机 或 才 显 示 上 一 实 用 工 具 ,例 如 m o r e 。 原 有 的 文 件 将 保 留 它 原 有 的 压
缩 状态。
$ Zcat mydata.gz /more
你 也 可 以 压 缩 一 个 t a r 档 案 文 件 。 这 将 产 生 有 。 tar.gz 扩 展 的 文 件 ,压 缩 的 档
案 文件通常被用于通过网络传输大文件。
$ gzip myarch.tar
$ ls
myarch.tar.gz
你 可 以 用 tar Z 选 项 激 活 gzip 来 单 独 压 缩 tar 文 件 。 利 用 Z 选 项 ,tar 将 在
把 文 件 置 入 档 案 之 前 首 先 对 文 件 进 行 压 缩 。 然 中 ,如 果 档 案 中 的 文 件 被 用 Z 选 项
压 缩 ,档 案 不 能 被 更 新 ,也 有 能 添 加 文 件 。 所 有 有 文 件 都 必 须 被 同 时 压 缩 并 添 加 。
你 也 可 以 用 c o m p r e s s 和 u n c o m p r e s s 命 令 来 创 建 压 缩 文 件 。它 们 产 生 具 有 . Z
扩 展 的 文 件 ,使 用 不 同 的 压 缩 格 式 。 c o m p r e s s 和 u n c o m p r e s s 使 用 并 不 很 普 遍 ,
但 你 不 时 会 看 到 有 . Z 扩 展 的 文 件 。 你 可 用 u n c o m p r e s s 命 令 来 将 有 .Z 扩 展 的 文
件 解 压 。 g z i p 是 标 准 的 G N U 压 缩 实 用 工 具 ,而 c o m p r e s s 不 是 。
7.7 从 压 缩 的 档 案 中 安 装 软 件 :.tar.gz

Linux 软 件 程 序 可 以 互 联 网 的 不 同 网 业 上 获 得 。 你 可 以 下 载 这 些 软 件 并 将 它
们 安 装 在 自 己 的 系 统 上 。 你 可 用 在 第 1 0 章 中 描 述 的 ftp 来 下 载 文 件 。 文 件 通 常
是 以 压 缩 的 档 案 文 件 下 载 的 。 这 是 用 t a r 命 令 存 档 并 用 gzip 压 缩 的 文 件 。 要 安
装 这 样 的 文 件 ,你 首 先 要 用 g u n z i p 实 用 工 具 将 文 件 解 压 , 然 后 用 t a r 命 令 将 组 成
软 件 包 的 文 件 和 目 录 恢 复 。 你 也 可 以 使 用 gzip -d 来 代 替 gunzip 。 下 一 个 例 子
将 文 件 Spec Te/I.I.tar.gz 解 压 ,并 用 一 个 称 作 SpecTe/I.I.tar 的 解 压 版 本 代 替 它 。
$ Ls
specTe/I.I.tar.gz
$ gunzip s p e c Te/I.I.tar.gz
$ Ls
S p e c Te/I.I.tar
首 先 使 用 tar 和 t 选 项 来 检 查 档 案 的 内 容 。 如 果 第 一 项 是 一 个 目 录 ,这 一 目 录
将 被 创 建 , 然 后 将 恢 复 的 文 件 放 入 其 中 。 如 果 第 一 项 不 是 一 个 目 录 ,你 首 先 应 该 创
建 一 个 目 录 ,然 后 将 档 案 文 件 拷 贝 到 其 中 去 。 然 后 在 这 个 目 录 中 恢 复 文 件 。 如 果
第 一 项 不 是 目 录 ,那 么 文 件 将 被 恢 复 在 现 有 的 目 录 中 。 你 需 求 自 己 创 建 一 个 目 录
来 容纳这些文件。
$ tar tf SpcTelI.I.tar
现 在 你 已 经 准 备 好 从 tar 档 案 中 恢 复 文 件 。 你 可 以 使 用 tar 和 X 选 项 来 恢 复
文 件 ,用 V 选 项 来 在 恢 复 文 件 时 显 示 路 径 名 , 和 F 选 项 后 面 加 档 案 文 件 的 名 字 。
$ tar xvf SpcTelI.I.tar
你 可 将 解 压 和 解 包 命 令 组 合 一 个 t a r 命 令 中 ,在 选 项 表 中 加 入 Z 选 项 , x z v f 。
下一个命令将对档案解压和解包。
$ tar xzvf SpcTelI.I.tar.gz
软件的安装对每个包而言都是不同的。随着安装程序通常有相应的指示。

7.7.1 从 网 点 下 载 压 缩 档 案
许 多 的 跨 平 台 开 发 或 设 计 的 软 件 包 可 能 不 是 R P M 格 式 。 相 反 ,它 们 可 能 被
存 档 并 被 压 缩 。 这 些 文 件 的 文 件 名 可 能 是 以 .tar.gz 或 者 .tar.z 为 扩 展 。 实 际 上 ,
大 部 分 有 R P M 格 式 的 软 件 都 有 相 应 的 . t a r . g z 格 式 。 在 将 文 件 下 载 之 后 ,你 首 先
应 用 g u n z i p 将 之 解 压 ,然 后 用 r a r 命 令 将 之 解 包 。 在 将 文 件 下 载 之 后 ,你 首 先 应
用 g u n z i p 将 之 解 压 ,然 后 用 t a r 命 令 将 之 解 包 。 许 多 R P M 包 中 只 包 含 着 软 件 应
用 程 序 的 二 进 制 版 本 。 如 果 你 想 得 到 应 用 程 序 的 源 代 码 ,你 应 下 载 并 解 包 那 一 软
件的压缩档案文件。
在 下 一 个 例 子 中 ,用 户 用 ftp 连 到 s u n s i t e . u n c . e d u 的 L i n u x 网 点 。 对 于 登 录
的 身 份 , 用 户 输 入 了 匿 名 ,对 于 密 码 , 用 户 输 了 自 己 的 网 址 。 下 载 模 式 可 用 输 入 关
键 词 b i n a r y 设 为 二 进 制 类 型 。 利 用 c d 命 令 ,用 户 进 入 p u b / L i n u x / L i b s / x / x v i e w 目
录 , X v i e w 窗 口 管 理 软 件 就 在 这 一 目 录 中 (见 第 3 章 )。 然 后 g e t 命 令 将 包 下 载 。
C l o s e 命 令 切 断 了 连 接 , q u i t 离 开 ftp 应 用 程 序 。
#ftp sunsite.unc.edu
Connected to sunsite. unc.edu
相 应 的 ,你 也 可 以 用 N e t s c a p e 或 另 一 种 网 络 浏 览 器 来 进 行 访 问 ,直 接 浏 览 并
下 载 软 件 而 无 须 为 ftp 的 命 令 发 愁 。 确 保 要 在 一 个 ftp 站 点 名 之 前 加 入 术 语 ftp ∶
//而 不 是 通 常 的 h t t p ∶ / /。 对 于 S u n s i t e 你 应 输 入 ftp ∶ / / s u n s i t e . u n c . e d u .一 旦 你
选 择 了 你 想 要 的 软 件 ,按 下 s h i f t 键 并 单 击 文 件 以 下 载 。 一 旦 下 载 了 文 件 ,以 Z 或
g Z 为 结 尾 的 文 件 是 必 须 要 被 解 压 的 压 缩 文 件 。 你 可 以 用 gunZip 命 令 和 文 件 名
来解压。
#gunZip Xview-3.2PI.4.bin.tar.gZ
如 果 文 件 以 t a r 结 尾 ,它 是 一 个 必 须 用 t a r 命 充 来 解 包 的 档 案 文 件 。 在 解 压 缩
之 前 ,你 需 要 数 的 档 案 将 被 解 包 到 一 个 它 们 创 建 的 子 目 录 中 去 。 将 组 成 软 件 包 的
文 件 或 档 案 放 于 那 个 子 目 录 中 去 。 例 如 ,xview-3.2p1.4.bin.tar 将 被 解 凶 到 称 为
u s r 的 子 目 录 中 。 要 检 查 一 个 档 案 是 否 会 被 解 包 到 一 个 目 录 中 ,利 用 t a r 和 t 选 项
可以列出它的内容并查看名字的前面是否有一个目录。
如 果 是 那 样 , 目 录 就 将 被 创 建 ,被 恢 复 的 文 件 就 要 被 放 在 目 录 中 。 如 果 没 有 目
录 名 ,你 需 要 先 创 建 一 个 目 录 并 将 档 案 文 件 拷 贝 到 目 录 中 。 然 后 在 该 目 录 中 恢 复
档案。
#tar tf xview-3.2p1.4.bin.tar
现 在 你 作 好 从 tar 档 案 中 恢 复 文 件 的 准 备 了 。 你 可 以 用 tar 和 x 选 项 来 恢 复
文 件 ,用 v 选 项 在 恢 复 文 件 时 显 示 路 径 名 , f 选 项 之 后 是 档 案 文 件 名 。
#tar xvf xview-3.2p1.r.bin.tar
每个软件包的安装可能都是不同的。每一个安装程序都有相应的指示。下
载 的 文 件 中 通 常 有 README 文 件 或 其 它 的 文 档 。 确 保 要 参 照 这 些 文 档 。
7.8 编 译 软 件

许 多 软 件 可 能 是 源 代 码 的 形 式 ,在 你 安 装 之 前 你 需 要 首 先 对 它 进 行 编 译 。 这
一 点 对 于 跨 平 台 应 用 程 序 而 言 是 事 实 。设 计 为 在 不 同 的 U n ix 系 统 , 如 s u n 和 L i n u x
系 统中运行的程序通常被分散为源代码以下载。并在不同的系统中加以编译。
编 译 这 些 软 件 的 任 务 最 近 由 于 设 置 脚 本 的 使 用 最 近 已 经 大 为 简 化 ,它 将 检 测 一 个
系 统 的 设 置 并 相 应 地 编 译 程 序 。例 如 , 在 一 个 系 统 中 的 C 编 译 器 可 能 是 g c c 或 c c 0
设 置脚本将检测存在哪些东西并用它来编译程序。
在 你 编 译 软 件 之 前 ,你 首 先 应 阅 读 它 所 带 的 R E A D M E 和 I N S T A L L 文 件 。 它
会 给 于 编 译 和 安 装 这 一 程 序 的 详 细 的 指 示 。 如 果 软 件 使 用 了 设 置 角 本 ,那 么 编 译
和 安装通常只包括下面三个简单的命令:
#./configure
#make
#make install
・ /configure 命 令 执 行 了 设 置 检 测 的 操 作 。 m a k e 命 令 执 行 实 际 的 编 译 操 作 ,
利 用 前 一 个 操 作 产 生 的 编 译 文 件 脚 本 。m a k e i n s t a l l 将 把 程 序 安 装 在 你 的 系 统 上 ,
将 可 执 行 文 件 存 在 如 / u s r / l o c a l / b i n 的 目 录 上 ,并 将 任 何 的 设 置 文 件 放 在 / e t c 目 录
中 。 它 所 创 建 的 任 何 共 享 的 目 录 都 可 能 放 在 /usr/lib 目 录 中 。
如 果 你 要 编 译 一 个 基 于 X - W i n d o w 的 程 序 ,要 确 保 X 1 1 开 发 库 已 经 被 它 装
好 。 如 果 在 安 装 O p e n L i n u x 系 统 时 你 选 择 了 标 准 安 装 ,这 些 库 不 会 被 安 装 你 需
要 用 Lisag 和 lint 对 之 进 行 安 装 。
要 保 证 x m k m f 程 序 也 已 被 安 装 。 查 询 2 1 章 关 于 X-W indow 程 序 更 多 的 信
息 。 许 多 X - W i n d o w 应 用 程 序 可 能 需 要 特 殊 的 共 享 库 。 例 如 ,一 些 应 用 程 序 可 能
需 要 xform 库 或 gt 库 。 其 中 一 些 库 你 需 要 从 网 点 上 取 得 。 例 如 ,gt 库 在
w w w . t r o l l . n o 上 ,尽 管 g t 和 x f o r m s 的 R P M 版 本 都 在 R e d h a t 的 c o n t r i b 目 录 。
许 多 X-Window 应 用 程 序 利 用 xmkmf 代 替 一 个 设 置 角 本 来 产 生 所 需 的 。
m a k e f i l e 。 在 这 种 情 况 下 ,你 只 需 在 ・ / c o n f i g u r e 的 位 置 上 输 入 x i m k m f 命 令 即 可 。
一 定 要 参 考 软 件 的 R E A D M E 或 IN S T A L L 文 件 。 通 常 ,你 只 需 在 包 含 软 件 源 代 码
的目录中执行下述命令即可。
xmkmf
make
make install
确 保 要 检 查 这 些 软 件 的 文 档 来 检 查 你 是 否 要 对 makefile 做 任 何 的 改 动 。 可
能 会 有 几 个 改 动 ,但 更 加 详 细 的 改 动 需 要 有 对 C 语 言 的 理 解 以 及 m a k e 是 如 何 跟
它 一 起 工 作 的 。 如 果 你 成 功 的 设 置 了 m a k e f i l e ,你 只 需 输 入 m a k e 和 m a k e i n s t a l l
操 作 即 可 。 例 如 ,许 多 在 s u n s i t e . u n c . e d u 网 点 的 / p u b L i n u x / g a m e s 目 录 中 的 游
戏 可 能 需 要 对 makefile 作 一 些 修 改 。 一 个 可 能 的 问 题 是 定 位 C 和 X - W i n d o w s
的 开 发 库 。 X - W i n d o w s 库 在 /usr/XllR6/lib 目 录 中 。 标 准 C 库 在 /usr/lib 目 录 中 。

7.9 m tools 实 用 工 具 :m s d o s

你 的 Linux 系 统 提 供 了 一 套 被 称 为 m tools 的 实 用 工 具 ,它 们 可 让 你 轻 易 地 访
问 格 式 化 为 MS-DOS 的 软 盘 。 不 再 需 要 进 行 如 安 装 等 一 些 特 殊 的 操 作 。 利 用
m t o o l s ,你 不 用 安 装 一 个 M S - D O S 便 可 对 它 进 行 访 问 。 对 一 个 M S - D O S 的 软 盘 ,
只 要 把 软 盘 放 在 软 驱 中 ,你 就 可 以 用 m t o o l 命 令 来 访 问 软 盘 上 的 文 件 。 例 如 ,要 把
一 个 文 件 从 M S - D O S 的 软 盘 拷 贝 到 你 的 L i n u x 系 统 中 ,可 以 用 m c o p y 命 令 。 你
可 以 用 a : 代 表 A 驱 动 器 来 指 定 M S - D O S 盘 。 与 通 常 的 D O S 路 径 名 不 同 ,m t o o l
命 令 使 用 的 路 径 名 用 斜 杠 来 代 替 反 斜 杠 。 在 A 驱 动 器 中 的 doc 目 录 将 用 路 径 为
a : / d o c s 来 引 用 ,而 不 是 a : / d o c s 下 一 个 例 子 将 文 件 m y d a t a 拷 贝 到 M S - D O S 盘
中 ,并 将 M S - D O S 盘 中 的 p r e f a c e 文 件 拷 贝 到 现 在 的 L i n u x 目 录 中 。注 意 与 D O S
不 同 ,m t o o l s 用 斜 杠 而 不 用 反 斜 杠 。
$mcopy mydata a:
$mcopy a:/preface
你 可 以 用 mdir 命 令 来 对 M S - D O S 命 令 都 可 以 通 过 m tol 操 作 获 得 。 你 可 以
用 m m d 命 令 创 建 M S - D O S 你 可 以 用 m d ir 命 令 来 对 M S -D O S 盘 上 的 文 件 列 表 ,
你 还 可 以 用 mcd 命 令 在 上 面 更 换 目 录 。 下 一 个 例 子 列 出 了 你 的 软 驱 中 M S D O S
磁 盘 中 的 文 件 ,然 后 又 进 入 那 个 驱 动 器 的 d o c s 目 录 。
$ mdir a:
$ mcd a:/docs
大 部 分 的 标 准 MS-DOS 命 令 都 可 以 通 过 mtool 操 作 获 得 。 你 可 以 用 m m d
命 令 创 建 M S - D O S 目 录 ,用 m d e l 删 除 M S - D O S 文 件 。 表 7 - 1 2 列 出 了 m t o o l 命
令 的 一 个 列 表 。 例 如 ,要 显 示 驱 动 器 b : , 一 个 M S - D O S 与 1 / 4 英 寸 软 驱 ,中 的 一 个
文 件 ,可 使 用 m t y p e 命 令 和 b : 再 加 上 文 件 名 。
$ mtype b:/readme
对 M S - D O S 分 区 的 访 问 是 在 /etc/mtools.conf 文 件 中 设 置 的 。 这 一 文 件 列 出
了 几 个 不 同 的 缺 省 MS-DOS 分 区 和 磁 盘 驱 动 器 。 每 一 个 驱 动 器 或 分 区 电 一 个 特
殊 的 设 备 名 来 标 识 。 你 的 软 驱 的 项 已 经 被 输 入 ,利 用 设 备 名 / d e v / f d o 和 / d e v / f d l 来
代 表 第 一 个 和 第 二 个 软 驱 。 在 /etc/mtoo/s.conf 文 件 中 的 项 采 用 了 下 面 的 形 式 :首
先 是 驱 动 器 的 标 是 , 其 次 是 名 词 file 和 等 号 ,然 后 是 你 想 用 这 一 标 号 来 标 识 的 分 区
或 驱 动 器 的 设 备 名 。设 备 名 初 放 在 引 号 中 。例 如 ,第 一 个 硬 盘 分 区 是 一 个 M S - D O S
分 区 ,设 备 名 为 / d e v / h d a l , 下 面 的 项 将 把 它 标 识 为 M S - D O S 系 统 上 的 c :驱 动 器 。
d r i v e c : f i l e =″ / d e v / h d a l″
你 的 分 区 有 正 确 的 设 备 名 是 很 重 要 的 。 它 们 被 列 在 /etc/frtab 文 件 中 ,可 以 用
根 用 户 桌 面 上 的 f s t o o l 实 用 工 具 来 对 它 浏 览 。 如 果 你 有 一 个 S C S I 硬 盘 分 区 ,这
一 硬 盘 分 区 有 这 样 的 形 式 ,首 先 是 s d ,其 后 是 一 个 标 识 硬 盘 的 字 符 和 代 表 分 区 的
数 字 。 S d a l 指 的 是 S C S I 硬 盘 上 的 第 一 个 分 区 。 ID E 硬 盘 有 h d 的 形 式 , 其 后 是
一 个 字 符 和 一 个 分 区 的 娄 字 。 h d a l 指 的 是 ID E 硬 盘 的 第 一 个 分 区 。
当 你 第 一 次 安 装 O p e n L i n u x 系 统 ,你 的 / e t c / m t o o l s . c o n f 文 件 将 把 c :驱 设 置
为 指 向 一 个 S C S I 硬 盘 分 区 。 对 I D E 的 硬 盘 分 区 也 有 一 个 设 置 ,不 过 它 被 前 面 所
加 的 # 号 注 释 掉 了 。 如 果 你 有 一 个 ID E 硬 盘 ( 如 大 部 分 用 户 ) ,你 需 要 将 ID E 硬 盘
分 区 项 前 的 # 号 去 掉 ,而 将 # 号 加 在 S C S I 硬 盘 分 区 项 之 前 。 另 外 ,如 果 你 的 ID E
硬 盘 上 的 M S - D O S 分 区 不 是 第 一 个 分 区 ,你 就 需 要 更 改 设 备 名 。 例 如 ,如 果 M S -
D O S 分 区 是 第 二 个 分 区 ,设 备 名 应 是 / d e v / h a d z。 如 果 你 有 几 个 M S - D O S 分 区 ,
你 需 要 为 每 一 个 分 区 如 入 条 目 ,每 个 分 区 赋 一 个 不 同 的 标 号 。 下 一 个 例 子 将 d : 标
号 给 了 一 个 IDE 驱 动 器 的 第 四 个 硬 盘 分 区 。
d r i v e d : f i l e =″ / d e v / h d a 4 ″
/etc/mtools.conf
drive a:file = ″ / d e v / f d o″ e x c l u s i v e
d r i v e a : f i l e = ″ / d e v / f d l″ e x c l u s i v e
#First SCSI hard disk partitton
# d e v i c e c : f i l e =″ / d e v / s d a l″
# F i r s t ID E h a r d d i s k p a r t i t t o n
d r i v e c : f i l e = ″ / d e v / s d a l″
d r i v e c : f i l e = ″ / d e v / s d a l″
#dosemu floppy image
d r i v e m :file= ″ / v a r / c i b / d o s e m u / d i s k i m a g e″
# dosemu hdimage
drive n:file= ″ /var/cib/dosemu/diskimage ″ offset=3840
#Atali ramdisk image
d r i v e o:file= ″ /tm p / a t a r i - r d ″ o f f s e t = 1 3 6
m tools-lower-case=1
一 旦 D O S 硬 盘 分 区 被 设 置 了 ,你 可 以 用 驱 动 器 盘 符 来 从 L i n u x 分 区 中 拷 文 件
或 拷 贝 入 系 统 。 下 一 个 命 令 将 文 件 mydoc.html 拷 到 了 C 分 区 的 webstuff 目 录 ,
并 将 之 更 名 为 m y d o c . h t m .注 意 斜 线 的 使 用 。
$ mcopy mypage.html c:/webstuff/mydoc.htm
因 为 D O S 和 L i n u x 处 理 文 本 文 件 的 新 的 行 是 不 同 的 ,当 把 一 个 D O S 的 文 本
文 件 拷 贝 到 L i n u x 分 区 中 是 你 应 使 用 -t 选 项 。 下 一 个 命 令 将 c:/project 目 录 中 的
mydoc.txt 文 件 拷 贝 到 /newdocs 目 录 中 。
$ mcopy -t c:/project/mydoc.txt/newdocs

7 . 1 0 D O S 和 W i n d o w 仿 真 器 :D O S e m u , W i n e 和 W i l l o w

L i n u x 中 有 仿 真 器 来 使 你 运 行 D O S 和 W i n d o w 程 序 。 这 些 技 术 仍 在 发 展 ,它
们 的 成 功 也 只 是 部 分 的 , 作 为 仿 真 器 ,它 们 比 D O S 和 W i n d o w 运 行 程 序 的 速 度
慢 。 D O S 的 仿 真 器 D O S e m u。 你 可 以 从 你 的 Open Linux 的 C D - R O M 中 对 它
进 行 安 装 。 它 包 括 一 个 在 例 子 目 录 中 叫 作 config.dist 的 示 范 设 置 文 件 。 它 包 含
了 一 长 串 的 设 置 选 项 。 所 有 选 项 前 面 都 用 #注 释 掉 了 。 你 要 把 文 件 拷 贝 到
d o s e m u . c o n f 文 伯 中 。 编 辑 d o s e m u . c o n f 文 件 ,将 适 用 于 你 系 统 中 的 项 前 的 # 号
删掉。文件当中有每节的注释。
要 创 建 一 个 D O S 启 动 盘 , 用 mcopy 命 令 把 command.com,sys.com
emufs.sys,ems.sy.cdrom.sys 和 exitemu.com 文 件 拷 贝 到 盘 中 。 要 运 行 D O S
仿 真 器 ,只 要 在 命 令 行 中 输 入 d o s 。 要 退 出 仿 真 器 , 只 要 输 入 e x i t e m u . d o s - ? 可 列
出 dos 命 令 选 项 。
W i n e 仿 真 器 是 设 计 用 来 运 行 W i n d o w 程 序 的 。 它 仍 处 于 发 展 中 ,并 不 断 有
新 版 本 发 布 。 现 在 它 仍 被 认 为 是 试 验 性 的 。 你 可 以 从
/pub/Linux/ALPHA/Wine/development 目 录 下 载 一 个 版 本 , 网 点 是
sunsite.unc.edu.Window FAQ 提 供 了 详 细 的 信 息 。
W i l l o w 工 具 仓 为 跨 平 台 的 开 发 提 供 了 一 个 W i n d o w A P I。 它 包 括 了 W i l l o w
T w in 库 和 工 具 。 应 用 程 序 可 用 W i n d o w A P I 来 编 写 ,并 用 W i l l o w T w i n 库 来 在 不
同 的 系 统 上 执 行 。 关 行 W in32 和 W indow 应 用 程 序 都 有 支 持 。 W illow Twin 库
在 G N U 的 公 共 授 权 下 可 以 获 得 。 可 查 询 W illow 的 网 点 来 获 取 信 息
(www.willow.com)

7 . 1 1 总 结 :文 件 管 理

你可在文件或目录上设置许可来控制其它用户的访问。一个文件或目录可
被 设 置 为 读 写 或 执 行 。 拥 有 者 ,同 组 用 户 和 其 它 用 户 可 对 文 件 进 行 访 问 。 c h m o d
命 令 可 设 置 这 些 许 可 ,ls 命 令 和 - l 选 项 将 列 出 文 件 , 目 录 和 它 们 现 在 的 许 可 。
不 同 的 存 贮 设 备 都 有 自 己 的 文 件 系 统 ,你 可 以 将 之 安 装 并 访 问 。 你 可 以 访 问
软 盘 , C D R O M 和 硬 盘 分 区 。 你 也 可 以 安 装 M S - D O S 硬 盘 分 区 并 从 Linux 系 统
中 直 接 加 以 访 问 。 将 一 个 文 件 系 统 的 项 放 在 / e t c / f s t a b 文 件 中 ,你 可 以 在 启 动 时 自
动 安 装 文 件 系 统 。 如 果 在 网 络 上 ,你 可 以 安 装 并 访 问 远 地 服 务 器 上 的 文 件 系 统 。
要 传 输 或 备 份 文 件 ,你 可 以 将 之 存 档 并 对 之 压 缩 。 t a r 鸽 令 将 文 件 存 档 ,gZip
命 令 将 文 件 压 缩 。 大 部 分 的 软 件 仓 都 可 由 网 上 获 得 ,它 们 都 被 存 档 并 压 缩 。 它 们
通 常 有 t a r . g Z 的 扩 展 。 你 可 以 下 载 软 件 , 用 g u n Z i p 解 压 ,用 t a r x f 命 令 来 恢 复 档
案 。 你 可 以 用 rpm 命 令 来 安 装 。
表 7-1chmod 命 令 选 项
命令或选项 执 行
chmod 改 变一个文件或目录的许可选项
+ 加 入一个许可
- 去 掉一个许可
= 将 整个许可集赋值
r 设 置一个文件或目录的读许可。一个文件可被显示并打印 一
个 目录可以列出目录中的文件
w 设 置 一 个 文 件 或 目 录 的 写 许 可 。 一 个 文 件 可 被 编 辑 或 删 除 ,一
个 目录可以被删除
x 设 置 文 件 或 目 录 的 执 行 许 可 。 如 果 文 件 是 s h e l l 脚 本 ,它 可 被
作 为程序执行。一个目录可以初改变或进入
u 为 创建文件或目录的用户设置许可
g 为 组群对文件或目录的访问设置许可
o 为 系统上其它的用户对文件或目录的访问设置许可
a 为 拥 有 者 ,组 用 户 或 其 它 用 户 的 访 问 设 置 许 可
s 设 置 用 户 ID 来 组 ID 许 可
t 设 置许可的粘着置位;程序驻留内存
chgrp 改 变一个文件的组
groupname
续表
file n a m e s
chown user 改变文件的所有者
name
filenames
ls-l filename 显示文件及它的许可
ls-ld 列出目录名和它的许可
directory
ls-l 列出一个目录中的所有文件和它们的许可
表 7-2mount 命 令
mount 选 项 描述
-f 伪装一个文件系统的安装。用于检查一个文件系统可否安装
-v V e r b o s e 模 式 。 m o u n t 命 令 显 示 它 所 采 取 动 作 的 描 述 用 -f 选
项 检 查 安 装 文 件 系 统 的 问 题 ,-fv
-w 安 装 一 个 文 件 系 统 ,并 使 之 有 读 和 写 许 可
-r 只按读许可安装文件系统
-n 安 装 一 个 文 件 系 统 而 无 须 在 mstab 文 件 中 加 入 条 目
-t type 指 定 要 安 装 的 文 件 系 统 类 型 。 表 7-6 列 出 了 有 效 的 文 件 系 统
类型
-a 将 /etc/fstab 文 件 列 出 了 文 件 系 统 加 以 安 装
-o option-list 用 一 个 列 表 的 选 项 安 装 文 件 系 统 。 选 项 之 前 以 逗 号 分 隔 ,其
后 是 -o 。 表 7 - 7 有 完 整 的 选 项 列 表 和 m o u n t 命 令 的 m a n 页
表 7-3 用 于 检 查 和 修 复 文 件 系 统 的 fsck 选 项
选项 描述
file-system 指 定 要 检 查 的 文 件 系 统 。利 用 文 件 系 统 的 名 , 如 / d e v / h d a 3
-A 检 查 文 件 /etc/fstab 中 列 出 的 所 有 文 件 系 统
-V V e r b o s e 模 式 ,列 出 fsck 采 取 的 行 动
-t file-system-type 指定要检查的文件系统类型
-a 自动修复
-l 列出文件系统中所有的文件名
-r 在修复系统之前征求确认
-s 在 检 查 文 件 系 统 之 前 列 出 superblock
表 7-4mkfs 选 项
选项 描述
blocks 文 件 系 统 中 的 块 数 目 。 1440 块 代 1.44MB 的 软 盘 空 间
-t file-system- 指 定 要 格 式 化 的 文 件 系 统 类 型 。 缺 少 类 型 为 标 准 的 Linwx
type 类 型 ,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 无 需 储 存 便 退 出 。 如 果 你 犯 了 错 误 ,用 它 来 显 示 f d i s k 对 话
t 选 择一个分区的文件系统的类型
v 验 证分区表
w 将 分区表写入磁盘后退出。此时改变是不可恢复的
x 显 示 高 级 的 fdisk 命 令 。 你 可 以 用 来 设 置 标 的 数 目 ,扇 区 和 头 ,打 印 原
始 数 据 ,改 变 数 据 在 分 区 表 中 的 位 置
表 7-6 文 件 系 统 类 型
类型 描述
m inux M i n u x 文 件 系 统 ,文 件 名 在 3 0 个 字 符 之 内
ext L i n w x 文 件 系 统 的 早 期 版 本 ,现 已 不 在 使 用
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 将 u i d s 和 g i d s 映 射 到 匿 名 用 户 。 对 N F S 输 出 的 公 共 ftp 目
录 news 缓 冲 池 目 录 等 有 用
no-all-squyash 这 是 all-squash 的 对 立 选 项 。 缺 少 设 置
root-squash 将 uid/gido 的 请 求 映 射 到 匿 名 的 uid/gido
no-root-squash 将 root squashing 关 闭 。 不 映 射 uid/gido 的 请 求 。 缺 少 设

anongid 这 些 选 择 明 确 地 设 置 匿 名 帐 号 的 u i d 和 gid
anonuid 这 些 主 要 对 P C / N F S 用 户 有 用 ,这 时 你 希 望 所 有 的 请 求 都 似
乎 来自一 个用户
续表
map-daemon 开 启 动 态 u i d / g i d 映 射 。 在 N F S 请 求 中 的 uid 被 转 换 成 为 相
应的服务器 uids.在 N F S 回 答 中 的
uids 被 用 另 外 一 种 方 法 映 射 。 缺 少 设 置 是 映 射
身 份 ,这 不 会 变 动 u i d s

表 7-9NFS 选 项
选项 描述
rsize=n 当 从 NFS 服 务 器 读 取 文 件 时 NFS 所 使 用 的 字 节 数 。 缺 少 为 1024
字节
wsize=n 当 向 NFS 服 务 器 写 文 件 时 ,NFS 所 使 用 的 字 节 数 。 缺 少 为 1024 字

tim e = n 在时间到后进行第一次重新传输的十分之一秒数缺少值为十分之
七秒
retry=n 在 放 弃 之 前 尝 试 一 个 后 台 NFS 安 装 操 作 的 次 数 。 缺 少 为 10 000

soft 用软安装来安装系统
hard … … 硬 … … … … ,缺 少 设 置
intr 允 许 NFS 打 断 文 件 操 作 并 返 回 调 用 程 序 。 缺 少 为 不 允 许 文 件 操 作
被打断
续表
bg 如 果 第 一 次 安 装 的 尝 试 时 间 到 ,继 续 在 后 台 尝 试 安 装 。 缺 少 是 失 败
而不进行后台安装
tcp 用 TCP 协 议 而 不 用 缺 少 的 UDP 协 议 安 装 NFS 文 件 系 统

表 7-10 文 件 备 份 :tar
命令 执 行
tar options files 将 文 件 备 份 到 磁 带 ,设 备 或 档 案 文 件
tar options f 将 文 件 备 份 到 指 定 为 archive-name filelist 的 文 件 或 设
archive-name 备 上。可以是文件或或目录名选项
filelist
c 创 建 一个新 的 档 案
t 列 出 了一个 档 案 中 所 有 文 件名
r 将 文 件添加 到 一 个 档 案 中
u 用 新 文件和 变 更 的 文 件 更 新档案只添加那些在存档之后
又 被 变更和 档 案 中 不 存 的 文件
w 在 将 每个文 件 存 档 之 前 征 求用户的确认;允许你有选择
地 更 新档案
x 从 档 案中恢 复文件
m 当 从 一个档 案 中 恢 复 文 件 时 ,不 增 加 新 的 时 间 标 签
续表
M 创 建 多 卷 的 档 案 ,以 便 在 几 个 磁 盘 中 存 放
f archive-name 将 磁 带 档 案 存 到 文 件 档 案 名 中 ,而 不 是 缺 少 的 磁 带 设
备 。 当 给 定 档 案 名 时 f 选 项 将 tar 档 案 存 到 此 名 的 文 件

f device-name 将 一 个 t a r 档 案 存 到 诸 如 软 盘 或 磁 带 的 设 备 中 。/ d e v / f d o
是你的软盘的设 备名;缺少设备在
/etc/default/tar-file 中
v 显示存档的每个文件名
z 用 gzip 来 对 文 件 进 行 压 缩 和 解 压

表 7-11gzip 选 项
选项 执行
-c 将文件的压缩版本送往标准输出;所列的每个文件都被单独
进行压缩
-d 将 压 缩 文 件 解 压 ; 同 样 ,你 也 可 以 使 用 g u n z i
$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 在 MS-DOS 盘 和 Linwx 系 统 之 间 进 行 文 件 拷 贝 。 下
filename 面 的 命 令 将 一 个 由 M S -D O S 盘 拷 贝 到 L i n w x 系 统
中 :m c o p y a : / f i l e n a m e d i r e c t o r y - o r - f i l e n a m e
mcd directory-name 在 MS-DOS 文 件 系 统 中 更 换 目 录 。 下 面 列 出 了 你 的
软 驱 中 MS-DOS 盘 中 的 文 件
mdir 列 出 了 你 软 驱 中 MS-DOS 盘 中 的 文 件
mattrib 改 变 一 个 MS-DOS 文 件 的 属 性
mdel filename 删 除 一 个 MS-DOS 文 件
m format 将 一 个 MS-DOS 文 件 系 统 加 入 磁 盘 中
续表
m label 建 一 个卷标
m m d d irectory-name 建 一 个 MS-DOS 目 录
mrd directory-name 删 除 一 个 MS-DOS 目 录
mread filename 低 级 读 ( 拷 贝 ) 一 个 M S - D O S 文 件 到 U n ix
filename
mren filename 将 一 个 MS-DOS 文 件 更 名
filename
mtype filename 显 示 一 个 MS-DOS 文 件 的 内 容
mwrite filename 低 级 读 (拷 贝 ) 一 个 U n i x 文 件 到 M S -D O S
filename

You might also like