嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 第 1 章 Linux 快 速 入 门 本 章 目 标 嵌 入 式 Linux 是 以 Linux 为 基 础 的 操 作 系 统, 只 有 熟 练 使 用 Linux 系 统 之 后, 才 能



Similar documents
Microsoft Word - 第5章.doc

Microsoft Word - 第1章 Linux快速入门

PowerPoint 演示文稿

Microsoft Word - linux命令及建议.doc

本文由筱驀釹贡献

Linux Ubuntu Part Linux Ubuntu Linux UNIX...19 Linux...19 Linux Linux...21 Linux GNU FSF Open So urce.

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

untitled

ebook70-21

投影片 1

投影片 1

Microsoft PowerPoint - lect01.ppt

ebook70-22

Microsoft Word - PS2_linux_guide_cn.doc

lect03.ppt

09 Linux Linux Linux Linux 009.indd /9/4 下午 12:11:10

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd.

投影片 1

ebook35-2

投影片 1

Linux操作系统使用

RTX3.2.0标准版 - 技术白皮书

Unix®t Œ fi z.PDF

Linux服务器构建与运维管理

ebook62-1

<4D F736F F D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

epub 73-5

像 客 样 使 命令行 徐 东

05_資源分享-NFS及NIS.doc

untitled

ebook70-5

untitled

GUN-GPL / / 2003 ABC for Linux

Solaris ( ) Solaris Shell awk gawk vi emacs OK mode 1

ORACLE Enterprise Linux 6.3下ORACLE11g的安装

Abstract arm linux tool-chain root NET-Start! 2

CCNA 3 Module 5 Switching Concepts

.. 3 N

PowerPoint Presentation

ebook71-8

华恒家庭网关方案

Web

Linux 目 录 结 构 与 Windows 将 硬 盘 看 做 C 盘 D 盘 几 个 独 立 的 分 区 不 同,Linux 将 整 个 文 件 系 统 看 做 一 棵 树, 这 棵 树 的 树 根 叫 做 根 目 录, 用 / 表 示 各 个 分 区 通 过 挂 载 (mount) 到 文

Microsoft PowerPoint - 第7章 Linux基本命令

作 業 系 統 簡 介 光 有 電 腦 硬 體, 會 不 容 易 使 用 必 須 要 有 適 當 的 程 式, 才 方 便 操 作 硬 體 衍 生 作 業 系 統 需 求 : 提 供 方 便 使 用 者 執 行 程 式 平 台 有 效 使 用 各 種 電 腦 硬 體 資 源 Jingo C. Lia

第零章、為何要學作業系統

内 容 培 训 目 标 基 础 知 识 常 用 监 控 命 令 在 实 战 中 综 合 运 用 2

前言

第一章:什么是朊务器(1.5学时)

投影片 1

自由軟體教學平台

Pchome

Linux 操作系统课程社区创作

目 录(目录名)

Windows 2000 Server for T100

第 4 章 Linux shell 程序设计 shell UNIX/Linux Linux shell shell if case while for shell Linux Linux 本章主要介绍 Linux shell( 默认是 bash) 的语法结构 变量定义及赋值引用 标点符号 控制语句等

Linux入门基础培训

mannal

Windows 2000 Server for T100

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun

網路安全:理論與實務 第二版

自由軟體教學平台

目 录 Linux Mint 简介... 3 Linux Mint 安装... 6 Linux Mint 桌面初识 软件管理...30 小技巧...40 总结...42

鳥 哥 的 Linux 私 房 菜 -- 檔 案 與 目 錄 管 理 7. 針 對 本 文 的 建 議 : 目 錄 與 路 徑 : 由 前 一 章 節 Linux 的 檔 案 權 限 與 目 錄 配 置 中 約

TCA Linux 相容性認證測試流程步驟

epub 75-1

ebook35-14

Sun Update Connection System Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A


1-1 RedHat Hardware Compatibility List 1-2 RedHat HCL

Linux

01.doc

untitled

Java Desktop System 呂衄盋 2 呂衄说柔

典型自编教材

ebook

自由軟體教學平台

ebook8-30

1

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

一个开放源码的嵌入式仿真环境 ― SkyEye

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

linux_for_campus

Norton Ghost 15.0 安裝操作指南

ebook15-C

硬體安裝與ADSL.doc

untitled

Windows 2000 Server for T100

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

epub 63-3

从上面这个表格中我们可以很明显看到巨大的差异当数据全部缓存到内存中 内存大小会影响所有操作 不管是 SELECT 还是 INSERT/UPDATE/DELETE 操作 INSERT 当往一个随机排序的索引中插入数据的时候会造成随机的读/写 UPDATE/DELETE 当更改数据的时候会导致磁盘的读/

Microsoft Word - 國文.doc

AL-MX200 Series

P4i45GL_GV-R50-CN.p65

Inkscape教學

文 件 系 统 用 于 存 储 文 件 目 录 链 接 及 文 件 相 关 信 息,Linux 文 件 系 统 以 / 为 最 顶 层, 所 有 文 件 和 目 录, 包 括 设 备 信 息 都 在 此 目 录 下 本 章 首 先 介 绍 Linux 文 件 系 统 的 相 关 知 识 点, 如 文

针对多协议环境管理 EMC Celerra

This page left blank intentionally

Transcription:

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 第 1 章 Linux 快 速 入 门 本 章 目 标 嵌 入 式 Linux 是 以 Linux 为 基 础 的 操 作 系 统, 只 有 熟 练 使 用 Linux 系 统 之 后, 才 能 在 嵌 入 式 Linux 开 发 领 域 得 心 应 手 通 过 本 章 的 学 习, 读 者 能 够 掌 握 如 下 内 容 能 够 独 立 安 装 Linux 操 作 系 统 能 够 熟 练 使 用 Linux 系 统 的 基 本 命 令 认 识 Linux 系 统 启 动 过 程 能 够 独 立 在 Linux 系 统 中 安 装 软 件 能 够 独 立 设 置 Linux 环 境 变 量 能 够 独 立 定 制 Linux 服 务

1.1 嵌 入 式 Linux 基 础 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 自 由 开 源 软 件 在 嵌 入 式 应 用 上, 受 到 青 睐,Linux 日 益 成 为 主 流 的 嵌 入 式 操 作 系 统 之 一 随 着 摩 托 罗 拉 手 机 A760 IBM 智 能 型 手 表 WatchPad 夏 普 PDA Zaurus 等 一 款 款 高 性 能 智 能 数 码 产 品 的 出 现, 以 及 Motolola 三 星 MontaVista 飞 利 浦 Nokia IBM SUN 等 众 多 国 际 顶 级 巨 头 的 加 入, 嵌 入 式 Linux 的 队 伍 越 来 越 庞 大 了 目 前, 国 外 不 少 大 学 研 究 机 构 和 知 名 公 司 都 加 入 了 嵌 入 式 Linux 的 开 发 工 作, 成 熟 的 嵌 入 式 Linux 产 品 不 断 涌 现 2004 年 全 球 嵌 入 式 Linux 市 场 规 模 已 达 9150 万 美 元,2005 年 有 1.336 亿 美 元, 2006 年 有 1.653 亿 美 元,2007 年 达 到 2.011 亿 美 元, 每 年 平 均 增 长 30% 究 竟 是 什 么 原 因 让 嵌 入 式 Linux 系 统 发 展 如 此 迅 速 业 界 归 纳 为 三 大 原 因.. 第 一, Linux 在 嵌 入 式 系 统 所 需 的 实 时 性 电 源 管 理 等 核 心 技 术 不 断 发 展 ; 第 二, 国 际 标 准 组 织 ( 如 OSDL CELF 等 ) 持 续 建 立 嵌 入 式 Linux 相 关 标 准, 有 效 解 决 版 本 分 歧 与 兼 容 性 问 题 ; 第 三, 业 界 主 导 组 织 开 发 厂 商 等 不 断 推 出 嵌 入 式 Linux 相 关 开 发 工 具 维 护 系 统 嵌 入 式 Linux 以 年 费 订 阅 方 式 为 主, 与 其 他 的 以 产 品 利 润 为 收 入 方 式 的 嵌 入 式 系 统 不 同, 弹 性 的 捆 绑 销 售 策 略, 助 其 成 功 地 逐 年 提 高 市 场 占 有 率, 从 2004 年 的 46.8% 扩 大 到 2007 年 的 56.4% 国 际 有 名 的 嵌 入 式 Linux 操 作 系 统 提 供 商 Montavista, 收 购 了 PalmSource 的 爱 可 信 和 奇 趣 科 技 等, 加 强 了 对 中 国 市 场 的 投 入, 并 在 整 个 嵌 入 式 操 作 系 统 市 场 中, 占 据 了 重 要 地 位 而 嵌 入 式 操 作 系 统 的 领 先 厂 商, 也 改 变 了 原 来 的 单 一 产 品 路 线, 开 始 推 出 自 己 的 Linux 软 件 产 品, 实 现 两 条 腿 走 路 国 内 的 嵌 入 式 软 件 厂 商 也 以 Linux 为 突 破 口, 纷 纷 开 发 各 种 基 于 Linux 的 操 作 系 统 产 品 这 些 嵌 入 式 Linux 厂 商 已 经 形 成 了 一 个 不 容 忽 视 的 群 体 以 下 就 从 Linux 开 始, 一 层 层 揭 开 嵌 入 式 Linux 的 面 纱 1.1.1 Linux 发 展 概 述 简 单 地 说,Linux 是 指 一 套 免 费 使 用 和 自 由 传 播 的 类 UNIX 操 作 系 统 人 们 通 常 所 说 的 Linux 是 Linus Torvalds 所 写 的 Linux 操 作 系 统 内 核 当 时 的 Linus 还 是 芬 兰 赫 尔 辛 基 大 学 的 一 名 学 生, 他 主 修 的 课 程 中 有 一 门 课 是 操 作 系 统, 而 且 这 门 课 是 专 门 研 究 程 序 的 设 计 和 执 行 最 后 这 门 课 程 提 供 了 一 种 称 为 Minix 的 初 期 UNIX 系 统 Minix 是 一 款 仅 为 教 学 而 设 计 的 操 作 系 统, 而 且 功 能 有 限 因 此, 和 Minix 的 众 多 使 用 者 一 样,Linus 也 希 望 能 给 它 添 加 一 些 功 能 在 之 后 的 几 个 月 里,Linus 根 据 实 际 的 需 要 编 写 了 磁 盘 驱 动 程 序 以 便 下 载 访 问 新 闻 组 的 文 件, 又 编 写 了 个 文 件 系 统 以 便 能 够 阅 读 Minix 文 件 系 统 中 的 文 件 这 样, 当 你 有 了 任 务 切 换, 有 了 文 件 系 统 和 设 备 驱 动 程 序 后, 这 就 是 UNIX, 或 者 至 少 是 其 内 核 于 是,0.0.1 版 本 的 Linux 就 诞 生 了 Linus 从 一 开 始 就 决 定 自 由 传 播 Linux, 他 把 源 代 码 发 布 在 网 上, 于 是, 众 多 的 爱 好 者 和 程 序 员 也 都 通 过 互 联 网 加 入 到 Linux 的 内 核 开 发 工 作 中 这 个 思 想 与 FSF(Free

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 Software Foundation) 资 助 发 起 的 GNU(GNU s Not UNIX) 的 自 由 软 件 精 神 不 谋 而 合 GNU 是 为 了 推 广 自 由 软 件 的 精 神 以 实 现 一 个 自 由 的 操 作 系 统, 然 后 从 应 用 程 序 开 始, 实 现 其 内 核 而 当 时 Linux 的 优 良 性 能 备 受 GNU 的 赏 识, 于 是 GNU 就 决 定 采 用 Linus 及 其 开 发 者 的 内 核 在 他 们 的 共 同 努 力 下,Linux 这 个 完 整 的 操 作 系 统 诞 生 了 其 中 的 程 序 开 发 共 同 遵 守 General Public License(GPL) 协 议, 这 是 最 开 放 也 是 最 严 格 的 许 可 协 议 方 式, 这 个 协 议 规 定 了 源 码 必 须 可 以 无 偿 的 获 取 并 且 修 改 因 此, 从 严 格 意 义 上 说,Linux 应 该 叫 做 GNU/Linux, 其 中 许 多 重 要 的 工 具 如 gcc gdb make emacs 等 都 是 GNU 贡 献 的 这 个 婴 儿 版 的 操 作 系 统 以 平 均 两 星 期 更 新 一 次 的 速 度 迅 速 成 长, 如 今 的 Linux 已 经 有 超 过 250 种 发 行 版 本, 且 可 以 支 持 所 有 体 系 结 构 的 处 理 器, 如 X86 PowerPC ARM Xscale 等, 也 可 以 支 持 带 MMU 或 不 带 MMU 的 处 理 器 到 目 前 为 止, 它 的 内 核 版 本 也 已 经 从 原 先 的 0.0.1 发 展 到 现 在 的 2.6.xx 小 知 识 自 由 软 件 (free software) 中 的 free 并 不 是 指 免 费, 而 是 指 自 由 它 赋 予 使 用 者 4 种 自 由 自 由 之 1: 有 使 用 软 件 的 自 由 自 由 之 2: 有 研 究 该 软 件 如 何 运 作 的 自 由, 并 且 得 以 改 写 该 软 件 来 满 足 使 用 者 自 身 的 需 求 取 得 该 软 件 的 源 码 是 达 成 此 目 的 前 提 自 由 之 3: 有 重 新 散 布 该 软 件 的 自 由, 所 以 每 个 人 都 可 以 藉 由 散 布 自 由 软 件 来 敦 亲 睦 邻 自 由 之 4: 有 改 善 再 利 用 该 软 件 的 自 由, 并 且 可 以 发 表 改 写 版 供 公 众 使 用, 如 此 一 来, 整 个 社 群 都 可 以 受 惠 取 得 该 软 件 的 源 码 是 达 成 此 目 的 前 提 GPL:GPL 协 议 是 GNU 组 织 维 护 的 一 种 版 权 协 议, 遵 守 这 个 协 议 的 软 件 可 以 自 由 地 获 取 查 看 使 用 其 源 代 码 GPL 协 议 是 整 个 开 源 世 界 的 精 神 基 础 Linux 的 内 核 版 本 号 : Linux 内 核 版 本 号 格 式 是 x.y.zz-www, 数 字 x 代 表 版 本 类 型, 数 字 y 为 偶 数 时 是 稳 定 版 本, 为 奇 数 时 是 开 发 版 本, 如 2.0.40 为 稳 定 版 本,2.3.41 为 开 发 版 本, 测 试 版 本 为 3 个 数 字 加 上 测 试 号, 如 2.4.12-rc1 最 新 的 Linux 内 核 版 本 可 从 http://www.kernel.org 上 获 得 1.1.2 Linux 作 为 嵌 入 式 操 作 系 统 的 优 势 从 Linux 系 统 的 发 展 过 程 可 以 看 出,Linux 从 最 开 始 就 是 一 个 开 放 的 系 统, 并 且 它 始 终 遵 循 着 源 代 码 开 放 的 原 则, 它 是 一 个 成 熟 而 稳 定 的 网 络 操 作 系 统, 作 为 嵌 入 式 操 作 系 统 有 如 下 优 势 1. 低 成 本 开 发 系 统 Linux 的 源 码 开 放 性 允 许 任 何 人 获 取 并 修 改 Linux 的 源 码 这 样 一 方 面 大 大 降 低 了 开 发 的 成 本, 另 一 方 面 又 可 以 提 高 开 发 产 品 的 效 率 并 且 还 可 以 在 Linux 社 区 中 获 得 支 持, 用 户 只 需 向 邮 件 列 表 发 一 封 邮 件, 即 可 获 得 作 者 的 支 持

