复 习 : 文 件 属 性 和 Linux 文 件 结 构
文 件 属 性 第 一 个 字 符 显 示 文 件 的 类 型 : - 表 示 普 通 文 件 d 表 示 目 录 文 件 l 表 示 链 接 文 件 c 表 示 字 符 设 备 b 表 示 块 设 备 p 表 示 命 名 管 道 比 如 FIFO 文 件 (First In First Out, 先 进 先 出 ) f 表 示 堆 栈 文 件 比 如 LIFO 文 件 (Last In First Out, 后 进 先 出 ) s 表 示 套 接 字 第 一 个 字 符 之 后 有 3 个 三 位 字 符 组 : 第 一 个 三 位 字 符 组 表 示 对 于 文 件 拥 有 者 (u) 对 该 文 件 的 权 限 ; 第 二 个 三 位 字 符 组 表 示 文 件 用 户 组 (g) 对 该 文 件 的 权 限 ; 第 三 个 三 位 字 符 组 表 示 系 统 其 他 用 户 (o) 对 该 文 件 的 权 限 ; 若 该 用 户 组 对 此 没 有 权 限, 一 般 显 示 - 字 符
Linux 目 录 结 构
Linux 目 录 结 构 (1) /bin 该 目 录 中 存 放 Linux 的 常 用 命 令 /boot 该 目 录 下 存 放 的 都 是 系 统 启 动 时 要 用 到 的 程 序 /dev 该 目 录 包 含 了 Linux 系 统 中 使 用 的 所 有 外 部 设 备, 它 实 际 上 是 访 问 这 些 外 部 设 备 的 端 口, 你 可 以 访 问 这 些 外 部 设 备, 与 访 问 一 个 文 件 或 一 个 目 录 没 有 区 别
Linux 目 录 结 构 (2) /sbin 该 目 录 用 来 存 放 系 统 管 理 员 的 系 统 管 理 程 序 /usr 用 户 应 用 程 序 和 文 件 都 存 放 在 该 目 录 下 /etc 该 目 录 存 放 了 系 统 管 理 时 要 用 到 的 各 种 配 置 文 件 和 子 目 录, 例 如 网 络 配 置 文 件 文 件 系 统 等 /home 用 来 存 放 该 用 户 的 主 目 录
Linux 目 录 结 构 (3) /lib 该 目 录 用 来 存 放 系 统 动 态 连 接 共 享 库, 几 乎 所 有 的 应 用 程 序 都 会 用 到 该 目 录 下 的 共 享 库 /tmp 用 来 存 放 不 同 程 序 执 行 时 产 生 的 临 时 文 件 /lost+found 该 目 录 在 大 多 数 情 况 下 都 是 空 的 但 当 突 然 停 电 或 者 非 正 常 关 机 后, 有 些 文 件 就 临 时 存 放 在 这 里 /mnt 该 目 录 在 一 般 情 况 下 也 是 空 的, 你 可 以 临 时 将 别 的 文 件 系 统 挂 在 该 目 录 下
Linux 目 录 结 构 (4) /proc 可 以 在 该 目 录 下 获 取 系 统 信 息, 这 些 信 息 是 在 内 存 中 由 系 统 自 己 产 生 的 /root 超 级 用 户 的 主 目 录 /sys sys 文 件 系 统 /proc proc 文 件 系 统
第 二 章 Linux 基 础 命 令 (4 课 时 ) 课 程 资 源 :elearning.hfuu.edu.cn 课 程 服 务 器 RHEL6:172.31.7.237 课 程 服 务 器 Ubuntu:172.31.7.231
本 章 要 求 第 二 章 Linux 基 础 命 令 掌 握 Shell 基 本 概 念 熟 练 使 用 Linux 中 用 户 管 理 命 令 熟 练 使 用 Linux 中 系 统 相 关 命 令 熟 练 使 用 Linux 中 文 件 目 录 相 关 命 令 熟 练 使 用 Linux 中 打 包 压 缩 相 关 命 令 熟 练 使 用 Linux 中 文 件 比 较 合 并 相 关 命 令 熟 练 使 用 Linux 中 网 络 相 关 命 令 了 解 Linux 的 启 动 过 程 深 入 了 解 INIT 进 程 及 其 配 置 文 件 能 够 独 立 完 成 在 Linux 中 解 压 软 件 学 会 添 加 环 境 变 量 能 够 独 立 定 制 Linux 中 系 统 服 务
本 章 的 主 要 内 容 2.1 Linux 常 用 命 令 2.2 Linux 启 动 过 程 详 解 2.3 Linux 系 统 服 务 2.4 实 验
2.1 Linux 常 用 命 令
P14 SHELL 基 本 概 念 Shell 是 Linux 系 统 的 用 户 界 面, 提 供 了 用 户 与 内 核 进 行 交 互 操 作 的 一 种 接 口 它 接 收 用 户 输 入 的 命 令 并 把 它 送 入 内 核 去 执 行 shell 也 被 称 为 LINUX 的 命 令 解 释 器 (command interpreter) 用 户 在 命 令 行 下 工 作 时, 通 过 SHELL 和 内 核 交 互 用 户 内 核 SHELL 自 身 是 一 个 解 释 型 程 序 设 计 语 言 SHELL
Name UNIX 类 系 统 常 见 的 shell Common shells used on UNIX systems * Path FreeBSD 5.2.1 Linux 2.4.22 Bourne shell /bin/sh link to bash Bourneagain shell Mac OS X 10.3 Solaris 9 link to bash /bin/bash optional C shell /bin/csh link to tcsh link to tcsh link to tcsh Korn shell /bin/ksh TENEX C shell /bin/tcsh Bourne shell,linux 与 之 对 应 的 是 bash,linux 默 认 的 shell C shell, Linux 与 之 对 应 的 是 csh *: Korn Advanced shell,linux Programming 与 之 对 应 的 in 是 the ksh UNIX Environment: Second Edition TC shell, Linux 与 之 对 应 的 是 tcsh Z shell, Linux 与 之 对 应 的 是 zsh
常 用 的 shell Shell 程 序 放 在 /bin/ 目 录 下 Shell 命 令 可 以 被 分 为 内 部 ( 内 置 ) 命 令 和 外 部 命 令 内 部 命 令 是 shell 本 身 包 含 的 一 些 命 令, 这 些 内 部 命 令 的 代 码 是 整 个 shell 代 码 的 一 个 组 成 部 分 ; 内 部 命 令,shell 是 通 过 执 行 自 己 代 码 中 相 应 的 部 分 来 完 成 的 外 部 命 令 的 代 码 则 存 放 在 一 些 二 进 制 的 可 执 行 文 件 或 者 shell 脚 本 中 外 部 命 令,shell 会 到 文 件 系 统 结 构 (file system structure) 中 的 一 些 目 录 去 搜 索 那 些 文 件 名 与 外 部 命 令 的 名 字 相 同 的 文 件, 因 为 shell 认 为 这 些 文 件 中 就 存 放 了 将 要 执 行 的 代 码
Bash 的 启 动 次 序
Bash 启 动 读 取 配 置 文 件
写 一 个 脚 本, 执 行 后, 打 印 一 行 提 示 Please input a number: 要 求 用 户 输 入 数 值, 然 后 打 印 出 该 数 值, 然 后 再 次 要 求 用 户 输 入 数 值 直 到 用 户 输 入 "end" 停 止 ////////////////////////////////////////// #!/bin/sh unset var while [ "$var"!= "end" ] do echo -n "please input a number: " read var if [ "$var" = "end" ] then break fi echo "var is $var" done
Linux 常 用 操 作 命 令 使 用 频 率 重 要 程 度 图 示 五 星 频 率 极 高 非 常 重 要 三 星 频 率 一 般 一 般 重 要 一 星 偶 尔 使 用 时 查 找 以 下 所 有 命 令 均 按 照 以 下 方 式 标 明 其 使 用 频 率 和 重 要 程 度 : 如 : 5+3 表 示 使 用 频 率 为 5 星, 重 要 程 度 为 3 星
Linux 常 用 操 作 命 令 - 用 户 切 换 用 户 切 换 (su) (1) 作 用 Ubuntu 需 要 配 置 允 许 使 用 root, 才 可 以 使 用 su 命 令 推 荐 使 用 其 sudo 命 令 变 更 为 其 它 使 用 者 的 身 份, 主 要 用 于 将 普 通 用 户 身 份 转 变 为 超 级 用 户, 而 且 需 输 入 相 应 用 户 密 码 (2) 格 式 su [ 选 项 ] [ 使 用 者 ] 其 中 的 使 用 者 为 要 变 更 的 对 应 使 用 者 (3) 常 见 参 数 命 令 频 率 + 重 要 程 度 : 4+5 -,-l,--login: 为 该 使 用 者 重 新 登 录, 大 部 分 环 境 变 量 ( 如 HOME SHELL 和 USER 等 ) 和 工 作 目 录 都 是 以 该 使 用 者 (USER) 为 主 若 没 有 指 定 USER, 缺 省 情 况 是 root -m,-p: 执 行 su 时 不 改 变 环 境 变 量 -c,--command: 变 更 账 号 为 USER 的 使 用 者, 并 执 行 指 令 (command) 后 再 变 回 原 来 使 用 者 P15 环 境 变 量
用 户 管 理 命 令 (1) useradd: 添 加 用 户 账 号 useradd [ 选 项 ] 用 户 名 usermod: 设 置 用 户 账 号 属 性 usermod [ 选 项 ] 属 性 值 userdel: 删 除 对 应 用 户 账 号 userdel [ 选 项 ] 用 户 名 命 令 频 率 + 重 要 程 度 : 3+3
用 户 管 理 命 令 (2) groupadd: 添 加 组 账 号 groupadd [ 选 项 ] 组 账 号 groupmod: 设 置 组 账 号 属 性 groupmod [ 选 项 ] 属 性 值 groupdel: 删 除 对 应 组 账 号 groupdel [ 选 项 ] 组 账 号 命 令 频 率 + 重 要 程 度 : 3+3
用 户 管 理 命 令 (3) passwd: 设 置 账 号 密 码 passwd [ 对 应 账 号 ] id: 显 示 用 户 ID 组 ID 和 用 户 所 属 的 组 列 表 id [ 用 户 名 ] groups: 显 示 用 户 所 属 的 组 groups [ 组 账 号 ] who: 显 示 登 录 到 系 统 的 所 有 用 户 who 命 令 频 率 + 重 要 程 度 : 4+3
系 统 管 理 命 令 (1) ps: 显 示 当 前 系 统 中 由 该 用 户 运 行 的 进 程 列 表 ps [ 选 项 ] top: 动 态 显 示 系 统 中 运 行 的 程 序 ( 一 般 为 每 隔 5s) top kill: 输 出 特 定 的 信 号 给 指 定 PID( 进 程 号 ) 的 进 程 kill [ 选 项 ] 进 程 号 (PID) uname 显 示 系 统 的 信 息 ( 可 加 选 项 -a) uname [ 选 项 ] 命 令 频 率 + 重 要 程 度 : 4+5
系 统 管 理 命 令 (2) setup: 系 统 图 形 化 界 面 配 置 setup crontab: 循 环 执 行 例 行 性 命 令 crontab [ 选 项 ] shutdown: 关 闭 或 重 启 Linux 系 统 shutdown [ 选 项 ] [ 时 间 ] uptime: 显 示 系 统 已 经 运 行 了 多 长 时 间 uptime clear: 清 除 屏 幕 上 的 信 息 clear 命 令 频 率 + 重 要 程 度 : 3+3
磁 盘 相 关 命 令 free: 查 看 当 前 系 统 内 存 的 使 用 情 况 free [ 选 项 ] df : 查 看 文 件 系 统 的 磁 盘 空 间 占 用 情 况 df [ 选 项 ] du : 统 计 目 录 ( 或 文 件 ) 所 占 磁 盘 空 间 的 大 小 du [ 选 项 ] fdisk : 查 看 硬 盘 分 区 情 况 及 对 硬 盘 进 行 分 区 管 理 fdisk [-l] 命 令 频 率 + 重 要 程 度 : 3+3
文 件 系 统 挂 载 命 令 (mount) (1) 作 用 挂 载 文 件 系 统, 它 的 使 用 权 限 是 超 级 用 户 或 /etc/fstab 中 允 许 的 使 用 者 挂 载 是 指 把 分 区 和 目 录 对 应 的 过 程, 而 挂 载 点 是 指 挂 载 在 文 件 树 中 的 位 置 mount 命 令 就 可 以 把 文 件 系 统 挂 载 到 相 应 的 目 录 下, 并 且 由 于 Linux 中 把 设 备 都 当 作 文 件 一 样 使 用, 因 此,mount 命 令 也 可 以 挂 载 不 同 的 设 备 通 常, 在 Linux 下 /mnt 目 录 是 专 门 用 于 挂 载 不 同 的 文 件 系 统 的, 它 可 以 在 该 目 录 下 新 建 不 同 的 子 目 录 来 挂 载 不 同 的 设 备 文 件 系 统 (2) 格 式 mount [ 选 项 ] [ 类 型 ] 设 备 文 件 名 挂 载 点 目 录 其 中 的 类 型 是 指 设 备 文 件 的 类 型 命 令 频 率 + 重 要 程 度 : 4+5
(3) 常 见 参 数 -a: 依 照 /etc/fstab 的 内 容 装 载 所 有 相 关 的 硬 盘 -l: 列 出 当 前 已 挂 载 的 设 备 文 件 系 统 名 称 和 挂 载 点 -t: 类 型 将 后 面 的 设 备 以 指 定 类 型 的 文 件 格 式 装 载 到 挂 载 点 上 常 见 的 类 型 有 前 面 介 绍 过 的 几 种 : vfat ext3 ext2 iso9660 nfs 等 -f: 通 常 用 于 除 错 它 会 使 mount 不 执 行 实 际 挂 上 的 动 作, 而 是 模 拟 整 个 挂 上 的 过 程, 通 常 会 和 -v 一 起 使 用
举 例 :mount 命 令 在 嵌 入 式 开 发 中 的 应 用 mount 172.31.7.237(RHEL6) 提 供 NFS( 网 络 文 件 共 享 服 务 ) 172.31.7.231(UBUNTU) /mnt
文 件 相 关 命 令 (1) cd: 改 变 当 前 工 作 目 录 cd [ 路 径 ] ls: 列 出 目 录 和 文 件 的 信 息 ls [ 选 项 ] [ 文 件 ] mkdir : 创 建 一 个 目 录 mkdir [ 选 项 ] 路 径 cat : 连 接 并 显 示 指 定 的 一 个 和 多 个 文 件 的 有 关 信 息 cat[ 选 项 ] 文 件 1 文 件 2 其 中 的 文 件 1 文 件 2 为 要 显 示 的 多 个 文 件 命 令 频 率 + 重 要 程 度 : 5+5
文 件 相 关 命 令 (2) cp: 将 给 出 的 文 件 或 目 录 复 制 到 另 一 文 件 或 目 录 中 cp:cp [ 选 项 ] 源 文 件 或 目 录 目 标 文 件 或 目 录 mv: 为 文 件 或 目 录 改 名 或 将 文 件 由 一 个 目 录 移 入 另 一 个 目 录 中 mv [ 选 项 ] 源 文 件 或 目 录 目 标 文 件 或 目 录 rm: 删 除 一 个 目 录 中 的 一 个 或 多 个 文 件 或 目 录 rm [ 选 项 ] 文 件 或 目 录 命 令 频 率 + 重 要 程 度 : 5+5
文 件 相 关 命 令 (3) chown: 修 改 文 件 所 有 者 和 组 别 命 令 频 率 + 重 要 程 度 :3+3 chown [ 选 项 ]... 文 件 所 有 者 [ 所 有 者 组 名 ] 文 件 其 中 的 文 件 所 有 者 为 修 改 后 的 文 件 所 有 者 chgrp: 改 变 文 件 的 组 所 有 权 命 令 频 率 + 重 要 程 度 :3+3 chgrp:chgrp [ 选 项 ]... 文 件 所 有 组 文 件 其 中 的 文 件 所 有 组 为 改 变 后 的 文 件 组 拥 有 者 chmod : 改 变 文 件 的 访 问 权 限 命 令 频 率 + 重 要 程 度 :5+5 chmod [ 选 项 ] 符 号 权 限 [ 符 号 权 限 ] 文 件 chmod [ 选 项 ] 八 进 制 权 限 文 件
文 件 相 关 命 令 (4) grep : 在 指 定 文 件 中 搜 索 特 定 的 内 容, 并 将 含 有 这 些 内 容 的 行 标 准 输 出 命 令 频 率 + 重 要 程 度 :4+5 grep [ 选 项 ] 格 式 [ 文 件 及 路 径 ] find : 在 指 定 目 录 中 搜 索 文 件, 它 的 使 用 权 限 是 所 有 用 户 命 令 频 率 + 重 要 程 度 :4+5 find [ 路 径 ][ 选 项 ][ 描 述 ] locate: 用 于 查 找 文 件 其 方 法 是 先 建 立 一 个 包 括 系 统 内 所 有 文 件 名 称 及 路 径 的 数 据 库, 之 后 当 寻 找 时 就 只 需 查 询 这 个 数 据 库, 而 不 必 实 际 深 入 档 案 系 统 之 中 了 因 此 其 速 度 比 find 快 很 多 locate [ 选 项 ] 命 令 频 率 + 重 要 程 度 :3+3
文 件 相 关 命 令 (5) ln: 为 某 一 个 文 件 在 另 外 一 个 位 置 建 立 一 个 符 号 链 接 当 需 要 在 不 同 的 目 录 用 到 相 同 的 文 件 时,Linux 允 许 用 户 不 用 在 每 一 个 需 要 的 目 录 下 都 存 放 一 个 相 同 的 文 件, 而 只 需 将 其 他 目 录 下 文 件 用 ln 命 令 链 接 即 可, 这 样 就 不 必 重 复 地 占 用 磁 盘 空 间 ln[ 选 项 ] 目 标 目 录 命 令 频 率 + 重 要 程 度 :4+5 s: 建 立 符 号 链 接 ( 这 也 是 通 常 惟 一 使 用 的 参 数 ) ln 命 令 会 保 持 每 一 处 链 接 文 件 的 同 步 性, 也 就 是 说, 不 论 改 动 了 哪 一 处, 其 他 的 文 件 都 会 发 生 相 同 的 变 化 ln 的 链 接 又 软 链 接 和 硬 链 接 两 种 : 软 链 接 就 是 上 面 所 说 的 ln -s ** **, 它 只 会 在 用 户 选 定 的 位 置 上 生 成 一 个 文 件 的 镜 像, 不 会 重 复 占 用 磁 盘 空 间, 平 时 使 用 较 多 的 都 是 软 链 接 ; 硬 链 接 是 不 带 参 数 的 ln ** **, 它 会 在 用 户 选 定 的 位 置 上 生 成 一 个 和 源 文 件 大 小 相 同 的 文 件, 无 论 是 软 链 接 还 是 硬 链 接, 文 件 都 保 持 同 步 变 化
压 缩 打 包 相 关 命 令 (1) bzip2:.bz2 文 件 的 压 缩 ( 或 解 压 ) 程 序 bzip2[ 选 项 ] 压 缩 ( 解 压 缩 ) 的 文 件 名 bunzip2:.bz2 文 件 的 解 压 缩 程 序 bunzip2[ 选 项 ].bz2 压 缩 文 件 bzip2recover: 用 来 修 复 损 坏 的.bz2 文 件 bzip2recover.bz2 压 缩 文 件 gzip:.gz 文 件 的 压 缩 程 序 gzip [ 选 项 ] 压 缩 ( 解 压 缩 ) 的 文 件 名 gunzip: 解 压 被 gzip 压 缩 过 的 文 件 gunzip [ 选 项 ].gz 文 件 名 命 令 频 率 + 重 要 程 度 :4+5
压 缩 打 包 相 关 命 令 (2) unzip: 解 压 winzip 压 缩 的.zip 文 件 unzip [ 选 项 ].zip 压 缩 文 件 compress: 早 期 的 压 缩 或 解 压 程 序 ( 压 缩 后 文 件 名 为.Z) compress [ 选 项 ] 文 件 tar: 对 文 件 目 录 进 行 打 包 或 解 包 tar [ 选 项 ] [ 打 包 后 文 件 名 ] 文 件 目 录 列 表
Linux 常 见 类 型 文 件 解 压 命 令 总 结 P34
文 件 比 较 合 并 相 关 命 令 diff: 比 较 两 个 不 同 的 文 件 或 不 同 目 录 下 的 两 个 同 名 文 件 功 能, 并 生 成 补 丁 文 件 diff[ 选 项 ] 文 件 1 文 件 2 diff 比 较 文 件 1 和 文 件 2 的 不 同 之 处, 并 按 照 选 项 所 指 定 的 格 式 加 以 输 出 diff 的 格 式 分 为 命 令 格 式 和 上 下 文 格 式, 其 中 上 下 文 格 式 又 包 括 了 旧 版 上 下 文 格 式 和 新 版 上 下 文 格 式, 命 令 格 式 分 为 标 准 命 令 格 式 简 单 命 令 格 式 及 混 合 命 令 格 式, 它 们 之 间 的 区 别 会 在 使 用 实 例 中 进 行 详 细 地 讲 解 当 选 项 缺 省 时,diff 默 认 使 用 混 合 命 令 格 式 patch: 命 令 跟 diff 配 合 使 用, 把 生 成 的 补 丁 文 件 应 用 到 现 有 代 码 上 patch [ 选 项 ] [ 待 patch 的 文 件 [patch 文 件 ]] 常 用 的 格 式 为 :patch -pnum [patch 文 件 ], 其 中 的 -pnum 是 选 项 参 数 命 令 频 率 + 重 要 程 度 :3+3
Diff 举 例 P36-Diff.patch 的 使 用
网 络 相 关 命 令 (1) netstat: 显 示 网 络 连 接 路 由 表 和 网 络 接 口 信 息 netstat [-an] nslookup 查 询 一 台 机 器 的 IP 地 址 和 其 对 应 的 域 名 nslookup [IP 地 址 / 域 名 ] finger: 查 询 用 户 的 信 息 finger [ 选 项 ] [ 使 用 者 ] [ 用 户 @ 主 机 ] ping: 用 于 查 看 网 络 上 的 主 机 是 否 在 工 作 ping [ 选 项 ] 主 机 名 /IP 地 址 命 令 频 率 + 重 要 程 度 :4+5
网 络 相 关 命 令 (2) ifconfig: 查 看 和 配 置 网 络 接 口 的 参 数 ifconfig [ 选 项 ] [ 网 络 接 口 ] ftp: 利 用 ftp 协 议 上 传 和 下 载 文 件 telnet: 利 用 telnet 协 议 浏 览 信 息 telent [ 选 项 ] [IP 地 址 / 域 名 ] 退 出 命 令 :CTRL+],Q ssh: 利 用 ssh 登 录 对 方 主 机 ssh [ 选 项 ] [IP 地 址 ] 退 出 命 令 :Exit 命 令 频 率 + 重 要 程 度 :5+5
ifconfig [root@localhost ~]# ifconfig eth0 Link encap:ethernet HWaddr 00:08:02:E0:C1:8A inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::208:2ff:fee0:c18a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:26931 errors:0 dropped:0 overruns:0 frame:0 TX packets:3209 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6669382 (6.3 MiB) TX bytes:321302 (313.7 KiB) Interrupt:11 lo Link encap:local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2537 errors:0 dropped:0 overruns:0 frame:0 TX packets:2537 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2093403 (1.9 MiB) TX bytes:2093403 (1.9 MiB)
综 合 实 例 P50 页 实 验
2.2 Linux 启 动 过 程 详 解
Linux 启 动 过 程
内 核 引 导 阶 段 (kernel boot) bootsect 阶 段 setup 阶 段 head.s 阶 段 main.c 阶 段
init 阶 段 (1) 1 确 定 用 户 登 录 模 式 在 /etc/inittab 中 列 出 了 如 下 所 示 的 登 录 模 式, 主 要 有 单 人 维 护 模 式 多 用 户 无 网 络 模 式 文 字 界 面 多 用 户 模 式 X-Windows 多 用 户 模 式 等 其 中 的 单 人 维 护 模 式 (run level 为 1) 是 类 似 于 Windows 中 的 安 全 模 式, 在 这 种 情 况 下, 系 统 不 加 载 复 杂 的 模 式 从 而 使 系 统 能 够 正 常 启 动 在 这 些 模 式 中 最 为 常 见 的 是 3 或 5, 其 中 本 系 统 中 默 认 的 为 5, 也 就 是 X-Windows 多 用 户 模 式 # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode ( 文 本 界 面 启 动 模 式 ) # 4 - unused # 5 - X11 ( 图 形 界 面 启 动 模 式 ) # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault:
init 阶 段 (2) 2 执 行 脚 本 /etc/rc.d/rc.sysinit 在 确 定 了 登 录 模 式 之 后, 就 要 开 始 将 Linux 的 主 机 信 息 读 入 Linux 系 统, 其 内 容 就 是 文 件 /etc/rc.d/rc.sysinit 中 的 查 看 此 文 件 可 以 看 出, 在 这 里 确 定 了 默 认 路 径 主 机 名 称 /etc/sysconfig/network 中 所 记 录 的 网 络 信 息 等 # System initialization. si::sysinit:/etc/rc.d/rc.sysinit
init 阶 段 (3) 3. 启 动 内 核 的 外 挂 模 块 及 各 运 行 级 的 脚 本 在 此, 主 要 是 读 取 模 块 加 载 配 置 文 件 (/etc/modules.conf), 以 确 认 需 要 加 载 哪 些 模 块 接 下 来 会 根 据 不 同 的 运 行 级 (run level), 通 过 带 参 数 ( 运 行 级 ) 运 行 /etc/rc.d/rc 脚 本, 加 载 不 同 的 模 块, 启 动 系 统 服 务 init 进 程 会 等 待 (wait) /etc/rc.d/rc 脚 本 的 返 回 l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6
init 阶 段 (4) 4. 进 入 用 户 登 录 界 面 系 统 还 需 要 配 置 一 些 异 常 关 机 的 处 理 部 分 最 后 通 过 /sbin/mingetty 打 开 几 个 虚 拟 终 端 (tty1~tty6), 用 于 用 户 登 录 如 果 运 行 级 为 5( 图 形 界 面 启 动 ), 则 运 行 xdm 程 序, 给 用 户 提 供 xdm 图 形 界 面 的 登 录 方 式 如 果 在 本 地 打 开 一 个 虚 拟 终 端, 当 这 个 终 端 超 时 没 有 人 登 录 或 者 太 久 没 有 人 击 键 时, 该 终 端 会 退 出 执 行, 脚 本 中 的 respawn 即 告 诉 init 进 程 重 新 打 开 该 终 端, 否 则 在 经 过 一 段 时 间 之 后, 我 们 会 发 现 这 个 终 端 消 失 了, 无 法 利 用 ALT+Fn 切 换
init 阶 段 (5) # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # When our UPS tells us power has failed, assume we have a few minutes pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" # If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 x:5:respawn:/etc/x11/prefdm -nodaemon
2.3 Linux 系 统 服 务 1 独 立 运 行 的 系 统 服 务 2 由 xinetd 设 定 的 服 务
Linux 系 统 服 务 (1) 独 立 运 行 的 系 统 服 务 的 启 动 脚 本 都 放 在 目 录 /etc/rc.d/init.d/ 中 如 某 个 系 统 中 的 系 统 服 务 的 启 动 脚 本 有 : [root@localhost init.d]# ls /etc/rc.d/init.d acpid dc_client iptables named pand rpcsvcgssd tux anacron dc_server irda netdump pcmcia saslauthd vncserver apmd diskdump irqbalance netfs portmap sendmail vsftpd arptables_jf dovecot isdn netplugd psacct single watchquagga atd dund killall network rawdevices smartd winbind autofs firstboot kudzu NetworkManager readahead smb xfs
Linux 系 统 服 务 (2) 为 了 指 定 特 定 运 行 级 别 服 务 的 开 启 或 关 闭, 系 统 的 各 个 不 同 运 行 级 别 都 有 不 同 的 脚 本 文 件, 其 目 录 为 /etc/rc.d/rcn.d, 其 中 的 N 分 别 对 应 不 用 的 运 行 级 别 读 者 可 以 进 入 到 各 个 不 同 的 运 行 级 别 目 录 里 查 看 相 应 服 务 的 开 启 或 关 闭 状 态, 如 进 入 /rc3.d 目 录 中 的 文 件 如 下 所 示 [root@localhost rc3.d]# ls /etc/rc.d/rc3.d K02NetworkManager K35winbind K89netplugd S10networ S28autofs S95anacron K05saslauthd K36lisa K90bluetooth S12syslog S40smartd S95atd K10dc_server K45named K94diskdump S13irqbalance S44acpid S97messagebus K10psacct K50netdump K99microcode_ctl S13portmap S55cups S97rhnsd
Linux 系 统 服 务 (3) 可 以 看 到, 每 个 对 应 的 服 务 都 以 K 或 S 开 头, 其 中 的 K 代 表 关 闭 (kill), 其 中 的 S 代 表 启 动 (start), 用 户 可 以 使 用 命 令 +start stop status restart 来 对 相 应 的 服 务 进 行 操 作 在 执 行 完 相 应 的 rcn.d 目 录 下 的 脚 本 文 件 后,INIT 最 后 会 执 行 rc.local 来 启 动 本 地 服 务, 因 此, 用 户 若 想 把 某 些 非 系 统 服 务 设 置 为 自 启 动, 可 以 编 辑 rc.local 脚 本 文 件, 加 上 相 应 的 执 行 语 句 即 可 另 外, 还 可 以 使 用 命 令 service+ 系 统 服 务 + 操 作 来 方 便 地 实 现 相 应 服 务 的 操 作, 如 下 所 示 : [root@localhost xinetd.d]# service xinetd restart 停 止 xinetd: [ 确 定 ] 开 启 xinetd: [ 确 定 ]
Linux 系 统 服 务 (4)(xinetd) xinetd 管 理 系 统 中 不 经 常 使 用 的 服 务, 这 些 服 务 程 序 只 有 在 有 请 求 时 才 由 xinetd 服 务 负 责 启 动, 一 旦 运 行 完 毕 服 务 自 动 结 束 xinetd 的 配 置 文 件 为 /etc/xinetd.conf, 它 对 xinet 的 默 认 参 数 进 行 了 配 置 #... # Some defaults, and include /etc/xinetd.d/ defaults { instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST cps = 25 30 } includedir /etc/xinetd.d
系 统 服 务 的 其 他 相 关 命 令 (1)chkconfig list( 注 意 在 list 前 有 两 个 小 连 线 ): 查 看 系 统 服 务 设 定 示 例 : [root@localhost xinetd.d]# chkconfig --list sendmail 0: 关 闭 1: 关 闭 2: 打 开 3: 打 开 4: 打 开 5: 打 开 6: 关 闭 snmptrapd 0: 关 闭 1: 关 闭 2: 关 闭 3: 关 闭 4: 关 闭 5: 关 闭 6: 关 闭 gpm 0: 关 闭 1: 关 闭 2: 打 开 3: 打 开 4: 打 开 5: 打 开 6: 关 闭 syslog 0: 关 闭 1: 关 闭 2: 打 开 3: 打 开 4: 打 开 5: 打 开 6: 关 闭 (2)chkconfig --level N [ 服 务 名 称 ] 指 定 状 态 : 将 指 定 级 别 的 某 个 系 统 服 务 配 置 为 指 定 状 态 [root@localhost xinetd.d]# chkconfig list grep ntpd ntpd 0: 关 闭 1: 关 闭 2 关 闭 3: 关 闭 4: 关 闭 5: 关 闭 6: 关 闭 [root@localhost ~]# chkconfig --level 3 ntpd on [root@localhost ~]# chkconfig --list grep ntpd ntpd 0: 关 闭 1: 关 闭 2: 关 闭 3: 打 开 4: 关 闭 5: 关 闭 6: 关 闭 另 外, 在 2.1.1 节 系 统 命 令 列 表 中 指 出 的 setup 程 序 中 也 就 可 以 设 定, 而 且 是 图 形 界 面
2.4 实 验
实 验 - 在 Linux 下 解 压 常 见 软 件 1. 实 验 目 的 通 过 在 Linux 下 安 装 一 个 完 整 的 软 件 ( 嵌 入 式 Linux 的 必 备 工 具 交 叉 编 译 工 具 ), 掌 握 Linux 常 见 命 令, 学 会 设 置 环 境 变 量, 并 同 时 搭 建 起 了 嵌 入 式 Linux 的 交 叉 编 译 环 境, 为 今 后 的 实 验 打 下 良 好 的 基 础 2. 实 验 内 容 在 Linux 中 解 压 cross-3.3.2.tar.bz2, 并 添 加 到 系 统 环 境 变 量 中 去
实 验 - 定 制 Linux 系 统 服 务 1. 实 验 目 的 通 过 定 制 Linux 系 统 服 务, 进 一 步 理 解 Linux 的 守 护 进 程, 能 够 更 加 熟 练 运 用 Linux 操 作 基 本 命 令, 同 时 也 加 深 对 INIT 进 程 的 了 解 和 掌 握 2. 实 验 内 容 查 看 Linux 系 统 服 务, 并 定 制 其 系 统 服 务
思 考 与 练 习 1. 更 改 目 录 的 名 称, 如 把 /home/david 变 为 /home/john 2. 若 有 一 文 件 属 性 为 prwxr-xrw-, 指 出 其 代 表 什 么 意 思? 3. 如 何 将 文 件 属 性 变 为 -rwxrw-r--? 4. 下 载 最 新 Linux 源 码, 并 解 开 至 /usr/src 目 录 下 5. 修 改 TELNET FTP 服 务 的 端 口 号