第 一 部 分 介 绍 Linux
第 1 章 Linux 操 作 系 统
Linux 是 用 于 像 IBM 兼 容 机 等 带 有 386,486 或 奔 腾 微 处 理 器 的 微 机 上 的 一种 操 作 系 统 ,它 也 有 针 对 DEC A lpha 系 统 ,Macintosh 系 统 ,及 Sun 系 统 的 多 种 版本 。 Linux 是 在 90 年 代 早 期 ,被 Linus Torvald 和 其 它 遍 布 世 界 各 地 的 编 程 人 员共 同 开 发 的 ,作 为 一 种 操 作 系 统 , 它 完 成 了 像 DOS 或 W indows 的 同 样 功 能 。然 而 ,Linux 更 以 灵 活 性 及 有 效 性 而 著 称 。 大 部 分 的 微 机 操 作 系 统 , 像 DOS , 一 直都 是 在 受 限 的 微 机 上 开 发 的 , 仅 最 近 才 变 得 能 在 更 多 种 类 的 机 器 上 使 用 。 像 这 样的 操 作 系 统 需 要 不 断 地 升 级 以 适 应 微 机 硬 件 的 发 展 , 而 Linux 的 开 发 却 是 不 同的 。Linux 是 几 十 年 来 被 用 在 主 机 及 单 机 上 的 ,现 在 已 成 为 工 作 站 首 选 系 统 的 Unix 的 微 机 版 本 。 Linux 使 得 Unix 的 快 速 , 高 效 和 灵 活 性 能 够 用 于 你 的 微 机 , 并 能 更好 地 利 用 个 人 电 脑 所 提 供 的 资 源 。
Linux 以 一 个 好 的 价 钱 完 成 了 一 切 ,它 是 免 费 的 。 不 像 商 用 的 Unix 操 作 系 统 ,
它 是 具 体 由 Free Software Fundation 在 公 共 许 可 下 免 费 分 配 的 ,任 何 人 都 可 以免 费 来 获 得 它 。 Linux 是 有 版 权 的 ,并 不 是 一 个 公 共 的 财 产 ,然 而 ,GNU 公 共 许 可和 公 共 财 产 几 乎 是 同 样 的 效 果 。 这 个 使 用 许 可 使 得 Linux 保 持 了 免 费 , 同 时 又 具有 标 准 化 。 仅 有 一 种 Linux 标 准 。
Linux 是 免 费 的 事 实 有 时 给 人 一 种 误 解 :Linux 不 完 全 是 一 个 专 业 的 操 作 系 统 , 而 事 实 上 ,Linux 是 Unix 的 PC 版 本 ,正 确 地 评 价 Linux ,你 应 该 了 解 Unix 操 作 系统 发 展 的 特 殊 环 境 ,Unix 不 像 大 部 分 其 它 操 作 系 统 。 是 在 一 个 科 研 和 学 术 的 环 境下 开 发 出 来 。 在 大 学 和 实 验 室 里 ,Unix 是 可 选 择 的 系 统 ,在 过 去 几 十 年 里 ,Unix 的发 展 和 整 个 计 算 机 及 通 讯 的 革 命 相 一 致 。 计 算 机 专 业 人 员 经 常 用 Unix 开 发 新 的计 算 机 科 技 。例 如 为 Internet 的 开 发 。尽 管 它 是 一 个 高 科 技 的 系 统 , 从 一 开 始 ,Unix 就 被 设 计 成 非 常 灵 活 的 系 统 。 Unix 系 统 本 身 可 以 被 容 易 地 修 改 产 生 不 同 的 版 本 。事 实 上 , 许 多 厂 商 坚 持 Unix 的 商 业 版 本 ,IBM,SUN 和 HP 都 销 售 并 坚 持 它 们 自 己的 Unix 版 本 ,满 足 他 们 自 己 的 特 殊 需 要 。 Un ix 系 统 在 设 计 上 的 可 继 承 的 灵 活 性从 不 减 弱 它 的 质 量 , 事 实 上 , 正 是 它 的 多 重 版 本 , 使 它 可 以 适 应 任 何 实 用 的 环境 ,Linux 就 是 在 这 种 情 况 下 开 发 出 来 的 ,从 这 个 意 义 上 说 ,Linux 是 Unix 的 另 一 版本 - 为 PC 的 版 本 。 由 计 算 机 专 业 人 员 在 科 研 环 境 下 的 开 发 ,反 映 了 Unix 版 本 通常 被 开 发 的 方 法 ,Linux 具 有 公 共 权 限 并 且 是 免 费 的 事 实 反 映 了 在 科 研 机 构 的 开发 人 员 对 公 共 服 务 的 热 心 支 持 。
作 为 对 Linux 的 介 绍 ,这 章 讨 论 了 Linux 作 为 一 种 操 作 系 统 ,Linux 和 Unix 的历 史 和 Linux 的 整 个 设 计 过 程 。 这 章 也 介 绍 了 如 何 更 好 地 使 用 本 书 。 人 们 经 常带 着 不 同 背 景 开 始 学 Linux ,一 些 特 点 看 上 去 十 分 熟 悉 , 而 另 一 些 会 有 些 不 同 ,无 论你 的 背 景 如 何 ,本 书 通 过 严 谨 的 结 构 提 供 给 读 者 对 Linux 操 作 系 统 的 清 楚 理 解 ,从
而 体 现 出 Linux 的 各 种 不 同 特 点 。
操 作 系 统 和 Linux
-
个 操 作 系 统 是 为 用 户 管 理 硬 件 和 软 件 的 一 个 程 序 , 操 作 系 统 最 初 是 设 计 成执 行 重 复 管 理 硬 件 的 任 务 。 这 些 任 务 集 中 在 文 件 管 理 , 运 行 程 序 和 从 用 户 得 到 命令 。 你 通 过 一 个 用 户 界 面 和 操 作 系 统 相 联 系 ,这 个 用 户 界 面 允 许 操 作 系 统 接 收 来自 用 户 的 中 断 指 令 ,你 只 需 要 发 送 一 个 指 令 给 操 作 系 统 ,就 可 完 成 像 阅 读 一 个 文 件或 打 印 一 份 文 件 等 的 任 务 。 一 个 操 作 系 统 的 用 户 界 面 可 以 用 只 输 入 命 令 行 一 样简 单 ,也 可 以 用 选 择 菜 单 和 图 标 一 样 复 杂 。
-
个 操 作 系 统 也 管 理 软 件 应 用 程 序 ,去 执 行 像 编 辑 文 件
或 计 算 等 不 同 的 任 务 ,
你 需 要 专 门 的 应 用 程 序 。 一 个 编 辑 器 是 一 个 应 用 程 序 的 例 子 。 一 个 编 辑 器 允 许你 去 编 辑 一 个 文 件 ,改 变 或 增 加 新 的 文 本 。 这 个 编 辑 器 本 身 是 一 个 由 计 算 机 可 执行 的 指 令 所 组 成 的 程 序 。 为 了 应 用 这 个 程 序 ,必 须 把 它 装 进 内 存 ,然 后 它 的 指 令 被执 行 。 操 作 系 统 控 制 了 所 有 程 序 的 装 入 和 执 行 ,包 括 所 有 应 用 程 序 。 当 你 打 算 用一 个 编 辑 器 时 ,只 要 简 单 地 指 示 操 作 系 统 去 装 入 编 程 器 应 用 程 序 并 执 行 它 。
文 件 管 理 , 程 序 管 理 和 用 户 交 互 是 所 有 操 作 系 统 传 统 的 共 性 。 Linux 像 所 有Unix 的 版 本 一 样 , 增 加 了 两 个 特 点 , 是 一 个 多 用 户 和 多 任 务 的 系 统 。 作 为 一 个 多任 务 系 统 ,你 可 以 要 求 系 统 同 时 执 行 多 个 任 务 ,例 如 , 当 其 它 文 件 被 打 印 时 , 你 可 以编 辑 另 一 个 文 件 , 你 编 辑 之 前 , 不 用 等 打 印 工 作 被 完 成 。 作 为 一 个 多 用 户 系 统 , 几个 用 户 可 以 同 时 注 册 在 一 个 系 统 中 ,每 个 用 户 通 过 终 端 和 系 统 相 连 。
操 作 系 统 最 初 是 为 有 效 地 支 持 硬 件 而 设 计 的 , 当 计 算 机 首 先 发 展 了 , 他 们 可 能会 受 操 作 系 统 的 限 制 。 操 作 系 统 必 须 能 实 现 计 算 机 的 绝 大 部 分 资 源 ,所 以 操 作 系统 是 为 硬 件 , 并 非 为 用 户 设 计 的 , 操 作 系 统 倾 向 于 呆 板 , 不 灵 活 , 使 用 户 必 须 适 应 硬件 效 率 的 要 求 。
而 Linux, 因 为 来 源 于 Unix ,所 以 被 设 计 的 很 灵 活 ,做 为 Unix 的 一 个 版 本 ,Linux 和 Unix 享 有 同 样 的 灵 活 性 。 其 灵 活 性 来 源 于 Un ix 的 早 期 设 计 。 在 六 十 年 代 末和 七 十 年 代 初 Unix 操 作 系 统 被 工 作 在 AT&T 贝 尔 实 验 室 的 Ken Thompson 开发 出 来 。 它 结 合 了 许 多 操 作 系 统 设 计 方 面 的 新 发 展 , 开 始 ,Un ix 被 设 计 成 为 研 究人 员 的 操 作 系 统 ,一 个 主 要 目 标 是 去 产 生 一 个 能 支 持 科 研 人 员 变 换 要 求 的 系 统 。为 了 做 到 这 一 点 ,Thompson 必 须 设 计 能 处 理 许 多 不 同 种 类 任 务 的 操 作 系 统 ,灵 活性 变 得 比 硬 件 效 率 更 重 要 。 像 Unix 一 样 ,Linux 已 经 能 处 理 用 户 可 能 面 临 的 各 种任 务 。
这 个 灵 活 性 允 许 Linux 成 为 和 用 户 相 通 的 操 作 系 统 ,用 户 不 受 与 操 作 系 统 呆板 联 系 的 限 制 。 取 而 代 之 , 操 作 系 统 成 为 了 提 供 用 户 能 利 用 的 一 套 高 效 工 具 ,面 向用 户 的 科 学 含 义 是 你 能 对 系 统 配 置 或 编 程 以 满 足 你 的 特 殊 需 要 。 用 Linux, 操 作系 统 变 成 了 一 种 操 作 环 境 。
Linux 和 Unix 的 历 史
做 为 Unix 的 一 个 版 本 ,Linux 的 历 史 自 然 起 始 于 Un ix,60 年 代 末 期 。 关 于 新的 操 作 系 统 技 术 有 一 个 共 同 的 努 力 。 在 1968 年 ,一 些 来 自 通 用 电 气 公 司 , 贝 尔 实
验 室 和 麻 省 理 工 学 院 的 研 究 人 员 开 发 一 个 名 叫 Multics 的 特 殊 操 作 系 统 的 研 究 项目 。 Mu lticsd 在 多 任 务 文 件 管 理 和 用 户 连 接 中 综 合 了 许 多 新 概 念 。 在 1970 年AT&T 的 贝 尔 实 验 室 研 究 人 员 Dennis Ritchie 和 Ken Tompson, 在 采 用 很 多Multics 特 点 的 基 础 上 开 发 了 Unix 操 作 系 统 。 它 满 足 了 系 统 对 科 研 环 境 的 要 求 , 使 它 运 行 在 小 型 机 上 , 从 它 的 产 生 开 始 ,Unix 是 一 个 有 价 值 的 高 效 多 用 户 和 多 任务 的 操 作 系 统 。
Unix 系 统 在 贝 尔 实 验 室 开 始 变 得 流 行 , 并 且 越 来 越 多 的 研 究 人 员 开 始 使 用
它 ,1973 年 ,Dennis Ritchie 和 Ken Tompson 一 起 为 又 用 C 语 言 为 Un ix 编 写 了程 序 代 码 。 Dennis Ritchie 贝 尔 实 验 室 的 后 起 之 秀 , 开 发 了 C 编 程 语 言 作 为 程 序开 发 的 一 种 灵 活 工 具 ,C 语 言 的 优 点 之 一 是 它 能 够 通 过 一 套 编 程 命 令 直 接 访 问 一台 计 算 机 的 硬 件 结 构 。 到 此 为 止 , 一 个 操 作 系 统 必 须 为 每 一 类 计 算 机 上 用 硬 件 为基 础 的 汇 编 语 言 ,专 门 改 写 C 语 言 允 许 Dennis Ritchie 和 Ken Tompson 写 了 能用 C 编 译 器 在 不 同 计 算 机 上 编 译 的 Unix 操 作 系 统 的 统 一 版 本 ,在 效 率 方 面 ,Un ix 操 作 系 统 变 成 了 可 移 植 的 操 作 系 统 , 能 够 不 必 重 新 编 程 运 行 在 各 种 不 同 的 计 算 机上 。
Unix 从 满 足 个 人 的 需 求 设 计 开 始 ,逐 步 成 长 为 由 许 多 不 同 开 发 商 所 支 持 的 标准 软 件 产 品 如 :Novell 和 IBM ,最 初 ,Unix 被 当 成 科 研 产 品 。 第 一 个 Unix 版 本 是免 费 由 许 多 知 名 大 学 的 计 算 机 系 使 用 的 。 在 1972 年 贝 尔 实 验 室 开 始 发 放 商 业版 本 并 且 给 不 同 的 用 户 授 权 使 用 这 个 系 统 。 使 用 者 之 一 是 加 州 大 学 伯 克 莱 分 校的 计 算 机 系 。 伯 克 莱 给 系 统 增 加 了 许 多 新 的 特 点 , 后 来 成 为 了 标 准 。 1975 年 伯克 莱 由 下 属 部 门 BSD 发 行 了 自 己 的 Unix 版 本 。 Unix 的 BSD 版 本 成 为 AT&T 贝 尔 实 验 室 版 本 的 主 要 竟 争 者 。 而 其 它 的 被 独 立 开 发 出 的 Unix 版 本 也 开 始 萌
生 。
1980 年 微 软 公 司 开 发 了 叫 做 Xenix 的 Unix PC 版 本 。 AT&T 几 个 Unix 的
科 研 版 本 1983 年 , 它 们 发 行 了 第 一 个 商 业 版 本 。 名 叫 SYSTEM 3 后 来 被 成 为 对商 用 软 件 产 品 重 要 支 持 Systen v 所 代 替 。
同 时 Unix 的 BSD 版 本 不 断 发 展 ,在 70 年 代 末 期 ,BSD Unix 成 为 了 国 防 部 的高 科 技 研 究 机 构 所 使 用 的 科 研 项 目 的 基 础 ,其 结 果 , 伯 克 莱 发 行 了 一 个 叫 做 BSD Release 4.2 的 有 效 版 本 。
它 包 括 了 高 级 的 文 件 管 理 和 基 于 TCP/IP 网 络 协 议 的 网 络 特 点 。现在 ,TCP/IP 被 Internet 所 使 用 。 BSD Release 4.2 被 许 多 商 所 采 用 , 例 如 SUN M icrosystem s。
Unix 不 同 版 本 的 出 现 导 致 了 Unix 标 准 的 需 要 ,软 件 开 发 商 不 知 道 他 们 和 程序 运 行 有 哪 个 版 本 上 比 较 适 合 ,到 80 年 代 中 期 , 两 个 竞 争 的 标 准 出 现 了 。 一 个 是基 于 AT&T 的 Unix 版 本 ,另 一 个 是 BSD 版 本 。 在 今 天 的 书 店 里 你 能 发 现 分 别 适用 于 这 两 个 版 本 的 不 同 Unix 书 , 一 些 是 System V Unix, 另 一 些 集 中 在 BSD Unix 。
AT&T 建 立 了 一 个 叫 Unix 系 统 实 验 室 的 新 组 织 , 它 的 作 用 就 是 综 合 Unix 的不 同 版 本 ,集 中 开 发 一 个 标 准 系 统 ,1991 年 ,Un ix 系 统 实 验 室 综 合 了 所 有 System V release3, BSD release 4.3, SUN OS 和 Xenix 的 所 有 特 点 。 发 行 了 System V release 4. 为 了 与 System V release 4 竞 争 , 一 些 其 它 公 司 如 IBM 和 惠 普 建 立 了Open Software Foundation(OSF) 去 产 生 自 己 的 Unix 标 准 版 本 ,继 而 出 现 了 两个 标 准 商 业 版 本 OSF 版 本 和 System release 4 。 1993 年 ,AT&T 把 它 的 Unix 转 卖 给 NOVELL 公 司 。 Unix 系 统 实 验 室 成 为 了 Novell 的 Unix 系 统 小 组 的 一 部
分 。 Novell 发 行 了 基 于 System V release 4 的 自 己 的 Unix 版 本 叫 Unixware, 它可 以 和 Novell 公 司 的 Netware 系 统 相 联 。 SUN 公 司 已 经 把 System V release 4 融 进 了 它 的 SUN 系 统 发 行 了 Solaris 。 两 个 相 互 竞 争 的 Unix 使 用 的 图 形 用 户 界面 ,一 个 叫 Motif, 另 一 个 叫 Openlook 已 经 合 并 为 一 个 新 的 工 作 平 台 标 准 , 叫 做 共同 工 作 平 台 环 境 (CDE )。 通 过 不 断 发 展 ,Unix 保 留 下 来 一 个 大 的 能 有 效 运 行 在 工作 站 和 小 型 机 上 的 操 作 系 统 。 Unix 的 一 些 版 本 主 要 被 设 计 为 工 作 站 环 境 ,SunOS 主 要 是 为 SUN 工 作 站 开 发 的 。 AIX 是 为 IBM 工 作 站 开 发 的 , 然而 ,由 于 PC 变 得更 有 效 , 因 此 开 发 Unix 的 PC 版 本 就 开 始 了 。 Xenix 和 System V/386 是 为 IBM 及 其 兼 容 机 而 设 计 的 Unix 商 业 版 本 。AUX 是 运 行 在 Macintosh 下 的 Un ix 版 本 。Unix 固 有 的 可 移 植 性 使 它 几 乎 能 在 任 何 类 型 的 计 算 机 中 被 找 到 : 工 作 站 , 小 型 机或 者 大 型 机 。 固 有 的 可 移 植 性 使 得 产 生 Un ix 的 PC 版 本 成 为 可 能 。 Linux 是 专门 为 Intel 为 基 础 的 个 人 计 算 机 所 设 计 的 。它 起 源 于 荷 兰 赫 尔 辛 基 大 学 (HELSINKI ) 一 个 计 算 机 系 学 生 Linus Toyvald 的 个 人 研 究 项 目 。 那 时 , 学 生 们 使 用 一 个 强调 不 同 Unix 特 点 的 M inix 程 序 ,M inix 是由 Andrew Tannebaum 教 授 开 发 的 ,广泛 分 布 在 Internet 上 给 全 世 界 的 学 生 使 用 。 Linus 打 算 为 M inix 用 户 产 生 一 个 有效 的 Unix PC 版 本 。 他 称 它 为 Linux 。 1991 年 发 行 了 Linux 0.11 版 本 。 Linux 广 泛 分 布 于 Internet, 后 来 的 几 年 ,其 它 的 编 程 人 员 综 合 现 有 的 标 准 Unix 系 统 中出 现 的 大 部 分 应 用 程 序 和 特 点 修 改 并 增 加 了 它 的 内 容 。 所 有 主 要 的 窗 口 管 理 器已 和 Linux 有 了 接 口 ,Linux 有 所 有 的 Internet 工 具 ,像 ftp,telnet 和 SLIP ,它 也 有整 套 的 程 序 开 发 工 具 ,象 C++ 编 译 器 和 调 试 器 。 虽 然 拥 有 全 部 特 点 ,Linux 操 作 系统 保 持 了 小 ,稳 定 和 快 速 。 在 最 简 单 的 格 式 下 ,它 可 以 运 行 在 仅 4MB 的 内 存 。
尽 管 Linux 是 开 发 在 免 费 的 及 Internet 开 放 环 境 中 , 它 仍 具 有 商 业 Un ix 版 本
的 标 准 , 因 为 前 几 十 年 里 ,Unix 版 的 大 量 出 现 , 电 子 电 气 工 程 协 会 (IEEE )在 美 国 标准 化 协 会 (ANSI) 开 发 了 一 个 独 立 的 Unix 标 准 ,这 个 新 的 ANSI Unix 标 准 被 称 做为 计 算 机 环 境 的 可 移 植 性 操 作 系 统 界 面 (PSOIX )。 这 个 标 准 限 定 了 Unix 系 统 如何 进 行 操 作 ,像 系 统 调 用 有 了 专 门 的 详 述 。 PSOIX 限 制 所 有 Un ix 版 本 必 须 依 赖大 众 标 准 ,现 有 大 部 分 Un ix 和 流 行 版 本 都 是 顺 从 POSIX,Linux 从 一 开 始 就 是 遵循 POSIX 开 发 出 开 的 。
Linux 总 览
像 Unix 一 样 ,Linux 一 般 被 分 成 四 个 主 要 部 分 :内 核 ,Shell, 文 件 结 构 和 实 用 工具 。 内 核 是 运 行 程 序 和 管 理 像 磁 盘 和 打 印 机 等 硬 件 设 备 的 核 心 程 序 。 它 从 用 户那 里 收 到 命 令 并 把 命 令 送 给 内 核 去 执 行 。 文 件 结 构 是 文 件 放 在 磁 盘 等 存 贮 设 备上 的 组 织 方 法 。 文 件 以 目 录 的 形 式 被 组 织 每 个 目 录 可 能 包 含 许 多 子 目 录 , 其 中 有许 多 文 件 。
内 核 ,Shell 和 文 件 结 构 一 起 形 成 了 基 本 的 操 作 系 统 结 构 。 使 用 这 三 个 项 目 , 你 就 可 以 运 行 程 序 , 管 理 文 件 以 及 使 用 系 统 , 另外 ,Linux 还 有 被 称 为 实 用 工 具 的 软件 程 序 , 实 用 工 具 被 认 为 是 一 个 系 统 的 标 准 特 征 。 实 用 工 具 是 专 门 的 程 序 ,像 编 辑器 编 辑 器 交 互 程 序 , 执 行 标 准 的 计 算 操 作 等 , 你 甚 至 可 以 产 生 自 己 的 工 具 。
Shell: Bourne, Korn 和 C-Shell
Shell 提 供 了 用 户 和 内 核 的 界 面 , 它 可 被 描 绘 为 一 个 解 释 器 , 它 解 释 由 用 户 输入 的 命 令 并 送 他 们 到 内 核 , 内 核 界 面 是 非 常 简 单 的 ,通 常 你 输 入 一 个 命 令 然 后 按回 车 键 就 可 完 成 ,你 输 入 命 令 的 一 行 经 常 被 指 定 为 命 令 行 ,你 将 发 现 命 令 行 能 变 得十 分 复 杂 。
代 替 命 令 行 界 面 ,Linux 提 供 了 叫 做 X-Windows 的 图 形 用 户 界 面 (GUI) 。 它有 很 多 供 你 使 用 的 窗 口 管 理 器 ,窗 口 管 理 器 的 操 作 就 像 W indows 和 Mac GUIS, 你 有 窗 口 图 标 和 菜 单 ,所 有 的 管 理 通 过 鼠 标 控 制 。 两 个 流 行 的 窗 口 管 理 器 是 Free Virtual 窗 口 管 理 器 (fvwm )和 Open Look 窗 口 管 理 器 (olwm),Motif 窗 口 管 理 器 也可 获 得 , 但 Motif 是 一 个 有 产 权 的 程 序 , 必 须 分 开 购 买 , 另 外 窗 口 管 理 器 ,你 必 须 使用 文 件 和 程 序 管 理 器 , 有 各 种 文 件 和 程 序 管 理 器 是 可 获 得 的 , 例 如 OpenLinux 提供 了 一 个 高 级 的 文 件 管 理 器 和 程 序 管 理 器 ,可 使 用 图 标 栏 和 目 录 夹 。
尽 管 一 个 窗 口 管 理 器 是 一 个 灵 活 的 管 理 界 面 , 它 真 的 只 是 一 个 Shell 的 界 面 , 窗 口 管 理 可 通 过 它 收 到 的 命 令 到 达 Shell, 实 际 是 Shell 解 释 这 个 命 令 并 送 它 到 内核 。 图 1-1 表 明 了 Shell 到 内 核 和 其 它 系 统 成 员 的 关 系 。
图 1-1 内核 ,Shell 和用户界面
Shell 不 仅 解 释 命 令 ,它 还 提 供 了 一 个 你 可 以 配 置 和 编 程 的 环 境 。 Shell 也有 自 己 的 编 程 语 言 , 它 允 许 你 通 过 复 杂 的 方 法 去 编 写 Linux 命 令 的 程 序 。 Shell
编 程 语 言 具 有 普 通 的 编 程 语 言 很 多 特 点 , 如 循 环 结 构 和 分 支 控 制 结 构 ,你 甚 至 可 以产 生 和 应 用 程 序 一 样 有 效 的 Shell 程 序 。
每 个 Linux 系 统 的 用 户 有 他 或 她 自 己 的 用 户 界 面 或 Shell, 能 满 足 他 们 自 己 专门 的 Shell 需 要 ,从 这 个 意 义 上 说 ,一 个 用 户 的 Shell 不 仅 是 一 个 用 户 控 制 的 操 作环 境 。
几 年 以 来 , 几 种 不 同 的 Shell 被 开 发 出 来 , 当 前 有 三 种 主 要 的Shell:Bourne,Korn ,和 C-Shell, 其 中 Bourne Shell 是 贝 尔 实 验 室 开 发 的 ,C-Shell 是 SUN 公 司 Shell 的 BSD 版 本 ,Korn shell 是 Bourne Shell 的 进 一 步 增 强 。 现在 的 Unix 版 本 , 包 括 Linux 在 内 , 都 包 含 了 三 个 Shell, 允 许 你 去 选 择 所 喜 欢 的Shell,Linux 使 用 这 些 增 强 的 公 共 版 本 。 Bourne Again Shell, TC-Shell 和 Public Doma in Korn Shell 。 当 你 开 始 Linux 系 统 时 ,系 统 设 置 在 Bourne Again Shell 下 , 从 那 里 , 你 能 够 转 换 到 其 他 Shell 。
文 件 结 构 :目 录 和 文 件
在 Linux 系 统 中 ,像 DOS 一 样 ,文 件 由 目 录 结 构 来 组 织 。 然 而 , 不像 DOS 的是 ,你 有 更 多 的 灵 活 性 去 控 制 你 的 文 件 ,整 个 Linux 文 件 系 统 是 一 套 大 的 相 互 关 联的 目 录 。 每 个 目 录 里 面 都 包 含 文 件 ,一 些 目 录 是 系 统 保 留 的 标 准 目 录 ,你 能 为 自 己的 文 件 产 生 自 己 的 目 录 , 也 可 从 容 易 地 把 一 个 目 录 下 的 文 件 移 至 另 一 目 录 下 ,你 甚至 能 移 动 整 个 目 录 并 和 系 统 中 的 其 他 用 户 共 享 目 录 和 文 件 。 用 Linux, 你 可 以 设置 目 录 和 文 件 的 权 限 ,以 便 允 许 和 拒 绝 其 他 人 访 问 他 们 。
实 际 上 ,每 个 用 户 的 目 录 最 终 和 其 他 用 户 的 目 录 相 连 。 目 录 是 以 根 目 录 开 始
被 组 织 的 等 级 树 形 结 构 。 所 有 其 他 的 目 录 最 终 是 由 第 一 个 根 目 录 派 生 出 来 。 图1-2 表 面 了 一 个 树 形 等 级 结 构 的 例 子 。 你 可 以 浏 览 整 个 系 统 , 进 入 任 何 可 以 对 你开 放 的 目 录 。 文 件 结 构 的 相 互 关 联 性 使 分 享 数 据 变 得 容 易 , 几 个 用 户 可 以 访 问 同一 个 文 件 。
根 目 录 是 一 个 当 你 第 一 次 设 置 你 的 Linux 系 统 时 所 使 用 的 特 殊 目 录 Linux 是一 个 多 用 户 系 统 。 操 作 系 统 本 身 的 驻 留 程 序 存 放 在 以 根 目 录 开 始 的 专 用 目 录 中 , 有 时 被 指 定 为 系 统 目 录 , 在 图 1-2 中 那 些 根 目 录 下 的 目 录 就 是 系 统 目 录 :man,bin 和 user 。 其 他 的 系 统 目 录 将 在 第 5 章 中 讨 论 。
图 1-2Linux 的文件和目录结构
实 用 工 具 :编 辑 器 、 过 滤 器 和 交 互 程 序
Linux 包 含 大 量 的 工 具 。 一 些 工 具 执 行 简 单 的 操 作 , 另 一 些 是 带 有 他 们 自 己整 套 命 令 的 复 杂 程 序 , 从 一 开 始 这 些 使 用 工 具 被 分 为 三 类 : 编 辑 器 , 过 滤 器 ,和 交 正程 序 。 当 然 不 是 所 有 的 工 具 适 合 这 三 类 。 有 的 工 具 是 执 行 文 件 操 作 和 程 序 管 理 。
所 有 的 Unix 版 本 中 都 有 一 些 标 准 编 辑 器 可 获 得 。 包 括 :Ed,Ex,Vi 和 Emacs 。Ed 和 Ex 是 行 编 辑 器 ,Vi 和 Emacs 是 全 屏 目 编 辑 器 。 所 有 的 标 准 编 辑 器 都 是 由早 期 不 能 处 理 像 今 天 字 处 理 程 序 中 光 标 移 动 的 机 器 中 发 展 而 来 。 尽 管 Vi 和Emacs 有 全 屏 编 辑 能 力 ,但 他 们 不 能 像 由 鼠 标 驱 动 的 字 处 理 器 一 样 容 易 使 用 。Ed 和 Ex 是 每 次 只 能 显 示 和 编 辑 一 行 的 行 编 辑 器 。 尽 管 有 这 些 限 制 , 但 编 辑 器 的 效率 是 很 高 的 ,他 有 大 量 的 命 令 和 复 杂 的 操 作 相 结 合 。
另 一 套 工 具 最 好 被 描 述 为 过 滤 器 (filter), 一 个 过 滤 器 读 取 从 用 户 文 件 或 其 他 地
方 的 输 入 , 检 查 和 处 理 数 据 然 后 输 出 结 果 。 从 这 个 意 义 上 说 , 他 们 过 滤 经 过 他 们 的数 据 有 不 同 类 型 的 过 滤 器 , 一 些 用 行 编 辑 命 令 输 出 一 个 被 编 辑 的 文 件 。 另 外 的 一个 是 模 式 寻 找 文 件 并 以 这 种 模 式 输 出 部 分 数 据 。 还 有 一 些 执 行 字 处 理 操 作 , 检 测一 个 文 件 中 的 格 式 的 命 令 输 出 一 个 格 式 化 的 文 件 ,过 滤 器 的 输 入 可 以 不 是 一 个 文件 , 它 可 以 是 用 户 从 键 盘 敲 入 的 数 据 , 也 可 以 是 另 一 个 过 滤 器 的 输 出 , 过 滤 器 能 相互 连 接 , 因 此 一 个 过 滤 器 的 输 出 能 成 为 另 一 个 过 滤 器 的 输 入 , 甚 至 你 可 以 编 写 自 己的 过 滤 器 程 序 , 一 个 过 滤 器 编 程 语 言 叫 做 awk, 能 使 你 编 写 自 己 的 过 滤 器 。 Linux 也 有 一 套 允 许 你 和 本 系 统 或 其 他 系 统 用 户 相 交 互 的 工 具 , 作 为 一 个 多 用 户 系 统Linux 必 须 和 所 有 用 户 保 持 联 系 。 显 示 的 基 本 要 求 和 文 件 系 统 的 基 本 互 联 性 使得 电 子 邮 件 系 统 容 易 实 现 。 信 息 可 由 系 统 上 的 不 同 用 户 发 送 和 接 收 ,你 甚 至 可 以一 次 对 多 个 用 户 同 时 广 播 一 个 住 处 或 直 接 与 另 一 个 相 连 进 行 一 个 实 时 对 话 。
Linux 和 Unix 系 统 最 重 要 的 特 点 之 一 是 它 的 多 套 Internet 工 具 ,Internet 是在 Unix 系 统 的 基 础 上 设 计 和 开 发 出 来 的 ,像 ftp 和 telnet 等 Internet 工 具 最 先 实现 于 Unix 和 BSD 版 本 。 Darpanet 是 Internet 的 前 身 ,用 来 联 接 美 国 国 内 各 大学 的 Unix 系统 ,Linux 包 含 了 全 套 的 Internet 工 具 和 他 们 提 供 了 与 Internet 的 直
接 相 连 像 SLIP 网 络 浏 览 器 像 Netscape 都 在 Linux 可 获 得 的 。Internet 上 的 Linux 软 件 和 信 息 资 源 Linux 是 在 Internet 上 通 过 共 同 合 作 开 发 出 来 的 ,没 有 一 家 公 司和 机 构 控 制 Linux 。
Internet 上 的 Linux 软 件 及 信 息 源
当 Linux 用 户 决 定 共 同 完 成 一 个 项 目 的 开 发 就 开 始 进 行 ,当 完 成 以 后 , 软 件 由Internet 上 的 一 个 ftp 地 址 来 发 布 。 任 何 Linux 用 户 可 以 到 达 这 个 网 址 来 下 载 软件 。
软 件 是 你 需 要 编 译 的 源 代 码 形 式 或 执 行 的 二 进 制 代 码 。 软 件 包 通 常 包 括 文件 和 配 置 文 件 ,OpenLinux 使 用 叫 做 Redht Package Manager(RPM )的 专 门 安 装工 具 。 你 能 通 过 一 个 简 单 的 命 令 rpm -i 和 所 有 的 文 件 和 配 置 文 件 去 安 装 RPM 软 件 包 ( 详 见 第 3 章 ) 。 大 部 分 当 前 的 软 件 可 在 RPM 软 件 包 中 获 得 。 在ftp.redhat/com/pub/contrib/i386 中 可 发 现 大 量 的 RPM 软 件 包 。 在 这 儿 , 你 应 该首 先 核 对 你 想 使 用 的 软 件 的 RPM 版 本 , 对于 Linux 软 件 和 文 件 的 主 要 ftp 地 址 之一 是 /pub/Linux 目 录 下 的 Sunsite.unc.edu 。 Homesites 是 Linux 软 件 最 初 被邮 寄 的 地 方 M irror Sites 是 这 些 Homesites 的 复 制 。 ftp.caldera.com 和ftp.redhot.com 包 含 了 Linux 文 件 的 扩 展 档 案 。 表 1-1 列 出 了 不 同 的 ftp 位 置 ,通过 与 网 址 相 联 ,你 可 以 获 得 其 他 的 地 址 。 例 如 Linux 在 Wo rld W ide Wed 中 是 在www.sss.com/limux/resoures/web.htm l。其 中 特 别 有 趣 的 是 Limux Game Tome 中 列 出 了 为 Linux 的 大 部 分 流 行 游 戏 。 在 第 3 章 3-2 表 中 列 出 了 几 个 资 源 网 页 。
大 部 分 LINUX 软 件 具 有 Free Sofeware Foundation 支 持 的 GNU 公 共 权 限下 版 权 ,经 常 被 指 定 为 GNU 软 件 ,GNU 软 件 已 经 证 明 是 可 信 的 且 是 有 效 的 。 许多 Linux 使 用 的 工 具 , 像 C 编 译 器 ,Shell 和 编 辑 器 都 是 GNU 软 件 的 应 用 程 序 。你 将 发 现 你 的 OpenLinux 系 统 上 安 装 GNU C++ 和 Lisp 编 译 器 ,Vi 和 Emacs 编辑 器 Bash 和 Tcsh Shell 以及 Tex 和 Ghostscript 文 件 格 式 器 ,许 多 其 他 的 GNU 软 件 应 用 程 度 也 可 在 Internet 的 不 同 ftp 地 址 上 获 得 。 表 1-2 , 详 细 描 述 了 从Internet 上 下 载 软 件 应 用 程 序 及 安 装 他 们 的 过 程 。
近 来 , 主 要 的 软 件 公 司 ,也 开 始 开 发 他 们 的 最 流 行 应 用 程 序 的 linux 版 本 ,你 可以 从 Internet 的 ftp 地 址 :ftp.caldera.com 来 下 载 它 ,SUN 公 司 的 Java Linux 版本 也 可 从 ftp.Blackcown.org 上 获 得 一 个 Wo rdprefect 的 Linux 版 本 也 可 获 得 。
Linux 支 持 资 料 也 在 Internet 上 开 发 的 , 目 前 大 部 分 支 持 资 料 可 以 从 Internet 的 ftp 地 址 处 下 载 ,一 个 叫 Linux Documentation Project 的 Linux 项 目 由 Matt W elsh 带 领 , 正 在 开 发 一 套 Linux 说 明 , 这 个 资 料 可 由 以 下 URL 获得 :http//sunsite.unc.edu/mdw 这 份 支 持 资 料 包 括 了 用 户 指 导 介 绍 和 管 理 指 导 , 它们 可 以 用 超 文 本 或 文 本 的 格 式 获 得 。 表 1-3 列 出 了 这 些 指 导 ,你 能 发 现 对 于 什 么是 How-To 文 件 的 简 单 解 释 ,How- To 文 件 包 括 如 安 装 打 印 和 电 子 邮 件 等 多 个 方面 。 这 个 文 件 通 常 可 从 /pub/linux/doc/how-to 目 录 下 的 Linux ftp 地 址 处 获 得 。
在 /pub/linux/doc 目 录 下 你 能 发 现 Meta-fao 文 件 包 含 不 同 的 Linux 信 息 位 置的 列 表 , 在 相 同 的 位 置 和 目 录 , 你 也 可 以 下 载 Linux 软 件 图 (LSM), 这 是 当 前 为Linux 所 使 用 的 大 部 分 软 件 的 列 表 。 许 多 软 件 公 司 也 有 提 供 他 们 Linux 应 用 程 序的 网 址 , 这 些 被 列 在 表 1-4 中 。
除 了 ftp 网 址 , 也有 Linux Usenet newsgroups .通 过 互 连 网 ,你 能 登 录 Linux
Newsgroups 去 阅 读 其 他 用 户 的 内 容 并 邮 寄 你 的 信 息 。 有 很 多 的 Linux Newsgroups, 都 是 以 comp.os.linux 开 始 的 , 特 别 能 兴 起 初 学 者 兴 趣 的 是com.os.linux.help, 从 那 里 你 可 以 发 出 问 题 , 表 1-5 列 出 了 在 Usenet 上 的 不 同Linux Newsgroups 。
大 部 分 当 前 的 标 准 Linux 软 件 和 文 件 已 经 包 含 在 你 的 OpenLinux Lite CD- ROM 中 。 How-To 文 件 都 是 以 HTML 格 式 可 获 得 的 ,所 以 你 可 以 用 网 浏 览 器 去看 他 们 , 但是 ,在 将 来 ,你 可 能 必 须 直 接 到 达 Linux 和 Internet 网 址 去 获 得 最 新 的 信息 。
当 前 , 唯 一 处 理 Linux 的 出 版 物 是 Linux Gournal ,你 可 以 从 下 面 的 网 址 获 取关 于 它 的 信 息 :www.sss.com/lg 。 也 可 以 联 系 以 下 地 址 :
Linux Gounal
P.O. BOX 85867 Seattle WA 98145 206-527-3385
Linux 发 行 版 本
尽 管 有 唯 一 的 Linux 标 准 版 本 ,但 有 几 个 不 同 的 发 行 公 司 用 略 有 不 同 的 方 法Linux 包 装 和 Linux 软件 ,每 个 公 司 然 后 用 CD-ROM 发 行 Linux 软 件 包 ,后 来 发行 的 可 能 包 含 程 序 的 最 新 版 本 和 新 软 件 , 其 中 一 些 是Slackware,Rdehat,TAMU,Yggdrasil 和 Infomagic 。 Open Linux Lite CD-Rom
包 含 Caldera 的 完 整 Open Linux Linux 系 统 。 一 些 供 应 部 门 ,像 Calderal 和Redhat 也 用 像 字 处 理 的 商 业 软 件 或 像 Netscape 的 商 用 Internet 服 务 器 包 在 它们 的 系 统 中 。
OpenL inux
OpenLinux Linux Lite 光 盘 包 含 了 Caldera 的 完 全 OpenLiux Linux 系 统 , 并 包 含 所 有 GNU 软 件 包 的 软 件 包 以 及 X-Windows 窗 口 管 理 器 Internet 工具 , 它 是 和 POSIX 相 一 致 的 Caldera 提 供 它 的 免 费 的 OpenLinux 系统 ,光 盘 被指 定 为 ” lite ” , 因 为 Ca ldera 也 提 供 一 些 商 用 的 , 有 产 权 的 软 件 包 , 这 些 软 件 包包 括 一 些 像 W ordperfect, netscape 服 务 器 和 Novell Netware 用 户 等 产 品 , 因此 ,不 是 免 费 的 .详 见 caldera 的 网 址 www.caldera.com 。
总 结
Linux 是 由 Linus Torvald 首 先 开 发 的 , 为 386,486 或 奔 腾 处 理 器 的 PC 系列 使 用 的 一 个 Unix 操 作 系 统 的 版 本 ,Linux 是 以 它 的 高 效 性 和 灵 活 性 而 著 称 , 带 给 你 的 PC 全 部 的 Unix 特 点 ,包 括 多 任 务 ,多 用 户 的 能 力 ,Linux 是 在 GNU 公共 权 限 下 免 费 获 得 的 ,它 是 一 个 符 合 POSIX 标 准 的 操 作 系 统 。
你 的 Linux 软 件 包 不 仅 Linux 操 作 系 统 ,而 且 还 包 括 了 像 编 译 器 编 辑 器 等 的应 用 软 件 。 它 也 包 括 带 有 几 个 窗 口 管 理 器 的 X-Windows 图 形 用 户 界 面 (GUI) 允许 你 用 窗 口 ,图 标 和 菜 单 与 系 统 相 互 交 流 。
Linux 系 统 由 内 核 ,Shell 文 件 结 构 和 实 用 工 具 组 成 ,内 核 是 系 统 的 心 脏 , 它 包含 直 接 管 理 计 算 机 硬 件 的 控 制 程 序 ,Shell 是 用 户 界 面 ,Shell 收 到 来 自 用 户 的 命 令并 把 它 送 入 内 核 去 执 行 。 Shell 能 满 足 个 别 用 户 的 需 要 。 Shell 甚 至 有 自 己 的 编程 语 言 用 于 对 命 令 的 编 辑 。 文 件 结 构 包 括 放 置 文 件 的 目 录 , 目 录 提 供 管 理 文 件 的方 便 途 径 , 你 能 从 一 个 目 录 移 到 另 一 个 目 录 并 且 设 置 权 限 和 其 他 用 户 共 享 其 中 的文 件 。
标 准 的 Linux 系 统 都 有 一 套 叫 做 实 用 工 具 的 程 序 ,实 用 工 具 可 分 三 类 :编 辑 器 , 过 滤 器 , 或 交 互 程 序 , 很 多 编 辑 器 虽 然 效 率 很 高 ,但 使 用 起 来 下 如 现 有 PC 编 辑 器一 样 容 易 , 过 滤 器 是 接 收 数 据 并 产 生 数 据 被 修 改 格 式 的 专 用 工 具 。 交 互 工 具 允 许你 发 送 信 息 或 收 到 来 自 其 他 用 户 的 信 息 。 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 |
Sun's Java Development Kit for Linux(link to m irror sites) |
Applixware Office Suite |
|
W ordPerfect 7 |
|
wplinux.htm |
|
Netscape Web Browser for Linux,Caldera O ffice Suite,StarOffice |
|
Tk/Tcl Products |
|
Linux Commecial Vendors InderLxCommercial.html |
|
Linux Applications and Utilites Page |
|
~blatura/linapps.shtml |
表 1-3Linux 的 参 考 资 料
网 址 |
描 述 |
---|---|
LDP Web site |
|
ftp://wunsite.unc.edu/pub/ |
LDP ftp site |
Linux/docs/linux-doc-project |
|
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) |
Gu 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-4 W eb 网 址
网 址 |
描 述 |
---|---|
Linux Resources Web site |
|
Ca ldera Web site |
|
Redhat Web site |
|
sunsite.unc.edu/mdw |
W eb site for Linux DocumentationProject |
Linux Journal |
|
Linux Organization |
|
Linux International W eb site |
|
Linux European Web site |
|
W eb site for Linux Java |
|
Netscape Web site |
|
Wover Goods for Linux |
|
Linux on the World Wide Web |
表 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 |