2. 可 应 用 于 多 种 硬 件 平 台 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 Linux 可 支 持 X86 PowerPC ARM Xscale MIPS SH 68K Alpha Sparc 等 多 种 体 系 结 构, 并 且 已 经 被 移 植 到 多 种 硬 件 平 台 这 对 于 经 费 时 间 受 限 制 的 研 究 与 开 发 项 目 是 很 有 吸 引 力 的 Linux 采 用 一 个 统 一 的 框 架 对 硬 件 进 行 管 理, 同 时 从 一 个 硬 件 平 台 到 另 一 个 硬 件 平 台 的 改 动 与 上 层 应 用 无 关 3. 可 定 制 的 内 核 Linux 具 有 独 特 的 内 核 模 块 机 制, 它 可 以 根 据 用 户 的 需 要, 实 时 地 将 某 些 模 块 插 入 到 内 核 中 或 者 从 内 核 中 移 走, 并 能 根 据 嵌 入 式 设 备 的 个 性 需 要 量 体 裁 衣 经 裁 减 的 Linux 内 核 最 小 可 达 到 150KB 以 下, 尤 其 适 合 嵌 入 式 领 域 中 资 源 受 限 的 实 际 情 况 当 前 的 2.6 内 核 加 入 了 许 多 嵌 入 式 友 好 特 性 4. 性 能 优 异 Linux 系 统 内 核 精 简 高 效 并 且 稳 定, 能 够 充 分 发 挥 硬 件 的 功 能, 因 此 它 比 其 他 操 作 系 统 的 运 行 效 率 更 高 在 个 人 计 算 机 上 使 用 Linux, 可 以 将 它 作 为 工 作 站 它 也 非 常 适 合 在 嵌 入 式 领 域 中 应 用, 对 比 其 他 操 作 系 统, 它 占 用 的 资 源 更 少, 运 行 更 稳 定, 速 度 更 快 5. 良 好 的 网 络 支 持 Linux 是 首 先 实 现 TCP/IP 协 议 栈 的 操 作 系 统, 它 的 内 核 结 构 在 网 络 方 面 是 非 常 完 整 的, 并 提 供 了 对 包 括 十 兆 位 百 兆 位 及 千 兆 位 的 以 太 网, 还 有 无 线 网 络 Token ring ( 令 牌 环 ) 和 光 纤 甚 至 卫 星 的 支 持, 这 对 现 在 依 赖 于 网 络 的 嵌 入 式 设 备 来 说 无 疑 是 很 好 的 选 择 1.1.3 Linux 发 行 版 本 由 于 Linux 属 于 GNU 系 统, 而 这 个 系 统 采 用 GPL 协 议, 并 保 证 了 源 代 码 的 公 开, 于 是 众 多 组 织 或 公 司 在 Linux 内 核 源 代 码 的 基 础 上 进 行 了 一 些 必 要 的 修 改 加 工, 然 后 再 开 发 一 些 配 套 的 软 件, 并 把 它 整 合 成 一 个 自 己 的 发 布 版 Linux 除 去 非 商 业 组 织 Debian 开 发 的 Debian GNU/Linux 外, 美 国 的 Red Hat 公 司 发 行 了 Red Hat Linux, 法 国 的 Mandrake 公 司 发 行 了 Mandrake Linux, 德 国 的 SUSE 公 司 发 行 了 SUSE Linux, 国 内 众 多 公 司 也 发 行 了 中 文 版 的 Linux, 如 著 名 的 红 旗 Linux Linux 目 前 已 经 有 超 过 250 个 发 行 版 本 下 面 仅 对 Red Hat Debian Mandrake 等 具 有 代 表 性 的 Linux 发 行 版 本 进 行 介 绍 1.Red Hat 国 内, 乃 至 是 全 世 界 的 Linux 用 户 最 熟 悉 的 发 行 版 想 必 就 是 Red Hat 了 Red Hat 最 早 是 由 Bob Young 和 Marc Ewing 在 1995 年 创 建 的 目 前 Red Hat 分 为 两 个 系 列 : 由 Red Hat 公 司 提 供 收 费 技 术 支 持 和 更 新 的 Red Hat Enterprise Linux(RHEL,Red Hat 的 企 业 版 ), 以 及 由 社 区 开 发 的 免 费 的 桌 面 版 Fedora Core Red Hat 企 业 版 有 3 个 版 本 AS ES 和 WS AS 是 其 中 功 能 最 为 强 大 和 完 善

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 的 版 本 而 正 统 的 桌 面 版 Red Hat 版 本 更 新 早 已 停 止, 最 后 一 版 是 Red Hat 9.0 本 书 就 以 稳 定 性 高 的 RHEL AS 作 为 安 装 实 例 进 行 讲 解 官 方 主 页 :http://www.redhat.com/ 2.Debian 之 所 以 把 Debian 单 独 列 出, 是 因 为 Debian GNU/Linux 是 一 个 非 常 特 殊 的 版 本 在 1993 年, 伊 恩 默 多 克 (Ian Murdock) 发 起 Debian 计 划, 它 的 开 发 模 式 和 Linux 及 其 他 开 放 性 源 代 码 操 作 系 统 的 精 神 一 样, 都 是 由 超 过 800 位 志 愿 者 通 过 互 联 网 合 作 开 发 而 成 的 一 直 以 来,Debian GNU/Linux 被 认 为 是 最 正 宗 的 Linux 发 行 版 本, 而 且 它 是 一 个 完 全 免 费 高 质 量 的 且 与 UNIX 兼 容 的 操 作 系 统 Debian 系 统 分 为 3 个 版 本, 分 别 为 稳 定 版 (Stable) 测 试 版 (Testing) 和 不 稳 定 版 (Unstable) 每 次 发 布 的 版 本 都 是 稳 定 版, 而 测 试 版 在 经 过 一 段 时 间 的 测 试 证 明 没 有 问 题 后 会 成 为 新 的 稳 定 版 Debian 拥 有 超 过 8710 种 不 同 的 软 件, 每 一 种 软 件 都 是 自 由 的, 而 且 有 非 常 方 便 的 升 级 安 装 指 令, 基 本 囊 括 了 用 户 的 所 有 需 要 Debian 也 是 最 受 欢 迎 的 嵌 入 式 Linux 之 一 官 方 主 页 :http://www.debian.org/ 3. 国 内 的 发 行 版 本 及 其 他 目 前 国 内 的 红 旗 新 华 等 都 发 行 了 自 己 的 Linux 版 本 除 了 前 面 所 提 到 的 这 些 版 本 外, 业 界 还 存 在 着 诸 如 gentoo LFS 等 适 合 专 业 人 士 使 用 的 版 本 在 此 不 做 介 绍, 有 兴 趣 的 读 者 可 以 自 行 查 找 相 关 的 资 料 做 进 一 步 的 了 解 1.1.4 如 何 学 习 Linux 正 如 人 们 常 说 的 实 践 出 真 知, 学 习 Linux 的 过 程 也 一 样 只 有 通 过 大 量 的 动 手 实 践 才 能 真 正 地 领 会 Linux 的 精 髓, 才 能 迅 速 掌 握 在 Linux 上 的 应 用 开 发, 相 信 有 编 程 语 言 经 验 的 读 者 一 定 会 认 同 这 一 点 因 此, 在 本 书 中 笔 者 安 排 了 大 量 的 实 验 环 节 和 课 后 实 践 环 节, 希 望 读 者 尽 可 能 多 参 与 另 外 要 指 出 的 是, 互 联 网 也 是 一 个 很 好 的 学 习 工 具, 一 定 要 充 分 地 加 以 利 用 正 如 编 程 一 样, 实 践 的 过 程 中 总 会 出 现 多 种 多 样 的 问 题, 笔 者 在 写 作 的 过 程 当 中 会 尽 可 能 地 考 虑 可 能 出 现 的 问 题, 但 限 于 篇 幅 和 读 者 的 实 际 情 况, 不 可 能 考 虑 到 所 有 可 能 出 现 的 问 题, 所 以 希 望 读 者 能 充 分 利 用 互 联 网 这 一 共 享 的 天 空, 在 其 中 寻 找 答 案 以 下 列 出 了 国 内 的 一 些 Linux 论 坛 : http://www.linuxfans.org http://www.linuxforum.net/ http://www.linuxeden.com/forum/ http://www.newsmth.net

1.2 Linux 安 装 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 有 了 一 个 初 步 的 了 解 后, 读 者 是 否 想 亲 自 试 一 下? 其 实 安 装 Linux 是 一 件 很 容 易 的 事 情, 不 过 在 开 始 安 装 之 前, 还 需 要 了 解 一 下 在 Linux 安 装 过 程 中 可 能 遇 到 的 一 些 基 本 知 识 以 及 它 与 Windows 的 区 别 1.2.1 基 础 概 念 1. 文 件 系 统 分 区 和 挂 载 文 件 系 统 是 指 操 作 系 统 中 与 管 理 文 件 有 关 的 软 件 和 数 据 Linux 的 文 件 系 统 和 Windows 中 的 文 件 系 统 有 很 大 的 区 别,Windows 文 件 系 统 是 以 驱 动 器 的 盘 符 为 基 础 的, 而 且 每 一 个 目 录 与 相 应 的 分 区 对 应, 例 如 E:\workplace 是 指 此 文 件 在 E 盘 这 个 分 区 下 而 Linux 恰 好 相 反, 文 件 系 统 是 一 棵 文 件 树, 且 它 的 所 有 文 件 和 外 部 设 备 ( 如 硬 盘 光 驱 等 ) 都 是 以 文 件 的 形 式 挂 在 这 个 文 件 树 上, 例 如 /usr/local 对 于 Windows 而 言, 就 是 指 所 有 分 区 都 是 在 一 些 目 录 下 总 之, 在 Windows 下, 目 录 结 构 属 于 分 区 ; Linux 下, 分 区 属 于 目 录 结 构 其 关 系 如 图 1.1 和 图 1.2 所 示 系 图 图 1.1 Linux 下 目 录 与 分 区 关 系 图 1.2 Windows 下 目 录 与 分 区 关 因 此, 在 Linux 中 把 每 一 个 分 区 和 某 一 个 目 录 对 应, 以 后 再 对 这 个 目 录 的 操 作 就 是 对 这 个 分 区 的 操 作, 这 样 就 实 现 了 硬 件 管 理 手 段 和 软 件 目 录 管 理 手 段 的 统 一 这 个 把 分 区 和 目 录 对 应 的 过 程 叫 做 挂 载 (Mount), 而 这 个 挂 载 在 文 件 树 中 的 位 置 就 是 挂 载 点 这 种 对 应 关 系 可 以 由 用 户 随 时 中 断 和 改 变 想 一 想 Linux 文 件 系 统 的 挂 载 特 性 给 用 户 能 带 来 怎 样 的 好 处 呢? 2. 主 分 区 扩 展 分 区 和 逻 辑 分 区 硬 盘 分 区 是 针 对 一 个 硬 盘 进 行 操 作 的, 它 可 以 分 为 : 主 分 区 扩 展 分 区 逻 辑 分 区 其 中 主 分 区 就 是 包 含 操 作 系 统 启 动 所 必 需 的 文 件 和 数 据 的 硬 盘 分 区, 要 在 硬 盘 上 安 装 操 作 系 统, 则 该 硬 盘 必 须 要 有 一 个 主 分 区, 而 且 其 主 分 区 的 数 量 可 以 是 1~3 个 ; 扩 展 分 区 也 就 是 除 主 分 区 外 的 分 区, 但 它 不 能 直 接 使 用, 必 须 再 将 它 划 分 为 若 干 个 逻 辑 分 区 才 可 使 用, 其 数 量 可 以 有 0 或 1 个 ; 而 逻 辑 分 区 则 在 数 量 上 没 有 什 么 限 制 它 们 的 关 系 如 图 1.3 所 示 一 般 而 言, 对 于 先 装 了 Windows 的 用 户,Windows 的 C 盘 是 装 在 主 分 区 上 的, 可 以 把 Linux 安 装 在 另 一 个 主 分 区 或 者 扩 展 分 区 上 为 了 安 装 方 便 安 全 起 见, 一 般 采 用 把 Linux 装 在 多 余 的 逻 辑 分 区 上, 如 图 1.4 所 示

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 图 1.3 Linux 下 主 分 区 扩 展 分 区 逻 辑 分 区 示 意 图 图 1.4 Linux 安 装 的 分 区 示 意 图 小 知 识 通 常, 在 Windows 下 的 盘 符 和 Linux 设 备 文 件 的 对 应 关 系 如 下 : C 盘 /dev/hda1( 主 分 区 ) D 盘 /dev/hda5( 逻 辑 分 区 ) E 盘 /dev/hda6( 逻 辑 分 区 ) 3.SWAP 交 换 分 区 在 硬 件 条 件 有 限 的 情 况 下, 为 了 运 行 大 型 的 程 序,Linux 在 硬 盘 上 划 出 一 个 区 域 来 当 作 临 时 的 内 存, 而 Windows 操 作 系 统 把 这 个 区 域 叫 做 虚 拟 内 存,Linux 把 它 叫 做 交 换 分 区 swap 在 安 装 Linux 建 立 交 换 分 区 时, 一 般 将 其 设 为 内 存 大 小 的 2 倍, 当 然 也 可 以 设 为 更 大 4. 分 区 格 式 不 同 的 操 作 系 统 选 择 了 不 同 的 格 式, 同 一 种 操 作 系 统 也 可 能 支 持 多 种 格 式 微 软 公 司 的 Windows 就 选 择 了 FAT32 NTFS 两 种 格 式, 但 是 Windows 不 支 持 Linux 上 常 见 的 分 区 格 式 Linux 是 一 个 开 放 的 操 作 系 统, 它 最 初 使 用 EXT2 格 式, 后 来 使 用 EXT3 格 式, 但 是 它 同 时 支 持 非 常 多 的 分 区 格 式, 包 括 很 多 大 型 机 上 UNIX 使 用 的 XFS 格 式, 也 包 括 微 软 公 司 的 FAT 以 及 NTFS 格 式 5.GRUB GRUB 是 一 种 引 导 装 入 器 ( 类 似 在 嵌 入 式 中 非 常 重 要 的 bootloader), 它 负 责 装 入 内 核 并 引 导 Linux 系 统, 位 于 硬 盘 的 起 始 部 分 由 于 GRUB 多 方 面 的 优 越 性, 如 今 的 Linux 一 般 都 默 认 采 用 GRUB 来 引 导 Linux 操 作 系 统 但 事 实 上 它 还 可 以 引 导 Windows 等 多 种 操 作 系 统 小 知 识 在 安 装 了 Windows 和 Linux 双 系 统 后, 系 统 是 以 Linux 的 GRUB 作 为 引 导 装 入 器 来 选 择 启 动 Windows 或 Linux 的, 因 此, 若 此 时 直 接 在 Windows 下 把 Linux 的 分 区 删 除, 会 导 致 系 统 因 没 有 引 导 装 入 器 而 无 法 启 动 Windows, 这 点 要 格 外 小 心

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 6.root 权 限 Linux 也 是 一 个 多 用 户 的 系 统 ( 在 这 一 点 上 类 似 Windows XP), 不 同 的 用 户 和 用 户 组 会 有 不 同 的 权 限, 其 中 把 具 有 超 级 权 限 的 用 户 称 为 root 用 户 root 的 默 认 主 目 录 在 /root 下, 而 其 他 普 通 用 户 的 目 录 则 在 /home 下 root 的 权 限 极 高, 它 甚 至 可 以 修 改 Linux 的 内 核, 因 此 建 议 初 学 者 要 慎 用 root 权 限, 不 然 一 个 小 小 的 参 数 设 置 错 误 很 有 可 能 导 致 系 统 的 严 重 问 题 1.2.2 硬 件 需 求 Linux 对 硬 件 的 需 求 非 常 低 如 果 要 是 只 想 在 字 符 方 式 下 运 行, 那 么 一 台 386 的 计 算 机 已 经 可 以 用 来 安 装 Linux 了 ; 如 果 想 运 行 X-Windows, 那 也 只 需 要 一 台 16MB 内 存 600MB 硬 盘 的 486 计 算 机 即 可 这 听 起 来 比 那 些 需 要 256MB 内 存 2.0GBHz 的 操 作 系 统 要 好 得 多, 事 实 上 也 正 是 如 此 现 在 软 件 和 硬 件 行 业 的 趋 势 是 让 用 户 购 买 更 快 的 计 算 机, 不 断 扩 充 内 存 和 硬 盘, 而 Linux 却 不 受 这 个 趋 势 的 影 响 随 着 Linux 的 发 展, 由 于 在 其 上 运 行 的 软 件 越 来 越 多, 因 此 它 所 需 要 的 配 置 越 来 越 高, 但 是 用 户 可 以 有 选 择 地 安 装 软 件, 从 而 节 省 资 源 既 可 以 运 行 在 Pentium 4 处 理 器 上, 也 可 以 运 行 在 400MHz 的 Pentium II 上, 甚 至 如 果 用 户 需 要, 也 可 以 在 只 有 文 本 界 面 的 更 低 配 置 的 机 器 上 运 行 由 此 可 见 Linux 非 常 适 合 需 求 各 异 的 嵌 入 式 硬 件 平 台 而 且 Linux 可 以 很 好 地 支 持 标 准 配 件 如 果 用 户 的 计 算 机 是 采 用 标 准 配 件, 那 么 运 行 Linux 应 该 没 有 任 何 问 题 1.2.3 安 装 准 备 在 开 始 安 装 之 前, 首 先 需 要 了 解 一 下 机 器 的 硬 件 配 置, 包 括 以 下 几 个 问 题 (1) 有 几 个 硬 盘, 每 个 硬 盘 的 大 小, 如 果 有 两 个 以 上 的 硬 盘 哪 个 是 主 盘 (2) 内 存 有 多 大 (3) 显 卡 的 厂 家 和 型 号, 有 多 大 的 显 存 (4) 显 示 器 的 厂 家 和 型 号 (5) 鼠 标 的 类 型 如 果 用 户 的 计 算 机 需 要 联 网, 那 么 还 需 要 注 意 以 下 问 题 (1) 计 算 机 的 IP 地 址 子 网 掩 码 网 关 DNS 的 地 址 主 机 名 (2) 有 的 时 候 还 需 要 搞 清 楚 网 卡 的 型 号 和 厂 商 如 果 不 确 定 系 统 对 硬 件 的 兼 容 性, 或 者 想 了 解 Linux 是 否 支 持 一 些 比 较 新 或 不 常 见 的 硬 件, 用 户 可 以 到 http://hardware.redhat.com 和 http://xfree86.org 进 行 查 询 其 次, 用 户 可 以 选 择 从 网 络 安 装 ( 如 果 带 宽 够 大, 笔 者 推 荐 从 商 家 手 中 购 买 Linux 的 安 装 盘, 一 般 会 获 得 相 应 的 产 品 手 册 售 后 服 务 和 众 多 附 赠 的 商 业 软 件 ), 也 可 以 从 他 人 那 里 复 制, 放 心, 这 是 合 法 的, 因 为 Linux 是 免 费 的 如 果 用 户 需 要 获 得 最 新 的, 或 需 要 一 个 不 易 于 购 买 到 的 版 本, 那 么 用 户 可 以 从 http://www.linuxiso.org 下 载 一 个 需 要 的 Linux 版 本 最 后, 应 在 安 装 前 确 认 磁 盘 上 是 否 有 足 够 的 空 间, 一 般 的 发 行 版 本 全 部 安 装 需 要 3GB 左 右, 最 小 安 装 可 以 到 数 十 兆 字 节, 当 然 还 需 要 给 未 来 的 使 用 留 下 足 够 的 空 间

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 如 果 用 户 拥 有 的 是 一 个 已 经 分 区 的 空 闲 空 间, 那 么 可 以 选 择 在 安 装 前 在 Windows 下 删 除 相 应 分 区, 也 可 以 选 择 在 安 装 时 删 除 1.3 Linux 文 件 及 文 件 系 统 在 安 装 完 Linux 之 后, 下 面 先 对 Linux 中 一 些 非 常 重 要 的 概 念 做 一 些 介 绍, 以 便 进 一 步 学 习 使 用 Linux 1.3.1 文 件 类 型 及 文 件 属 性 1. 文 件 类 型 Linux 中 的 文 件 类 型 与 Windows 有 显 著 的 区 别, 其 中 最 显 著 的 区 别 在 于 Linux 对 目 录 和 设 备 都 当 作 文 件 来 进 行 处 理, 这 样 就 简 化 了 对 各 种 不 同 类 型 设 备 的 处 理, 提 高 了 效 率 Linux 中 主 要 的 文 件 类 型 分 为 4 种 : 普 通 文 件 目 录 文 件 链 接 文 件 和 设 备 文 件 (1) 普 通 文 件 普 通 文 件 同 Windows 中 的 文 件 一 样, 是 用 户 日 常 使 用 最 多 的 文 件 它 包 括 文 本 文 件 shell 脚 本 (shell 的 概 念 在 第 2 章 会 进 行 讲 解 ) 二 进 制 的 可 执 行 程 序 和 各 种 类 型 的 数 据 (2) 目 录 文 件 在 Linux 中, 目 录 也 是 文 件, 它 们 包 含 文 件 名 和 子 目 录 名 以 及 指 向 那 些 文 件 和 子 目 录 的 指 针 目 录 文 件 是 Linux 中 存 储 文 件 名 的 惟 一 地 方, 当 把 文 件 和 目 录 相 对 应 起 来 时, 也 就 是 用 指 针 将 其 链 接 起 来 之 后, 就 构 成 了 目 录 文 件 因 此, 在 对 目 录 文 件 进 行 操 作 时, 一 般 不 涉 及 对 文 件 内 容 的 操 作, 而 只 是 对 目 录 名 和 文 件 名 的 对 应 关 系 进 行 操 作 另 外,Linux 系 统 中 的 每 个 文 件 都 被 赋 予 惟 一 的 数 值, 而 这 个 数 值 被 称 作 索 引 节 点 索 引 节 点 存 储 在 一 个 称 作 索 引 节 点 表 (Inode Table) 中, 该 表 在 磁 盘 格 式 化 时 被 分 配 每 个 实 际 的 磁 盘 或 分 区 都 有 自 己 的 索 引 节 点 表 一 个 索 引 节 点 包 含 文 件 的 所 有 信 息, 包 括 磁 盘 上 数 据 的 地 址 和 文 件 类 型 Linux 文 件 系 统 把 索 引 节 点 号 1 赋 予 根 目 录, 这 也 就 是 Linux 的 根 目 录 文 件 在 磁 盘 上 的 地 址 根 目 录 文 件 包 括 文 件 名 目 录 名 及 它 们 各 自 的 索 引 节 点 号 的 列 表,Linux 可 以 通 过 查 找 从 根 目 录 开 始 的 一 个 目 录 链 来 找 到 系 统 中 的 任 何 文 件 Linux 通 过 目 录 链 接 来 实 现 对 整 个 文 件 系 统 的 操 作 比 如, 把 文 件 从 一 个 磁 盘 目 录 移 到 另 一 实 际 磁 盘 的 目 录 时 ( 实 际 上 是 通 过 读 取 索 引 节 点 表 来 检 测 这 种 动 作 的 ), 这 时, 原 先 文 件 的 磁 盘 索 引 号 被 删 除, 在 新 磁 盘 上 建 立 相 应 的 索 引 节 点 它 们 之 间 的 相 应 关 系 如 图 1.5 所 示

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 图 1.5 目 录 文 件 与 索 引 节 点 关 系 (3) 链 接 文 件 链 接 文 件 有 些 类 似 于 Windows 中 的 快 捷 方 式, 但 是 它 的 功 能 更 为 强 大 它 可 以 实 现 对 不 同 的 目 录 文 件 系 统 甚 至 是 不 同 的 机 器 上 的 文 件 直 接 访 问, 并 且 不 必 重 新 占 用 磁 盘 空 间 (4) 设 备 文 件 Linux 把 设 备 都 当 作 文 件 一 样 来 进 行 操 作, 这 样 就 大 大 方 便 了 用 户 的 使 用 ( 在 后 面 的 Linux 编 程 中 可 以 更 为 明 显 地 看 出 ) 在 Linux 下 与 设 备 相 关 的 文 件 一 般 都 在 /dev 目 录 下, 它 包 括 两 种, 一 种 是 块 设 备 文 件, 另 一 种 是 字 符 设 备 文 件 块 设 备 文 件 是 指 数 据 的 读 写, 它 们 是 以 块 ( 如 由 柱 面 和 扇 区 编 址 的 块 ) 为 单 位 的 设 备, 最 简 单 的 如 硬 盘 (/dev/hda1) 等 字 符 设 备 主 要 是 指 串 行 端 口 的 接 口 设 备 2. 文 件 属 性 Linux 中 的 文 件 属 性 如 图 1.6 如 示 图 1.6 Linux 文 件 属 性 表 示 方 法 首 先,Linux 中 文 件 的 拥 有 者 可 以 把 文 件 的 访 问 属 性 设 成 3 种 不 同 的 访 问 权 限 : 可 读 (r) 可 写 (w) 和 可 执 行 (x) 文 件 又 有 3 个 不 同 的 用 户 级 别 : 文 件 拥 有 者 (u) 所 属 的 用 户 组 (g) 和 系 统 里 的 其 他 用 户 (o) 第 一 个 字 符 显 示 文 件 的 类 型 - 表 示 普 通 文 件 d 表 示 目 录 文 件 l 表 示 链 接 文 件 c 表 示 字 符 设 备 b 表 示 块 设 备 p 表 示 命 名 管 道, 比 如 FIFO 文 件 (First In First Out, 先 进 先 出 ) f 表 示 堆 栈 文 件, 比 如 LIFO 文 件 (Last In First Out, 后 进 先 出 ) s 表 示 套 接 字

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 第 一 个 字 符 之 后 有 三 个 三 位 字 符 组 : 第 一 个 三 位 字 符 组 表 示 文 件 拥 有 者 (u) 对 该 文 件 的 权 限 第 二 个 三 位 字 符 组 表 示 文 件 用 户 组 (g) 对 该 文 件 的 权 限 第 三 个 三 位 字 符 组 表 示 系 统 其 他 用 户 (o) 对 该 文 件 的 权 限 若 该 用 户 组 对 此 没 有 权 限, 一 般 显 示 - 字 符 小 知 识 目 录 权 限 和 文 件 权 限 有 一 定 的 区 别 对 于 目 录 而 言,r 代 表 允 许 列 出 该 目 录 下 的 文 件 和 子 目 录,w 代 表 允 许 生 成 和 删 除 该 目 录 下 的 文 件,x 代 表 允 许 访 问 该 目 录 1.3.2 文 件 系 统 类 型 介 绍 1.ext2 和 ext3 ext3 是 现 在 Linux( 包 括 Red Hat,Mandrake 下 ) 常 见 的 默 认 的 文 件 系 统, 它 是 ext2 的 升 级 版 本 正 如 Red Hat 公 司 的 首 席 核 心 开 发 人 员 Michael K.Johnson 所 说, 从 ext2 转 换 到 ext3 主 要 有 以 下 4 个 理 由 : 可 用 性 数 据 完 整 性 速 度 以 及 易 于 转 化 ext3 中 采 用 了 日 志 式 的 管 理 机 制, 它 使 文 件 系 统 具 有 很 强 的 快 速 恢 复 能 力, 并 且 由 于 从 ext2 转 换 到 ext3 无 须 进 行 格 式 化, 因 此, 更 加 推 进 了 ext3 文 件 系 统 的 推 广 2.swap 文 件 系 统 该 文 件 系 统 是 Linux 中 作 为 交 换 分 区 使 用 的 在 安 装 Linux 的 时 候, 交 换 分 区 是 必 须 建 立 的, 并 且 它 所 采 用 的 文 件 系 统 类 型 必 须 是 swap 而 没 有 其 他 选 择 3.vfat 文 件 系 统 Linux 中 把 DOS 中 采 用 的 FAT 文 件 系 统 ( 包 括 FAT12 FAT16 和 FAT32) 都 称 为 vfat 文 件 系 统 4.NFS 文 件 系 统 NFS 文 件 系 统 是 指 网 络 文 件 系 统, 这 种 文 件 系 统 也 是 Linux 的 独 到 之 处 它 可 以 很 方 便 地 在 局 域 网 内 实 现 文 件 共 享, 并 且 使 多 台 主 机 共 享 同 一 主 机 上 的 文 件 系 统 而 且 NFS 文 件 系 统 访 问 速 度 快 稳 定 性 高, 已 经 得 到 了 广 泛 的 应 用, 尤 其 在 嵌 入 式 领 域, 使 用 NFS 文 件 系 统 可 以 很 方 便 地 实 现 文 件 本 地 修 改, 而 免 去 了 一 次 次 读 写 Flash 的 忧 虑 5.ISO9660 文 件 系 统 这 是 光 盘 所 使 用 的 文 件 系 统, 在 Linux 中 对 光 盘 已 有 了 很 好 的 支 持, 它 不 仅 可 以 提 供 对 光 盘 的 读 写, 还 可 以 实 现 对 光 盘 的 刻 录 1.3.3 Linux 目 录 结 构 下 面 以 Red Hat Enterprise 4 AS 为 例, 详 细 列 出 了 Linux 文 件 系 统 中 各 主 要 目 录 的 存 放 内 容, 如 表 1.1 所 示 表 1.1 Linux 文 件 系 统 目 录 结 构

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 目 录 目 录 内 容 /bin /boot /dev /etc /etc/rc.d /etc/rc.d/init /home /lib /lost+found /media /misc /mnt /proc /root /sbin /tmp /usr /usr/bin /usr/sbin /usr/src /srv /sys /var bin 就 是 二 进 制 (binary) 的 英 文 缩 写 在 这 里 存 放 Linux 常 用 操 作 命 令 的 执 行 文 件, 如 mv ls mkdir 等 有 时, 这 个 目 录 的 内 容 和 /usr/bin 里 面 的 内 容 一 样, 它 们 都 是 放 置 一 般 用 户 使 用 的 执 行 文 件 这 个 目 录 下 存 放 操 作 系 统 启 动 时 所 要 用 到 的 程 序 如 启 动 grub 就 会 用 到 其 下 的 /boot/grub 子 目 录 该 目 录 中 包 含 了 所 有 Linux 系 统 中 使 用 的 外 部 设 备 要 注 意 的 是, 这 里 并 不 是 存 放 外 部 设 备 的 驱 动 程 序, 它 实 际 上 是 一 个 访 问 这 些 外 部 设 备 的 端 口 由 于 在 Linux 中, 所 有 的 设 备 被 当 作 文 件 进 行 操 作, 比 如 :/dev/cdrom 代 表 光 驱, 用 户 可 以 非 常 方 便 地 像 访 问 文 件 目 录 一 样 对 其 进 行 访 问 该 目 录 下 存 放 了 系 统 管 理 时 要 用 到 的 各 种 配 置 文 件 和 子 目 录 如 网 络 配 置 文 件 文 件 系 统 x 系 统 配 置 文 件 设 备 配 置 信 息 设 置 用 户 信 息 等 都 在 这 个 目 录 下 系 统 在 启 动 过 程 中 需 要 读 取 其 参 数 并 进 行 相 应 的 配 置 该 目 录 主 要 存 放 Linux 启 动 和 关 闭 时 要 用 到 的 脚 本 文 件, 在 后 面 的 启 动 详 解 中 还 会 进 一 步 地 讲 解 该 目 录 存 放 所 有 Linux 服 务 默 认 的 启 动 脚 本 ( 在 新 版 本 的 Linux 中 还 用 到 /etc/xinetd.d 目 录 下 的 内 容 ) 该 目 录 是 Linux 系 统 中 默 认 的 用 户 工 作 根 目 录 如 前 面 在 1.3.1 节 中 所 述, 执 行 adduser 命 令 后 系 统 会 在 /home 目 录 下 为 对 应 账 号 建 立 一 个 同 名 的 主 目 录 该 目 录 是 用 来 存 放 系 统 动 态 链 接 共 享 库 的 几 乎 所 有 的 应 用 程 序 都 会 用 到 这 个 目 录 下 的 共 享 库 因 此, 千 万 不 要 轻 易 对 这 个 目 录 进 行 操 作 该 目 录 在 大 多 数 情 况 下 都 是 空 的 只 有 当 系 统 产 生 异 常 时, 会 将 一 些 遗 失 的 片 段 放 在 此 目 录 下 该 目 录 下 是 光 驱 和 软 驱 的 挂 载 点,Fedora Core 4 已 经 可 以 自 动 挂 载 光 驱 和 软 驱 该 目 录 下 存 放 从 DOS 下 进 行 安 装 的 实 用 工 具, 一 般 为 空 该 目 录 是 软 驱 光 驱 硬 盘 的 挂 载 点, 也 可 以 临 时 将 别 的 文 件 系 统 挂 载 到 此 目 录 下 该 目 录 是 用 于 放 置 系 统 核 心 与 执 行 程 序 所 需 的 一 些 信 息 而 这 些 信 息 是 在 内 存 中 由 系 统 产 生 的, 故 不 占 用 硬 盘 空 间 该 目 录 是 超 级 用 户 登 录 时 的 主 目 录 该 目 录 用 来 存 放 系 统 管 理 员 的 常 用 的 系 统 管 理 程 序 该 目 录 用 来 存 放 不 同 程 序 执 行 时 产 生 的 临 时 文 件 一 般 Linux 安 装 软 件 的 默 认 安 装 路 径 就 是 这 里 这 是 一 个 非 常 重 要 的 目 录, 用 户 的 很 多 应 用 程 序 和 文 件 都 存 放 在 这 个 目 录 下, 类 似 于 Windows 下 的 Program Files 的 目 录 系 统 用 户 使 用 的 应 用 程 序 超 级 用 户 使 用 的 比 较 高 级 的 管 理 程 序 和 系 统 守 护 程 序 内 核 源 代 码 默 认 的 放 置 目 录 该 目 录 存 放 一 些 服 务 启 动 之 后 需 要 提 取 的 数 据 这 是 Linux 2.6 内 核 的 一 个 很 大 的 变 化 该 目 录 下 安 装 了 2.6 内 核 中 新 出 现 的 一 个 文 件 系 统 sysfs sysfs 文 件 系 统 集 成 了 下 面 3 种 文 件 系 统 的 信 息 : 针 对 进 程 信 息 的 proc 文 件 系 统 针 对 设 备 的 devfs 文 件 系 统 以 及 针 对 伪 终 端 的 devpts 文 件 系 统 该 文 件 系 统 是 内 核 设 备 树 的 一 个 直 观 反 映 当 一 个 内 核 对 象 被 创 建 的 时 候, 对 应 的 文 件 和 目 录 也 在 内 核 对 象 子 系 统 中 被 创 建 这 也 是 一 个 非 常 重 要 的 目 录, 很 多 服 务 的 日 志 信 息 都 存 放 在 这 里

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 1.4 实 验 内 容 安 装 Linux 操 作 系 统 1. 实 验 目 的 读 者 通 过 亲 自 动 手 安 装 Linux 操 作 系 统, 对 Linux 有 个 初 步 的 认 识, 并 且 加 深 对 Linux 中 的 基 本 概 念 的 理 解, 熟 悉 Linux 文 件 系 统 目 录 结 构 2. 实 验 内 容 安 装 Linux(Red Hat Enterprise 4 AS 版 本 ) 操 作 系 统, 查 看 Linux 的 目 录 结 构 3. 实 验 步 骤 (1) 磁 盘 规 划 在 这 一 步 骤 中, 需 要 留 出 最 好 有 5GB 以 上 的 空 间 来 安 装 Linux 系 统 (2) 下 载 Linux 版 本 可 以 从 Linux 的 映 像 网 站 上 下 载 各 版 本 的 Linux (3) 搜 集 主 机 硬 件 信 息 查 看 相 应 版 本 的 Linux 是 否 已 有 了 对 相 应 各 硬 件 的 驱 动 支 持 较 新 版 本 的 Linux 一 般 对 硬 件 的 支 持 都 比 较 好 (4) 确 认 用 户 网 络 信 息 包 括 IP 子 网 掩 码 DNS 地 址 等 (5) 按 照 本 书 1.2 小 节 讲 述 的 步 骤 安 装 Linux, 对 关 键 的 步 骤 要 加 倍 小 心, 如 配 置 文 件 系 统 及 硬 盘 分 区 (6) 选 择 安 装 套 件, 建 议 新 手 可 以 使 用 全 部 安 装 来 减 少 以 后 学 习 的 难 度 (7) 配 置 用 户 信 息 网 络 信 息 等 (8) 安 装 完 成, 用 普 通 用 户 登 录 到 Linux 下 (9) 使 用 文 件 浏 览 器 熟 悉 文 件 的 目 录 结 构 4. 实 验 结 果 能 够 成 功 安 装 Linux 操 作 系 统, 并 且 对 Linux 文 件 系 统 的 目 录 结 构 能 有 一 个 整 体 的 了 解 1.5 本 章 小 结 本 章 首 先 介 绍 了 Linux 的 历 史 嵌 入 式 Linux 操 作 系 统 的 优 势 Linux 不 同 发 行 版 本 的 区 别 以 及 如 何 学 习 Linux 在 这 里 要 着 重 掌 握 的 是 Linux 内 核 与 GNU 的 关 系, 了 解 Linux 版 本 号 的 规 律, 同 时 还 要 了 解 Linux 多 硬 件 平 台 支 持 低 开 发 成 本 等 优 越 性 本 章 接 着 介 绍 了 如 何 安 装 Linux, 这 里 最 关 键 的 一 步 是 分 区 希 望 读 者 能 很 好 地

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 掌 握 主 分 区 扩 展 分 区 的 概 念 Linux 文 件 系 统 与 Windows 文 件 系 统 的 区 别 以 及 Linux 中 挂 载 与 挂 载 点 的 含 义, 这 几 个 都 是 Linux 中 的 重 要 概 念, 希 望 读 者 能 够 切 实 理 解 其 含 义 在 安 装 完 Linux 之 后, 本 章 讲 解 了 Linux 中 文 件 和 文 件 系 统 的 概 念 这 些 是 Linux 中 最 基 础 最 常 见 的 概 念, 只 有 真 正 理 解 之 后 才 能 为 进 一 步 学 习 Linux 打 下 很 好 的 基 础 读 者 要 着 重 掌 握 Linux 的 文 件 分 类 文 件 属 性 的 表 示 方 法, 并 且 能 够 通 过 实 际 查 看 Linux 目 录 结 构 来 熟 悉 Linux 中 重 要 目 录 的 作 用 最 后 本 章 还 设 计 了 本 书 中 的 第 一 个 实 验 安 装 Linux, 这 也 是 读 者 必 须 要 完 成 的 最 基 础 的 实 验 1.6 思 考 与 练 习 1. 请 查 找 相 关 资 料, 查 看 GNU 所 规 定 的 自 由 软 件 的 具 体 协 议 是 什 么 2. 请 问 Linux 下 的 文 件 系 统 和 Windows 下 的 文 件 系 统 有 什 么 区 别? 3. 试 指 出 读 者 Linux 系 统 中 的 磁 盘 划 分 情 况 ( 如 主 分 区 扩 展 分 区 的 对 应 情 况 ) 4. 如 何 安 装 Linux? 5.Linux 中 的 文 件 有 哪 些 类, 这 样 分 类 有 什 么 好 处? 6. 若 有 一 个 文 件, 其 属 性 为 -rwxr rw-, 说 出 这 代 表 什 么? 7. 请 说 出 下 列 目 录 中 放 置 的 是 哪 些 文 件 /etc/ /etc/rc.d/init.d/ /usr/bin /bin /usr/sbin /sbin /var/log 推 荐 课 程 : 嵌 入 式 学 院 - 嵌 入 式 Linux 长 期 就 业 班 招 生 简 章 :http://www.embedu.org/courses/index.htm 课 程 内 容 :http://www.embedu.org/courses/course1.htm 项 目 实 战 :http://www.embedu.org/courses/project.htm 出 版 教 材 :http://www.embedu.org/courses/course3.htm 实 验 设 备 :http://www.embedu.org/courses/course5.htm

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 1 章 Linux 快 速 入 门 推 荐 课 程 : 华 清 远 见 - 嵌 入 式 Linux 短 期 高 端 培 训 班 嵌 入 式 Linux 应 用 开 发 班 : http://www.farsight.com.cn/courses/ts-linuxapp.htm 嵌 入 式 Linux 系 统 开 发 班 : http://www.farsight.com.cn/courses/ts-linuxemb.htm 嵌 入 式 Linux 驱 动 开 发 班 : http://www.farsight.com.cn/courses/ts-linuxdriver.htm

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 第 2 章 Linux 基 础 命 令 本 章 目 标 Linux 是 一 个 高 可 靠 高 性 能 的 系 统, 而 所 有 这 些 优 越 性 只 有 在 直 接 使 用 Linux 命 令 行 时 (shell 环 境 ) 才 能 充 分 地 体 现 出 来 在 本 章 将 帮 助 读 者 学 会 如 下 内 容 掌 握 shell 基 本 概 念 熟 练 使 用 Linux 中 用 户 管 理 命 令 熟 练 使 用 Linux 中 系 统 相 关 命 令 熟 练 使 用 Linux 中 文 件 目 录 相 关 命 令 熟 练 使 用 Linux 中 打 包 压 缩 相 关 命 令 熟 练 使 用 Linux 中 文 件 比 较 合 并 相 关 命 令 熟 练 使 用 Linux 中 网 络 相 关 命 令 了 解 Linux 的 启 动 过 程 深 入 了 解 init 进 程 及 其 配 置 文 件 能 够 独 立 完 成 在 Linux 中 解 压 缩 软 件 学 会 添 加 环 境 变 量 能 够 独 立 定 制 Linux 中 的 系 统 服 务

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 2.1 Linux 常 用 命 令 在 安 装 完 Linux 再 次 启 动 之 后, 就 可 以 进 入 到 与 Windows 类 似 的 图 形 化 界 面 了 这 个 界 面 就 是 Linux 图 形 化 界 面 X 窗 口 系 统 ( 简 称 X) 的 一 部 分 要 注 意 的 是,X 窗 口 系 统 仅 仅 是 Linux 上 面 的 一 个 软 件 ( 或 者 也 可 称 为 服 务 ), 它 不 是 Linux 自 身 的 一 部 分 虽 然 现 在 的 X 窗 口 系 统 已 经 与 Linux 整 合 得 相 当 好 了, 但 毕 竟 还 不 能 保 证 绝 对 的 可 靠 性 另 外,X 窗 口 系 统 是 一 个 相 当 耗 费 系 统 资 源 的 软 件, 它 会 大 大 地 降 低 Linux 的 系 统 性 能 因 此, 若 是 希 望 更 好 地 享 受 Linux 所 带 来 的 高 效 及 高 稳 定 性, 建 议 读 者 尽 可 能 地 使 用 Linux 的 命 令 行 界 面, 也 就 是 shell 环 境 当 用 户 在 命 令 行 下 工 作 时, 不 是 直 接 同 操 作 系 统 内 核 交 互 信 息 的, 而 是 由 命 令 解 释 器 接 受 命 令, 分 析 后 再 传 给 相 关 的 程 序 shell 是 一 种 Linux 中 的 命 令 行 解 释 程 序, 就 如 同 command.com 是 DOS 下 的 命 令 解 释 程 序 一 样, 为 用 户 提 供 使 用 操 作 系 统 的 接 口 它 们 之 间 的 关 系 如 图 2.1 所 示 用 户 在 提 示 符 下 输 入 的 命 令 都 由 shell 先 解 释 然 后 传 给 Linux 内 核 小 知 识 shell 是 命 令 语 言 命 令 解 释 程 序 及 程 序 设 计 语 言 的 统 称 它 不 仅 拥 有 自 己 内 建 的 shell 命 令 集, 同 时 也 能 被 系 统 中 其 他 应 用 程 序 所 调 用 shell 的 一 个 重 要 特 性 是 它 自 身 就 是 一 个 解 释 型 的 程 序 设 计 语 言,shell 程 序 设 计 语 言 支 持 绝 大 多 数 在 高 级 语 言 中 能 见 到 的 程 序 元 素, 如 函 数 变 量 数 组 和 程 序 控 制 结 构 shell 编 程 语 言 简 单 易 学, 任 何 在 提 示 符 中 能 键 入 的 命 令 都 能 放 到 一 个 可 执 行 的 shell 程 序 中 关 于 shell 编 程 的 详 细 讲 解, 感 兴 趣 的 读 者 可 以 参 见 其 他 相 关 书 籍 Linux 中 运 行 shell 的 环 境 是 系 统 工 具 下 的 终 端, 读 者 可 以 单 击 终 端 以 启 动 shell 环 境 这 时 屏 幕 上 显 示 类 似 [david@localhost home]$ 的 信 息, 其 中,david 是 指 系 统 用 户,localhost 是 计 算 机 名, 而 home 是 指 当 前 所 在 的 目 录 图 2.1 内 核 shell 和 用 户 的 关 系 由 于 Linux 中 的 命 令 非 常 多, 要 全 部 介 绍 几 乎 是 不 可 能 的 因 此, 在 本 书 按 照 命 令 的 用 途 进 行 分 类 讲 解, 并 且 对 每 一 类 中 最 常 用 的 命 令 详 细 讲 解, 同 时 列 出 同 一 类 中 的 其 他 命 令 由 于 同 一 类 的 命 令 都 有 很 大 的 相 似 性, 因 此, 读 者 通 过 学 习 本 书 中 所 列 命 令, 可 以 很 快 地 掌 握 其 他 命 令

命 令 格 式 说 明 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 格 式 中 带 [] 的 表 明 为 可 选 项, 其 他 为 必 选 项 选 项 可 以 多 个 连 带 写 入 本 章 后 面 选 项 参 数 列 表 中 加 粗 的 含 义 是 : 该 选 项 是 非 常 常 用 的 选 项 2.1.1 用 户 系 统 相 关 命 令 Linux 是 一 个 多 用 户 的 操 作 系 统, 每 个 用 户 又 可 以 属 于 不 同 的 用 户 组, 下 面, 首 先 来 熟 悉 一 下 Linux 中 的 用 户 切 换 和 用 户 管 理 的 相 关 命 令 1. 用 户 切 换 (su) (1) 作 用 变 更 为 其 他 使 用 者 的 身 份, 主 要 用 于 将 普 通 用 户 身 份 转 变 为 超 级 用 户, 而 且 需 输 入 相 应 用 户 密 码 (2) 格 式 su [ 选 项 ] [ 使 用 者 ] 其 中 的 使 用 者 为 要 变 更 的 对 应 使 用 者 (3) 常 见 参 数 主 要 选 项 参 数 如 表 2.1 所 示 表 2.1 su 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -,-l,--login -m,-p -c,--command 为 该 使 用 者 重 新 登 录, 大 部 分 环 境 变 量 ( 如 HOME SHELL 和 USER 等 ) 和 工 作 目 录 都 是 以 该 使 用 者 (USER) 为 主 若 没 有 指 定 USER, 缺 省 情 况 是 root 执 行 su 时 不 改 变 环 境 变 量 变 更 账 号 为 USER 的 使 用 者, 执 行 指 令 (command) 后 再 变 回 原 来 使 用 者 (4) 使 用 示 例 [david@localhost ~]$ su - root Password: [root@localhost ~]# 示 例 通 过 su 命 令 将 普 通 用 户 变 更 为 root 用 户, 并 使 用 选 项 - 携 带 root 环 境 变 量 (5) 使 用 说 明 在 将 普 通 用 户 变 更 为 root 用 户 时 建 议 使 用 - 选 项, 这 样 可 以 将 root 的 环 境 变 量 和 工 作 目 录 同 时 带 入, 否 则 在 以 后 的 使 用 中 可 能 会 由 于 环 境 变 量 的 原 因 而 出 错 在 转 变 为 root 权 限 后, 提 示 符 变 为 # 小 知 识 环 境 变 量 实 际 上 就 是 用 户 运 行 环 境 的 参 数 集 合 Linux 是 一 个 多 用 户 的 操 作 系 统 而 且 在 每 个 用 户 登 录 系 统 后, 都 会 有 一 个 专 有 的 运 行 环 境 通 常 每 个 用 户 默 认 的 环 境 都 是 相 同 的, 而 这 个 默 认 环 境 实 际 上 就 是 一 组 环 境 变 量

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 的 定 义 用 户 可 以 对 自 己 的 运 行 环 境 进 行 定 制, 其 方 法 就 是 修 改 相 应 的 系 统 环 境 变 量 常 见 的 环 境 变 量 如 下 PATH 是 系 统 路 径 HOME 是 系 统 根 目 录 HISTSIZE 是 指 保 存 历 史 命 令 记 录 的 条 数 LOGNAME 是 指 当 前 用 户 的 登 录 名 HOSTNAME 是 指 主 机 的 名 称, 若 应 用 程 序 要 用 到 主 机 名, 通 常 是 从 这 个 环 境 变 量 中 来 取 得 的 SHELL 是 指 当 前 用 户 用 的 是 哪 种 shell LANG/LANGUGE 是 和 语 言 相 关 的 环 境 变 量, 使 用 多 种 语 言 的 用 户 可 以 修 改 此 环 境 变 量 MAIL 是 指 当 前 用 户 的 邮 件 存 放 目 录 设 置 环 境 变 量 方 法 如 下 通 过 echo 显 示 字 符 串 ( 指 定 环 境 变 量 ) 通 过 export 设 置 新 的 环 境 变 量 通 过 env 显 示 所 有 环 境 变 量 通 过 set 命 令 显 示 所 有 本 地 定 义 的 shell 变 量 通 过 unset 命 令 来 清 除 环 境 变 量 读 者 可 以 试 着 用 env 命 令 查 看 su - root ( 或 su ) 和 su root 的 区 别 2. 用 户 管 理 (useradd 和 passwd) Linux 中 常 见 用 户 管 理 命 令 如 表 2.2 所 示, 本 书 仅 以 useradd 和 passwd 为 例 进 行 详 细 讲 解, 其 他 命 令 类 似, 请 读 者 自 行 学 习 使 用 表 2.2 Linux 常 见 用 户 管 理 命 令 命 令 命 令 含 义 格 式 useradd 添 加 用 户 账 号 useradd [ 选 项 ] 用 户 名 usermod 设 置 用 户 账 号 属 性 usermod [ 选 项 ] 属 性 值 userdel 删 除 对 应 用 户 账 号 userdel [ 选 项 ] 用 户 名 groupadd 添 加 组 账 号 groupadd [ 选 项 ] 组 账 号 groupmod 设 置 组 账 号 属 性 groupmod [ 选 项 ] 属 性 值 groupdel 删 除 对 应 组 账 号 groupdel [ 选 项 ] 组 账 号 passwd 设 置 账 号 密 码 passwd [ 对 应 账 号 ] id 显 示 用 户 ID 组 ID 和 用 户 所 属 的 组 列 表 id [ 用 户 名 ] groups 显 示 用 户 所 属 的 组 groups [ 组 账 号 ]

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 who 显 示 登 录 到 系 统 的 所 有 用 户 who (1) 作 用 1 useradd: 添 加 用 户 账 号 2 passwd: 更 改 对 应 用 户 的 账 号 密 码 (2) 格 式 1 useradd:useradd [ 选 项 ] 用 户 名 2 passwd:passwd [ 选 项 ] [ 用 户 名 ] 其 中 的 用 户 名 为 修 改 账 号 密 码 的 用 户, 若 不 带 用 户 名, 缺 省 为 更 改 当 前 使 用 者 的 密 码 (3) 常 用 参 数 1 useradd 主 要 选 项 参 数 如 表 2.3 所 示 表 2.3 useradd 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -g 指 定 用 户 所 属 的 群 组 -m 自 动 建 立 用 户 的 登 入 目 录 -n 取 消 建 立 以 用 户 名 称 为 名 的 群 组 2 passwd: 一 般 很 少 使 用 选 项 参 数 (4) 使 用 实 例 [root@localhost ~]# useradd david [root@localhost ~]# passwd david New password: ( 输 入 密 码 ) Retype new password: ( 再 输 入 一 次 密 码, 以 确 认 输 入 的 正 确 性 ) passwd: all authentication tokens updated successfully [root@localhost ~]# su david [david@localhost ~]$ [david@localhost ~]$ pwd( 查 看 当 前 目 录 ) /home/david ( 该 用 户 的 工 作 目 录 ) 实 例 中 先 添 加 了 用 户 名 为 david 的 用 户, 接 着 又 为 该 用 户 设 置 了 账 号 密 码 从 su 的 命 令 可 以 看 出, 该 用 户 添 加 成 功, 其 工 作 目 录 为 /home/david (5) 使 用 说 明 在 添 加 用 户 时, 这 两 个 命 令 是 一 起 使 用 的, 其 中,useradd 必 须 用 root 的 权 限 而 且 useradd 指 令 所 建 立 的 账 号, 实 际 上 是 保 存 在 /etc/passwd 文 本 文 件 中, 文 件 中 每 一 行 包 含 一 个 账 号 信 息 在 缺 省 情 况 下,useradd 所 做 的 初 始 化 操 作 包 括 在 /home 目 录 下 为 对 应 账 号 建 立 一 个 同 名 的 主 目 录, 并 且 还 为 该 用 户 单 独 建 立 一 个 与 用 户 名 同 名 的 组

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 adduser 只 是 useradd 的 符 号 链 接 ( 关 于 符 号 链 接 的 概 念 在 本 节 后 面 会 有 介 绍 ), 两 者 是 相 同 的 passwd 还 可 用 于 普 通 用 户 修 改 账 号 密 码,Linux 并 不 采 用 类 似 Windows 的 密 码 回 显 ( 显 示 为 * 号 ), 所 以 输 入 的 这 些 字 符 用 户 是 看 不 见 的 密 码 最 好 包 括 字 母 数 字 和 特 殊 符 号, 并 且 设 成 6 位 以 上 3. 系 统 管 理 命 令 (ps 和 kill) Linux 中 常 见 的 系 统 管 理 命 令 如 表 2.4 所 示, 本 书 以 ps 和 kill 为 例 进 行 讲 解 表 2.4 Linux 常 见 系 统 管 理 命 令 命 令 命 令 含 义 格 式 ps 显 示 当 前 系 统 中 由 该 用 户 运 行 的 进 程 列 表 ps [ 选 项 ] top 动 态 显 示 系 统 中 运 行 的 程 序 ( 一 般 为 每 隔 5s) top kill 输 出 特 定 的 信 号 给 指 定 PID( 进 程 号 ) 的 进 程 kill [ 选 项 ] 进 程 号 (PID) uname 显 示 系 统 的 信 息 ( 可 加 选 项 -a) uname [ 选 项 ] setup 系 统 图 形 化 界 面 配 置 setup crontab 循 环 执 行 例 行 性 命 令 crontab [ 选 项 ] shutdown 关 闭 或 重 启 Linux 系 统 shutdown [ 选 项 ] [ 时 间 ] uptime 显 示 系 统 已 经 运 行 了 多 长 时 间 uptime clear 清 除 屏 幕 上 的 信 息 clear (1) 作 用 1 ps: 显 示 当 前 系 统 中 由 该 用 户 运 行 的 进 程 列 表 2 kill: 输 出 特 定 的 信 号 给 指 定 PID( 进 程 号 ) 的 进 程, 并 根 据 该 信 号 完 成 指 定 的 行 为 其 中 可 能 的 信 号 有 进 程 挂 起 进 程 等 待 进 程 终 止 等 (2) 格 式 1 ps:ps [ 选 项 ] 2 kill:kill [ 选 项 ] 进 程 号 (PID) kill 命 令 中 的 进 程 号 为 信 号 输 出 的 指 定 进 程 的 进 程 号, 当 选 项 是 缺 省 时 为 输 出 终 止 信 号 给 该 进 程 (3) 常 见 参 数 1 ps 主 要 选 项 参 数 如 表 2.5 所 示 表 2.5 ps 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -ef -aux 查 看 所 有 进 程 及 其 PID( 进 程 号 ) 系 统 时 间 命 令 详 细 目 录 执 行 者 等 除 可 显 示 -ef 所 有 内 容 外, 还 可 显 示 CPU 及 内 存 占 用 率 进 程 状 态 -w 显 示 加 宽 并 且 可 以 显 示 较 多 的 信 息

2 kill 主 要 选 项 参 数 如 表 2.6 所 示 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 表 2.6 kill 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -s 将 指 定 信 号 发 送 给 进 程 -p 打 印 出 进 程 号 (PID), 但 并 不 送 出 信 号 -l 列 出 所 有 可 用 的 信 号 名 称 (4) 使 用 实 例 [root@localhost root]# ps ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 2005? 00:00:05 init root 2 1 0 2005? 00:00:00 [keventd] root 3 0 0 2005? 00:00:00 [ksoftirqd_cpu0] root 4 0 0 2005? 00:00:00 [ksoftirqd_cpu1] root 7421 1 0 2005? 00:00:00 /usr/local/bin/ntpd -c /etc/ntp. root 21787 21739 0 17:16 pts/1 00:00:00 grep ntp [root@localhost root]# kill -9 7421 ( 杀 死 进 程 ) [root@localhost root]# ps -ef grep ntp root 21789 21739 0 17:16 pts/1 00:00:00 grep ntp 该 实 例 中 首 先 查 看 所 有 进 程, 并 终 止 进 程 号 为 7421 的 ntp 进 程, 之 后 再 次 查 看 时 已 经 没 有 该 进 程 号 的 进 程 (5) 使 用 说 明 ps 在 使 用 中 通 常 可 以 与 其 他 一 些 命 令 结 合 起 来 使 用, 主 要 作 用 是 提 高 效 率 ps 选 项 中 的 参 数 w 可 以 写 多 次, 通 常 最 多 写 3 次, 它 的 含 义 为 加 宽 3 次, 这 足 以 显 示 很 长 的 命 令 行 了 例 如 :ps auxwww 小 知 识 管 道 是 Linux 中 信 息 通 信 的 重 要 方 式 它 是 把 一 个 程 序 的 输 出 直 接 连 接 到 另 一 个 程 序 的 输 入, 而 不 经 过 任 何 中 间 文 件 管 道 线 是 指 连 接 两 个 或 更 多 程 序 管 道 的 通 路 在 shell 中 字 符 表 示 管 道 线 如 前 例 子 中 的 ps ef grep ntp 所 示,ps ef 的 结 果 直 接 输 入 到 grep ntp 的 程 序 中 ( 关 于 grep 命 令 在 后 面 会 有 详 细 的 介 绍 ) grep pr sort 和 wc 都 可 以 在 上 述 管 道 线 上 工 作 读 者 可 以 灵 活 地 运 用 管 道 机 制 4. 磁 盘 相 关 命 令 (fdisk) Linux 中 与 磁 盘 相 关 的 命 令 如 表 2.7 所 示, 本 书 仅 以 fdisk 为 例 进 行 讲 解 表 2.7 Linux 常 见 系 统 管 理 命 令 选 项 参 数 含 义 格 式 free 查 看 当 前 系 统 内 存 的 使 用 情 况 free [ 选 项 ]

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 df 查 看 文 件 系 统 的 磁 盘 空 间 占 用 情 况 df [ 选 项 ] du 统 计 目 录 ( 或 文 件 ) 所 占 磁 盘 空 间 的 大 小 du [ 选 项 ] fdisk 查 看 硬 盘 分 区 情 况 及 对 硬 盘 进 行 分 区 管 理 fdisk [-l] (1) 作 用 fdisk 可 以 查 看 硬 盘 分 区 情 况, 并 可 对 硬 盘 进 行 分 区 管 理, 这 里 主 要 介 绍 如 何 查 看 硬 盘 分 区 情 况, 另 外,fdisk 也 是 一 个 非 常 好 的 硬 盘 分 区 工 具, 感 兴 趣 的 读 者 可 以 另 外 查 找 资 料 学 习 如 何 使 用 fdisk 进 行 硬 盘 分 区 (2) 格 式 fdisk [-l] (3) 使 用 实 例 [root@localhost ~]# fdisk -l Disk /dev/hda: 40.0 GB, 40007761920 bytes 240 heads, 63 sectors/track, 5168 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 1084 8195008+ c W95 FAT32 (LBA) /dev/hda2 1085 5167 30867480 f W95 Ext'd (LBA) /dev/hda5 1085 2439 10243768+ b W95 FAT32 /dev/hda6 2440 4064 12284968+ b W95 FAT32 /dev/hda7 4065 5096 7799526 83 Linux /dev/hda8 5096 5165 522081 82 Linux swap Disk /dev/sda: 999 MB, 999816704 bytes 4 heads, 8 sectors/track, 61023 cylinders Units = cylinders of 32 * 512 = 16384 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 1 61024 976379+ b W95 FAT32 可 以 看 出, 使 用 fdisk l 列 出 了 文 件 系 统 的 分 区 情 况 (4) 使 用 说 明 使 用 fdisk 必 须 拥 有 root 权 限 IDE 硬 盘 对 应 的 设 备 名 称 分 别 为 hda hdb hdc 和 hdd,scsi 硬 盘 对 应 的 设 备 名 称 则 为 sda sdb 此 外,hda1 代 表 hda 的 第 一 个 硬 盘 分 区,hda2 代 表 hda 的 第 二 个 分 区, 依 此 类 推 通 过 查 看 /var/log/messages 文 件, 可 以 找 到 Linux 系 统 已 辨 认 出 来 的 设 备 代 号 5. 文 件 系 统 挂 载 命 令 (mount)

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 (1) 作 用 挂 载 文 件 系 统, 它 的 使 用 权 限 是 超 级 用 户 或 /etc/fstab 中 允 许 的 使 用 者 正 如 1.2.1 节 中 所 述, 挂 载 是 指 在 分 区 和 目 录 之 间 建 立 映 射 关 系 的 过 程, 而 挂 载 点 是 指 挂 载 在 文 件 树 中 的 位 置 使 用 mount 命 令 可 以 把 文 件 系 统 挂 载 到 相 应 的 目 录 下, 并 且 由 于 Linux 中 把 设 备 都 当 成 文 件 一 样 使 用, 因 此,mount 命 令 也 可 以 挂 载 不 同 的 设 备 通 常, 在 Linux 下 /mnt 目 录 是 专 门 用 于 挂 载 不 同 的 文 件 系 统 的, 它 可 以 在 该 目 录 下 新 建 不 同 的 子 目 录 来 挂 载 不 同 的 设 备 文 件 系 统 (2) 格 式 mount [ 选 项 ] [ 类 型 ] 设 备 文 件 名 挂 载 点 目 录 其 中 的 类 型 是 指 设 备 文 件 的 类 型 (3) 常 见 参 数 mount 常 见 参 数 如 表 2.8 所 示 表 2.8 mount 命 令 选 项 常 见 参 数 列 表 选 项 参 数 含 义 -a 依 照 /etc/fstab 的 内 容 装 载 所 有 相 关 的 硬 盘 -l 列 出 当 前 已 挂 载 的 设 备 文 件 系 统 名 称 和 挂 载 点 -t 类 型 -f 将 后 面 的 设 备 以 指 定 类 型 的 文 件 格 式 装 载 到 挂 载 点 上 常 见 的 类 型 有 前 面 介 绍 过 的 几 种 :vfat ext3 ext2 iso9660 nfs 等 通 常 用 于 除 错 它 会 使 mount 不 执 行 实 际 挂 上 的 动 作, 而 是 模 拟 整 个 挂 上 的 过 程, 通 常 会 和 -v 一 起 使 用 几 种 (4) 使 用 实 例 使 用 mount 命 令 主 要 通 过 以 下 几 个 步 骤 1 确 认 是 否 为 Linux 可 以 识 别 的 文 件 系 统,Linux 可 识 别 的 文 件 系 统 只 要 是 以 下 Windows 95/98 常 用 的 FAT32 文 件 系 统 :vfat WindowsNT/2000 的 文 件 系 统 :ntfs OS/2 用 的 文 件 系 统 :hpfs Linux 用 的 文 件 系 统 :ext2 ext3 nfs CD-ROM 光 盘 用 的 文 件 系 统 :iso9660 2 确 定 设 备 的 名 称, 可 通 过 使 用 命 令 fdisk -l 查 看 3 查 找 挂 载 点 必 须 确 定 挂 载 点 已 经 存 在, 也 就 是 在 /mnt 下 的 相 应 子 目 录 已 经 存 在, 一 般 建 议 在 /mnt 下 新 建 几 个 如 /mnt/windows, /mnt/usb 的 子 目 录, 现 在 有 些 新 版 本 的 Linux( 如 Fedora Ubuntu 红 旗 Linux 中 软 Linux MandrakeLinux) 都 可 自 动 挂 载 文 件 系 统,Red Hat Linux 仅 可 自 动 挂 载 光 驱 4 挂 载 文 件 系 统 如 下 所 示 [root@locaohost ~]# mkdir -p /mnt/win/c [root@locaohost ~]# mount -t vfat /dev/hda1 /mnt/win/c [root@localhost ~]# cd /mnt/win/c

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 24.s03e01.pdtv.xvid-sfm.rmvb Documents and Settings Program Files 24.s03e02.pdtv.xvid-sfm.rmvb Downloads Recycled C 盘 是 原 先 笔 者 Windows 系 统 的 启 动 盘 可 见, 在 挂 载 了 C 盘 之 后, 可 直 接 访 问 Windows 下 的 C 盘 的 内 容 5 在 使 用 完 该 设 备 文 件 后 可 使 用 命 令 umount 将 其 卸 载 [root@localhost ~]# umount /mnt/win/c [root@localhost ~]# cd /mnt/win/c [root@localhost ~]# ls /mnt/win/c 可 见, 此 时 目 录 /mnt/win/c 下 为 空 Windows 下 的 C 盘 已 被 成 功 卸 载 小 知 识 在 Linux 下 如 何 使 用 U 盘 呢? 一 般 U 盘 为 SCSI 格 式 的 硬 盘, 其 格 式 为 vfat 格 式, 其 设 备 号 可 通 过 fdisk l 进 行 查 看, 假 若 设 备 名 为 /dev/sda1, 则 可 用 如 下 命 令 将 其 挂 载 : mount -t vfat /dev/sda1 /mnt/usb 若 想 设 置 在 开 机 时 自 动 挂 载, 可 在 文 件 /etc/fstab 中 加 入 相 应 的 设 置 行 即 可 2.1.2 文 件 相 关 命 令 Linux 中 有 关 文 件 的 操 作 非 常 重 要, 也 非 常 常 用, 本 节 将 对 Linux 系 统 的 文 件 操 作 命 令 进 行 详 细 讲 解 1.cd (1) 作 用 改 变 当 前 工 作 目 录 (2) 格 式 cd [ 路 径 ] 其 中 的 路 径 为 要 改 变 的 工 作 目 录, 可 为 相 对 路 径 或 绝 对 路 径 (3) 使 用 实 例 以 看 出 [root@localhost ~]# cd /home/david/ [root@localhost david]# pwd [root@localhost david]# /home/david/ 该 实 例 中 变 更 工 作 目 录 为 /home/david/, 在 后 面 的 pwd ( 显 示 当 前 目 录 ) 的 结 果 中 可 (4) 使 用 说 明 该 命 令 将 当 前 目 录 改 变 至 指 定 路 径 的 目 录 若 没 有 指 定 路 径, 则 回 到 用 户 的 主 目 录 ( 例 如 : /home/david 为 用 户 david 的 主 目 录 ) 为 了 改 变 到 指 定 目 录, 用 户 必 须 拥 有 对 指 定 目 录 的 执 行 和 读 权 限 该 命 令 可 以 使 用 通 配 符

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 使 用 cd 可 以 回 到 前 次 工 作 目 录./ 代 表 当 前 目 录,../ 代 表 上 级 目 录 2.ls (1) 作 用 列 出 目 录 和 文 件 的 信 息 (2) 格 式 ls [ 选 项 ] [ 文 件 ] 其 中 文 件 选 项 为 指 定 查 看 指 定 文 件 的 相 关 内 容, 若 未 指 定 文 件, 默 认 查 看 当 前 目 录 下 的 所 有 文 件 (3) 常 见 参 数 ls 主 要 选 项 参 数 见 表 2.9 所 示 表 2.9 ls 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -1,--format=single-column 一 行 输 出 一 个 文 件 ( 单 列 输 出 ) -a,-all 列 出 目 录 中 所 有 文 件, 包 括 以. 开 头 的 隐 藏 文 件 -d 将 目 录 名 和 其 他 文 件 一 样 列 出, 而 不 是 列 出 目 录 的 内 容 -l,--format=long, --format=verbose 除 每 个 文 件 名 外, 增 加 显 示 文 件 类 型 权 限 硬 链 接 数 所 有 者 名 组 名 大 小 (Byte) 及 时 间 信 息 ( 如 未 指 明 是 其 他 时 间 即 指 修 改 时 间 ) -f 不 排 序 目 录 内 容, 按 它 们 在 磁 盘 上 存 储 的 顺 序 列 出 (4) 使 用 实 例 [david@localhost test]$ ls -l total 220 drwxr-xr-x 2 root root 4096 Mar 31 2005 bin drwxr-xr-x 3 root root 4096 Apr 3 2005 boot -rw-r--r-- 1 root root 0 Apr 24 2002 test.run 该 实 例 查 看 当 前 目 录 下 的 所 有 文 件, 并 通 过 选 项 -l 显 示 出 详 细 信 息 显 示 格 式 说 明 如 下 文 件 类 型 与 权 限 链 接 数 文 件 属 主 文 件 属 组 文 件 大 小 修 改 的 时 间 名 字 (5) 使 用 说 明 在 ls 的 常 见 参 数 中,-l( 长 文 件 名 显 示 格 式 ) 的 选 项 是 最 为 常 见 的 可 以 详 细 显 示 出 各 种 信 息 若 想 显 示 出 所 有. 开 头 的 隐 藏 文 件, 可 以 使 用 -a, 这 在 嵌 入 式 开 发 中 很 常 用

注 意 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 Linux 中 的 可 执 行 文 件 不 是 与 Windows 一 样 通 过 文 件 扩 展 名 来 标 识 的, 而 是 通 过 设 置 文 件 相 应 的 可 执 行 属 性 来 实 现 的 3.mkdir (1) 作 用 创 建 一 个 目 录 (2) 格 式 mkdir [ 选 项 ] 路 径 (3) 常 见 参 数 mkdir 主 要 选 项 参 数 如 表 2.10 所 示 表 2.10 mkdir 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -m 对 新 建 目 录 设 置 存 取 权 限, 也 可 以 用 chmod 命 令 ( 在 本 节 后 会 有 详 细 说 明 ) 设 置 -p 可 以 是 一 个 路 径 名 称 此 时 若 此 路 径 中 的 某 些 目 录 尚 不 存 在, 在 加 上 此 选 项 后, 系 统 将 自 动 建 立 好 那 些 尚 不 存 在 的 目 录, 即 一 次 可 以 建 立 多 个 目 录 (4) 使 用 实 例 [david@localhost ~]$ mkdir -p./hello/my [david@localhost ~]$ cd hello/my [david@localhost my]$ pwd( 查 看 当 前 目 录 命 令 ) /home/david/hello/my 该 实 例 使 用 选 项 -p 一 次 创 建 了./hello/my 多 级 目 录 [david@localhost my]$ mkdir -m 777./why [david@localhost my]$ ls -l total 4 drwxrwxrwx 2 root root 4096 Jan 14 09:24 why 该 实 例 使 用 改 选 项 -m 创 建 了 相 应 权 限 的 目 录 对 于 777 的 权 限 在 本 节 后 面 会 有 详 细 的 说 明 (5) 使 用 说 明 该 命 令 要 求 创 建 目 录 的 用 户 在 创 建 路 径 的 上 级 目 录 中 具 有 写 权 限, 并 且 路 径 名 不 能 是 当 前 目 录 中 已 有 的 目 录 或 文 件 名 称 4.cat (1) 作 用 连 接 并 显 示 指 定 的 一 个 或 多 个 文 件 的 有 关 信 息 (2) 格 式

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 cat[ 选 项 ] 文 件 1 文 件 2 其 中 的 文 件 1 文 件 2 为 要 显 示 的 多 个 文 件 (3) 常 见 参 数 cat 命 令 的 常 见 参 数 如 表 2.11 所 示 表 2.11 cat 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -n 由 第 一 行 开 始 对 所 有 输 出 的 行 数 编 号 -b 和 -n 相 似, 只 不 过 对 于 空 白 行 不 编 号 (4) 使 用 实 例 [david@localhost ~]$ cat -n hello1.c hello2.c 1 #include <stdio.h> 2 void main() 3 4 printf("hello!this is my home!\n"); 5 6 #include <stdio.h> 7 void main() 8 9 printf("hello!this is your home!\n"); 10 在 该 实 例 中, 指 定 对 hello1.c 和 hello2.c 进 行 输 出, 并 指 定 行 号 5.cp mv 和 rm (1) 作 用 1 cp: 将 给 出 的 文 件 或 目 录 复 制 到 另 一 文 件 或 目 录 中 2 mv: 为 文 件 或 目 录 改 名 或 将 文 件 由 一 个 目 录 移 入 另 一 个 目 录 中 3 rm: 删 除 一 个 目 录 中 的 一 个 或 多 个 文 件 或 目 录 (2) 格 式 1 cp:cp [ 选 项 ] 源 文 件 或 目 录 目 标 文 件 或 目 录 2 mv:mv [ 选 项 ] 源 文 件 或 目 录 目 标 文 件 或 目 录 3 rm:rm [ 选 项 ] 文 件 或 目 录 (3) 常 见 参 数 1 cp 主 要 选 项 参 数 如 表 2.12 所 示 表 2.12 cp 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -a 保 留 链 接 文 件 属 性, 并 复 制 其 子 目 录, 其 作 用 等 于 dpr 选 项 的 组 合

-d 复 制 时 保 留 链 接 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 -f 删 除 已 经 存 在 的 目 标 文 件 而 不 提 示 -i 在 覆 盖 目 标 文 件 之 前 将 给 出 提 示 要 求 用 户 确 认 回 答 y 时 目 标 文 件 将 被 覆 盖, 而 且 是 交 互 式 复 制 -p 此 时 cp 除 复 制 源 文 件 的 内 容 外, 还 将 把 其 修 改 时 间 和 访 问 权 限 也 复 制 到 新 文 件 中 -r 若 给 出 的 源 文 件 是 一 个 目 录 文 件, 此 时 cp 将 递 归 复 制 该 目 录 下 所 有 的 子 目 录 和 文 件 此 时 目 标 文 件 必 须 为 一 个 目 录 名 2 mv 主 要 选 项 参 数 如 表 2.13 所 示 表 2.13 mv 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -i -f 若 mv 操 作 将 导 致 对 已 存 在 的 目 标 文 件 的 覆 盖, 此 时 系 统 询 问 是 否 重 写, 并 要 求 用 户 回 答 y 或 n, 这 样 可 以 避 免 误 覆 盖 文 件 禁 止 交 互 操 作 在 mv 操 作 要 覆 盖 某 已 有 的 目 标 文 件 时 不 给 任 何 指 示, 在 指 定 此 选 项 后,i 选 项 将 不 再 起 作 用 3 rm 主 要 选 项 参 数 如 表 2.14 所 示 表 2.14 rm 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -i 进 行 交 互 式 删 除 -f 忽 略 不 存 在 的 文 件, 但 从 不 给 出 提 示 -r 指 示 rm 将 参 数 中 列 出 的 全 部 目 录 和 子 目 录 均 递 归 地 删 除 (4) 使 用 实 例 1 cp [root@www hello]# cp -a./my/why/./ [root@www hello]# ls my why 该 实 例 使 用 -a 选 项 将 /my/why 目 录 下 的 所 有 文 件 复 制 到 当 前 目 录 下 而 此 时 在 原 先 目 录 下 还 有 原 有 的 文 件 2 mv [root@www hello]# mv -i./my/why/./ [root@www hello]# ls my why 该 实 例 中 把 /my/why 目 录 下 的 所 有 文 件 移 至 当 前 目 录, 则 原 目 录 下 文 件 被 自 动 删 除 3 rm [root@www hello]# rm r -i./why

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 rm: descend into directory './why'? y rm: remove './why/my.c'? y rm: remove directory './why'? y 该 实 例 使 用 -r 选 项 删 除./why 目 录 下 所 有 内 容, 系 统 会 进 行 确 认 是 否 删 除 (5) 使 用 说 明 1 cp: 该 命 令 把 指 定 的 源 文 件 复 制 到 目 标 文 件, 或 把 多 个 源 文 件 复 制 到 目 标 目 录 中 2 mv 该 命 令 根 据 命 令 中 第 二 个 参 数 类 型 的 不 同 ( 是 目 标 文 件 还 是 目 标 目 录 ) 来 判 断 是 重 命 名 还 是 移 动 文 件, 当 第 二 个 参 数 类 型 是 文 件 时,mv 命 令 完 成 文 件 重 命 名, 此 时, 它 将 所 给 的 源 文 件 或 目 录 重 命 名 为 给 定 的 目 标 文 件 名 ; 当 第 二 个 参 数 是 已 存 在 的 目 录 名 称 时,mv 命 令 将 各 参 数 指 定 的 源 文 件 均 移 至 目 标 目 录 中 ; 在 跨 文 件 系 统 移 动 文 件 时,mv 先 复 制, 再 将 原 有 文 件 删 除, 而 连 至 该 文 件 的 链 接 也 将 丢 失 3 rm 如 果 没 有 使 用 - r 选 项, 则 rm 不 会 删 除 目 录 ; 使 用 该 命 令 时 一 旦 文 件 被 删 除, 它 是 不 能 被 恢 复 的, 所 以 最 好 使 用 -i 参 数 6.chown 和 chgrp (1) 作 用 1 chown: 修 改 文 件 所 有 者 和 组 别 2 chgrp: 改 变 文 件 的 组 所 有 权 (2) 格 式 1 chown:chown [ 选 项 ]... 文 件 所 有 者 [ 所 有 者 组 名 ] 文 件 其 中 的 文 件 所 有 者 为 修 改 后 的 文 件 所 有 者 2 chgrp:chgrp [ 选 项 ]... 文 件 所 有 组 文 件 其 中 的 文 件 所 有 组 为 改 变 后 的 文 件 组 拥 有 者 (3) 常 见 参 数 chown 和 chgrp 的 常 见 参 数 意 义 相 同, 其 主 要 选 项 参 数 如 表 2.15 所 示 表 2.15 chown 和 chgrp 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -c,-changes -f,--silent,--quiet 详 尽 地 描 述 每 个 file 实 际 改 变 了 哪 些 所 有 权 不 打 印 文 件 所 有 权 就 不 能 修 改 的 报 错 信 息 (4) 使 用 实 例 在 笔 者 的 系 统 中 一 个 文 件 的 所 有 者 原 先 是 这 样 的 [root@localhost test]#$ ls -l

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 -rwxr-xr-x 15 apectel david 4096 6 月 4 200X uclinux-dist.tar 可 以 看 出, 这 是 一 个 文 件, 文 件 拥 有 者 是 apectel, 具 有 可 读 写 和 执 行 的 权 限, 它 所 属 的 用 户 组 是 david, 具 有 可 读 和 执 行 的 权 限, 但 没 有 可 写 的 权 限, 同 样, 系 统 其 他 用 户 对 其 也 只 有 可 读 和 执 行 的 权 限 首 先 使 用 chown 将 文 件 所 有 者 改 为 root [root@localhost test]# chown root uclinux-dist.tar [root@localhost test]# ls l -rwxr-xr-x 15 root david 4096 6 月 4 200X uclinux-dist.tar 可 以 看 出, 此 时, 该 文 件 拥 有 者 变 为 了 root, 它 所 属 文 件 用 户 组 不 变 接 着 使 用 chgrp 将 文 件 用 户 组 变 为 root [root@localhost test]# chgrp root uclinux-dist.tar [root@localhost test]# ls l -rwxr-xr-x 15 root root 4096 6 月 4 200X uclinux-dist.tar (5) 使 用 说 明 使 用 chown 和 chgrp 必 须 拥 有 root 权 限 小 知 识 在 进 行 有 关 文 件 的 操 作 时, 若 想 避 免 输 入 冗 长 的 文 件, 在 文 件 名 没 有 重 复 的 情 况 下 可 以 使 用 输 入 文 件 前 几 个 字 母 +<Tab> 键 的 方 式, 即 :cd /uc<tab> 会 显 示 cd /uclinux-list 7.chmod (1) 作 用 改 变 文 件 的 访 问 权 限 (2) 格 式 chmod 可 使 用 符 号 标 记 进 行 更 改 和 八 进 制 数 指 定 更 改 两 种 方 式, 因 此 它 的 格 式 也 有 两 种 不 同 的 形 式 1 符 号 标 记 :chmod [ 选 项 ] 符 号 权 限 [ 符 号 权 限 ] 文 件 其 中 的 符 号 权 限 可 以 指 定 为 多 个, 也 就 是 说, 可 以 指 定 多 个 用 户 级 别 的 权 限, 但 它 们 中 间 要 用 逗 号 分 开 表 示, 若 没 有 显 式 指 出 则 表 示 不 作 更 改 2 八 进 制 数 :chmod [ 选 项 ] 八 进 制 权 限 文 件 其 中 的 八 进 制 权 限 是 指 要 更 改 后 的 文 件 权 限 (3) 选 项 参 数 chmod 主 要 选 项 参 数 如 表 2.16 所 示 表 2.16 chmod 命 令 常 见 参 数 列 表

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 选 项 参 数 含 义 -c 若 该 文 件 权 限 确 实 已 经 更 改, 才 显 示 其 更 改 动 作 -f 若 该 文 件 权 限 无 法 被 更 改 也 不 要 显 示 错 误 信 息 -v 显 示 权 限 变 更 的 详 细 资 料 (4) 使 用 实 例 chmod 涉 及 文 件 的 访 问 权 限, 在 此 对 相 关 的 概 念 进 行 简 单 的 回 顾 在 1.3.1 节 中 已 经 提 到, 文 件 的 访 问 权 限 可 表 示 成 :- rwx rwx rwx 在 此 设 有 3 种 不 同 的 访 问 权 限 : 读 (r) 写 ( w ) 和 运 行 (x) 3 个 不 同 的 用 户 级 别 : 文 件 拥 有 者 (u) 所 属 的 用 户 组 (g) 和 系 统 里 的 其 他 用 户 (o) 在 此, 可 增 加 一 个 用 户 级 别 a(all) 来 表 示 所 有 这 3 个 不 同 的 用 户 级 别 1 第 一 种 符 号 连 接 方 式 的 chmod 命 令 中, 用 加 号 + 代 表 增 加 权 限, 用 减 号 代 表 删 除 权 限, 等 于 号 = 代 表 设 置 权 限 例 如, 原 先 笔 者 系 统 中 有 文 件 uclinux20031103.tgz, 其 权 限 如 下 所 示 [root@localhost test]# ls l -rw-r--r-- 1 root root 79708616 Mar 24 2005 uclinux20031103.tgz [root@localhost test]# chmod a+rx,u+w uclinux20031103.tgz [root@localhost test]# ls l -rwxr-xr-x 1 root root 79708616 Mar 24 2005 uclinux20031103.tgz 可 见, 在 执 行 了 chmod 之 后, 文 件 拥 有 者 除 拥 有 所 有 用 户 都 有 的 可 读 和 执 行 的 权 限 外, 还 有 可 写 的 权 限 2 对 于 第 二 种 八 进 制 数 指 定 的 方 式, 将 文 件 权 限 字 符 代 表 的 有 效 位 设 为 1, 即 rw- rw- 和 r-- 的 八 进 制 表 示 为 110 110 100, 把 这 个 二 进 制 串 转 换 成 对 应 的 八 进 制 数 就 是 6 6 4, 也 就 是 说 该 文 件 的 权 限 为 664( 三 位 八 进 制 数 ) 这 样 对 于 转 化 后 八 进 制 数 二 进 制 及 对 应 权 限 的 关 系 如 表 2.17 所 示 表 2.17 转 化 后 八 进 制 数 二 进 制 及 对 应 权 限 的 关 系 转 换 后 八 进 制 数 二 进 制 对 应 权 限 转 换 后 八 进 制 数 二 进 制 对 应 权 限 0 000 没 有 任 何 权 限 1 001 只 能 执 行 2 010 只 写 3 011 只 写 和 执 行 4 100 只 读 5 101 只 读 和 执 行 6 110 读 和 写 7 111 读 写 和 执 行 同 上 例, 原 先 笔 者 系 统 中 有 文 件 genromfs-0.5.1.tar.gz, 其 权 限 如 下 所 示 [root@localhost test]# ls l -rw-rw-r-- 1 david david 20543 Dec 29 2004 genromfs-0.5.1.tar.gz

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 [root@localhost test]# chmod 765 genromfs-0.5.1.tar.gz [root@localhost test]# ls l -rwxrw-r-x 1 david david 20543 Dec 29 2004 genromfs-0.5.1.tar.gz 可 见, 在 执 行 了 chmod 765 之 后, 该 文 件 的 拥 有 者 权 限 文 件 组 权 限 和 其 他 用 户 权 限 都 恰 当 地 对 应 了 (5) 使 用 说 明 使 用 chmod 必 须 具 有 root 权 限 想 一 想 chmod o+x uclinux20031103.tgz 是 什 么 意 思? 它 所 对 应 的 八 进 制 数 指 定 更 改 应 如 何 表 示? 8.grep (1) 作 用 在 指 定 文 件 中 搜 索 特 定 的 内 容, 并 将 含 有 这 些 内 容 的 行 标 准 输 出 (2) 格 式 grep [ 选 项 ] 格 式 [ 文 件 及 路 径 ] 其 中 的 格 式 是 指 要 搜 索 的 内 容 格 式, 若 缺 省 文 件 及 路 径 则 默 认 表 示 在 当 前 目 录 下 搜 索 (3) 常 见 参 数 grep 主 要 选 项 参 数 如 表 2.18 所 示 表 2.18 grep 命 令 常 见 参 数 列 表 选 项 参 数 含 义 -c 只 输 出 匹 配 行 的 计 数 -I 不 区 分 大 小 写 ( 只 适 用 于 单 字 符 ) -h 查 询 多 文 件 时 不 显 示 文 件 名 -l 查 询 多 文 件 时 只 输 出 包 含 匹 配 字 符 的 文 件 名 -n 显 示 匹 配 行 及 行 号 -s 不 显 示 不 存 在 或 无 匹 配 文 本 的 错 误 信 息 -v 显 示 不 包 含 匹 配 文 本 的 所 有 行 (4) 使 用 实 例 [root@localhost test]# grep "hello" / -r Binary file./iscit2005/ 备 份 /iscit2004.sql matches./arm_tools/uclinux-samsung/linux-2.4.x/documentation/s390/debuggin g390.txt:hello world$2 = 0

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 在 本 例 中, hello 是 要 搜 索 的 内 容, / -r 是 指 定 文 件, 表 示 搜 索 根 目 录 下 的 所 有 文 件 (5) 使 用 说 明 在 缺 省 情 况 下, grep 只 搜 索 当 前 目 录 如 果 此 目 录 下 有 许 多 子 目 录, grep 会 以 如 下 形 式 列 出 : grep:sound:is a directory 这 会 使 grep 的 输 出 难 以 阅 读 但 有 以 下 两 种 解 决 的 方 法 1 明 确 要 求 搜 索 子 目 录 :grep r( 正 如 上 例 中 所 示 ); 2 忽 略 子 目 录 :grep -d skip 当 预 料 到 有 许 多 输 出 时, 可 以 通 过 管 道 将 其 转 到 less ( 分 页 器 ) 上 阅 读 : 如 grep "h"./ -r less 分 页 阅 读 grep 特 殊 用 法 grep pattern1 pattern2 files: 显 示 匹 配 pattern1 或 pattern2 的 行 ; grep pattern1 files grep pattern2: 显 示 既 匹 配 pattern1 又 匹 配 pattern2 的 行 ; 小 知 识 在 文 件 命 令 中 经 常 会 使 用 pattern 正 则 表 达 式, 它 是 可 以 描 述 一 类 字 符 串 的 模 式 (Pattern), 如 果 一 个 字 符 串 可 以 用 某 个 正 则 表 达 式 来 描 述, 就 称 这 个 字 符 和 该 正 则 表 达 式 匹 配 这 和 DOS 中 用 户 可 以 使 用 通 配 符 * 代 表 任 意 字 符 类 似 在 Linux 系 统 上, 正 则 表 达 式 通 常 被 用 来 查 找 文 本 的 模 式, 以 及 对 文 本 执 行 搜 索 - 替 换 操 作 等 正 则 表 达 式 的 主 要 参 数 有 如 下 \: 忽 略 正 则 表 达 式 中 特 殊 字 符 的 原 有 含 义 ; ^: 匹 配 正 则 表 达 式 的 开 始 行 ; $: 匹 配 正 则 表 达 式 的 结 束 行 ; <: 从 匹 配 正 则 表 达 式 的 行 开 始 ; >: 到 匹 配 正 则 表 达 式 的 行 结 束 ; [ ]: 单 个 字 符, 如 [A] 即 A 符 合 要 求 ; [-]: 范 围, 如 [A-Z], 即 A B C 一 直 到 Z 都 符 合 要 求 ; : 所 有 的 单 个 字 符 ; *: 所 有 字 符, 长 度 可 以 为 0 9.find (1) 作 用 在 指 定 目 录 中 搜 索 文 件, 它 的 使 用 权 限 是 所 有 用 户 (2) 格 式 find [ 路 径 ][ 选 项 ][ 描 述 ] 其 中 的 路 径 为 文 件 搜 索 路 径, 系 统 开 始 沿 着 此 目 录 树 向 下 查 找 文 件 它 是 一 个 路 径 列 表, 相 互 用 空 格 分 离 若 缺 省 路 径, 那 么 默 认 为 当 前 目 录 其 中 的 描 述 是 匹 配 表 达 式, 是 find 命 令 接 受 的 表 达 式 (3) 常 见 参 数

[ 选 项 ] 主 要 参 数 如 表 2.19 所 示 嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 表 2.19 find 选 项 常 见 参 数 列 表 选 项 参 数 含 义 -depth -mount 使 用 深 度 级 别 的 查 找 过 程 方 式, 在 某 层 指 定 目 录 中 优 先 查 找 文 件 内 容 不 在 其 他 文 件 系 统 ( 如 Msdos Vfat 等 ) 的 目 录 和 文 件 中 查 找 [ 描 述 ] 主 要 参 数 如 表 2.20 所 示 表 2.20 find 描 述 常 见 参 数 列 表 选 项 参 数 含 义 -name 支 持 通 配 符 * 和? -user -print 用 户 名 : 搜 索 文 件 属 主 为 用 户 名 (ID 或 名 称 ) 的 文 件 输 出 搜 索 结 果, 并 且 打 印 (4) 使 用 实 例 [root@localhost test]# find./ -name hello*.c./hello1.c./iscit2005/hello2.c 在 该 实 例 中 使 用 了 -name 的 选 项 支 持 通 配 符 (5) 使 用 说 明 若 使 用 目 录 路 径 为 /, 通 常 需 要 查 找 较 多 的 时 间, 可 以 指 定 更 为 确 切 的 路 径 以 减 少 查 找 时 间 find 命 令 可 以 使 用 混 合 查 找 的 方 法, 例 如, 想 在 /etc 目 录 中 查 找 大 于 500000 字 节, 并 且 在 24 小 时 内 修 改 的 某 个 文 件, 则 可 以 使 用 -and( 与 ) 把 两 个 查 找 参 数 链 接 起 来 组 合 成 一 个 混 合 的 查 找 方 式, 如 find /etc -size +500000c -and -mtime +1 10.locate (1) 作 用 用 于 查 找 文 件 其 方 法 是 先 建 立 一 个 包 括 系 统 内 所 有 文 件 名 称 及 路 径 的 数 据 库, 之 后 当 寻 找 时 就 只 需 查 询 这 个 数 据 库, 而 不 必 实 际 深 入 档 案 系 统 之 中 了 因 此 其 速 度 比 find 快 很 多 (2) 格 式 locate [ 选 项 ] (3)locate 主 要 选 项 参 数 如 表 2.21 所 示 表 2.21 locate 命 令 常 见 参 数 列 表

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 选 项 参 数 含 义 -u 从 根 目 录 开 始 建 立 数 据 库 -U 在 指 定 的 位 置 开 始 建 立 数 据 库 -f 将 特 定 的 文 件 系 统 排 除 在 数 据 库 外, 例 如 proc 文 件 系 统 中 的 文 件 -r 使 用 正 则 运 算 式 做 寻 找 的 条 件 -o 指 定 数 据 库 的 名 称 (4) 使 用 实 例 [root@localhost test]# locate issue -U./ [root@localhost test]# updatedb [root@localhost test]# locate -r issue*./arm_tools/uclinux-samsung/lib/libpam/doc/modules/pam_issue.sgml./arm_tools/uclinux-samsung/lib/libpam/modules/pam_issue./arm_tools/uclinux-samsung/lib/libpam/modules/pam_issue/makefile./arm_tools/uclinux-samsung/lib/libpam/modules/pam_issue/pam_issue. c 实 例 中 首 先 在 当 前 目 录 下 建 立 了 一 个 数 据 库, 并 且 在 更 新 了 数 据 库 之 后 进 行 正 则 匹 配 查 找 通 过 运 行 可 以 发 现 locate 的 运 行 速 度 非 常 快 (5) 使 用 说 明 locate 命 令 所 查 询 的 数 据 库 由 updatedb 程 序 来 更 新, 而 updatedb 是 由 cron daemon 周 期 性 建 立 的, 但 若 所 找 到 的 档 案 是 最 近 才 建 立 或 刚 改 名 的, 可 能 会 找 不 到, 因 为 updatedb 默 认 每 天 运 行 一 次, 用 户 可 以 由 修 改 crontab 配 置 (etc/crontab) 来 更 新 周 期 值 11.ln (1) 作 用 为 某 一 个 文 件 在 另 外 一 个 位 置 建 立 一 个 符 号 链 接 当 需 要 在 不 同 的 目 录 用 到 相 同 的 文 件 时,Linux 允 许 用 户 不 用 在 每 一 个 需 要 的 目 录 下 都 存 放 一 个 相 同 的 文 件, 而 只 需 将 其 他 目 录 下 的 文 件 用 ln 命 令 链 接 即 可, 这 样 就 不 必 重 复 地 占 用 磁 盘 空 间 (2) 格 式 ln[ 选 项 ] 目 标 目 录 (3) 常 见 参 数 s 建 立 符 号 链 接 ( 这 也 是 通 常 惟 一 使 用 的 参 数 ) ( 4 ) 使 用 实 例 [root@localhost test]# ln -s../genromfs-0.5.1.tar.gz./hello [root@localhost test]# ls -l total 77948

嵌 入 式 Linux 应 用 程 序 开 发 标 准 教 程 第 2 章 Linux 基 础 命 令 lrwxrwxrwx 1 root root 24 Jan 14 00:25 hello ->../genromfs-0.5.1.tar.gz 该 实 例 建 立 了 当 前 目 录 的 hello 文 件 与 上 级 目 录 之 间 的 符 号 链 接, 可 以 看 见, 在 hello 的 ls l 中 的 第 一 位 为 l, 表 示 符 号 链 接, 同 时 还 显 示 了 链 接 的 源 文 件 (5) 使 用 说 明 ln 命 令 会 保 持 每 一 处 链 接 文 件 的 同 步 性, 也 就 是 说, 不 论 改 动 了 哪 一 处, 其 他 的 文 件 都 会 发 生 相 同 的 变 化 ln 的 链 接 分 软 链 接 和 硬 链 接 两 种 软 链 接 就 是 上 面 所 说 的 ln -s ** **, 它 只 会 在 用 户 选 定 的 位 置 上 生 成 一 个 文 件 的 镜 像, 不 会 重 复 占 用 磁 盘 空 间, 平 时 使 用 较 多 的 都 是 软 链 接 硬 链 接 是 不 带 参 数 的 ln ** **, 它 会 在 用 户 选 定 的 位 置 上 生 成 一 个 和 源 文 件 大 小 相 同 的 文 件, 无 论 是 软 链 接 还 是 硬 链 接, 文 件 都 保 持 同 步 变 化 2.1.3 压 缩 打 包 相 关 命 令 Linux 中 打 包 压 缩 的 相 关 命 令 如 表 2.22 所 示, 本 书 以 gzip 和 tar 为 例 进 行 讲 解 表 2.22 Linux 常 见 系 统 管 理 命 令 命 令 命 令 含 义 格 式 bzip2.bz2 文 件 的 压 缩 ( 或 解 压 缩 ) 程 序 bzip2[ 选 项 ] 压 缩 ( 解 压 缩 ) 的 文 件 名 bunzip2.bz2 文 件 的 解 压 缩 程 序 bunzip2[ 选 项 ].bz2 压 缩 文 件 bzip2recover 修 复 损 坏 的.bz2 文 件 bzip2recover.bz2 压 缩 文 件 gzip.gz 文 件 的 压 缩 程 序 gzip [ 选 项 ] 压 缩 ( 解 压 缩 ) 的 文 件 名 gunzip 解 压 缩 被 gzip 压 缩 过 的 文 件 gunzip [ 选 项 ].gz 文 件 名 unzip 解 压 缩 winzip 压 缩 的.zip 文 件 unzip [ 选 项 ].zip 压 缩 文 件 compress tar 早 期 的 压 缩 或 解 压 缩 程 序 ( 压 缩 后 文 件 名 为.Z) 对 文 件 目 录 进 行 打 包 或 解 压 缩 compress [ 选 项 ] 文 件 tar [ 选 项 ] [ 打 包 后 文 件 名 ] 文 件 目 录 列 表 1.gzip (1) 作 用 对 文 件 进 行 压 缩 和 解 压 缩, 而 且 gzip 根 据 文 件 类 型 可 自 动 识 别 压 缩 或 解 压 (2) 格 式 gzip [ 选 项 ] 压 缩 ( 解 压 缩 ) 的 文 件 名 (3) 常 见 参 数 gzip 主 要 选 项 参 数 如 表 2.23 所 示 表 2.23 gzip 命 令 常 见 参 数 列 表 选 项 参 数 含 义