第1章 Linux简介 1
1.1 简要历史回顾 1
1.1.1 理解操作系统 1
1.1.2 操作系统的功能 2
1.1.3 UNIX操作系统 3
1.1.4 自由软件基金会和GNU项目 3
1.1.5 Linux的产生 5
1.1.6 激励自由软件开发者 7
1.1.7 Linux的优势 7
1.2 Linux的市场销售 8
1.2.1 Linux发行版 8
1.2.3 硬件需求 10
1.2.2 Red Hat Software公司 10
1.2.4 版本号 11
1.2.5 Linux认证 12
1.3 系统管理员的工作 13
1.3.1 Linux相关的职业 13
1.3.2 系统管理员的职责 13
1.3.3 道德、隐私和法律 15
1.4 开始使用Linux 17
1.4.1 登录 17
1.4.2 图形界面环境 18
1.4.3 打开一个终端窗口 18
1.5 查看文件系统 19
1.5.1 文件系统概念 19
1.5.2 使用图形界面工具管理文件 21
1.5.3 在命令行下工作 24
1.6.1 阅读Linux文档 28
1.6 命令的相关帮助信息 28
1.6.2 Linux命令信息 30
1.7 本章小结 30
1.8 命令小结 31
1.9 关键术语 32
1.10 复习题 35
1.11 热身项目 38
1.11.1 项目1-1 38
1.11.2 项目1-2 39
1.11.3 项目1-3 39
1.11.4 项目1-4 40
1.12 案例项目——评价Linux 40
2.1.1 了解X Window System 42
第2章 桌面 42
2.1 Linux图形桌面 42
2.1.2 X Window System的工作方式 43
2.1.3 X Window System的组件 43
2.1.4 启动X 45
2.1.5 桌面界面 46
2.1.6 图形登录界面 48
2.1.7 图形界面窗口操作 48
2.2 配置GNOME和KDE 50
2.2.1 在桌面界面中切换 50
2.2.2 保存登录状态配置 51
2.2.3 配置图形登录界面 51
2.2.4 Panel 53
2.2.5 配置GNOME的其他特性 55
2.3 核心图形界面工具 58
2.3.1 配置Nautilus File Manager 58
2.3.2 配置其他工具的用法 60
2.4 几个流行的图形界面程序 61
2.4.1 OpenOffice.org 61
2.4.2 使用电子邮件客户端 64
2.5 本章小结 69
2.6 命令小结 70
2.7 关键术语 70
2.8 复习题 70
2.9 热身项目 73
2.9.1 项目2-1 73
2.9.2 项目2-2 74
2.9.3 项目2-3 75
2.10 案例项目——探索桌面工具和应用程序 76
第3章 使用shell程序 77
3.1 探索bash shell 77
3.1.1 shell提示符 78
3.1.2 shell的功能 78
3.1.3 shell的类型 79
3.1.4 输入命令 81
3.1.5 shell启动过程 84
3.1.6 使用别名 85
3.1.7 命令行扩展 86
3.2 shell变量 88
3.3 数据重定向 92
3.4 使用vi进行文本编辑 94
3.5.1 设置打印机 99
3.5 从命令行打印 99
3.5.2 从命令行打印 100
3.6 本章小结 102
3.7 命令小结 103
3.8 关键术语 103
3.9 复习题 105
3.10 热身项目 108
3.10.1 项目3-1 108
3.10.2 项目3-2 109
3.10.3 项目3-3 110
3.10.4 项目3-4 111
3.11 案例项目——使用shell 112
4.1.1 用户账户的类型 113
第4章 理解用户和文件系统 113
4.1 Linux用户和组 113
4.1.2 Linux组 115
4.1.3 用户和组文件 116
4.1.4 shadow口令 118
4.1.5 更改用户口令 119
4.1.6 用户信息相关的命令 120
4.2 文件权限 121
4.2.1 更改所属关系 123
4.2.2 更改文件权限 123
4.2.3 默认的文件权限 124
4.3 文件系统简介 125
4.3.1 分区和文件系统 125
4.3.2 inode和链接 126
4.3.3 文件类型 128
4.3.4 访问可移动介质 129
4.3.5 运用find命令 130
4.4 文件档案管理 131
4.4.1 文件压缩 131
4.4.2 利用tar和cpio命令对文件存档 132
4.5 本章小结 134
4.6 命令小结 135
4.7 关键术语 136
4.8 复习题 138
4.9 热身项目 140
4.9.1 项目4-1 140
4.9.3 项目4-3 141
4.9.2 项目4-2 141
4.9.4 项目4-4 142
4.10 案例项目——文件的压缩、权限和存档 143
第5章 理解文本处理过程 145
5.1 正则表达式 145
5.2 文件操作 148
5.2.1 使用grep命令搜索模式 148
5.2.2 检查文件内容 149
5.2.3 文本文件操作 151
5.3 使用sed和awk命令 154
5.3.1 使用sed命令过滤和编辑文本 154
5.3.2 使用awk命令格式化输出 156
5.4.1 vi中的文件操作 158
5.4 高级文本编辑 158
5.4.2 屏幕重新定位 159
5.4.3 更多行编辑命令 160
5.4.4 设置vi选项 161
5.4.5 vi命令小结 162
5.5 本章小结 163
5.6 命令小结 164
5.7 关键术语 165
5.8 复习题 165
5.9 热身项目 168
5.9.1 项目5-1 168
5.9.2 项目5-2 169
5.9.3 项目5-3 170
5.9.4 项目5-4 171
5.10 案例项目——文本处理和数据库文件 173
第6章 进程管理 175
6.1 定义进程 175
6.1.1 Linux多任务处理模式 175
6.1.2 创建进程 176
6.1.3 进程状态 176
6.1.4 交换分区 176
6.2 管理Linux进程 177
6.2.1 从shell启动进程 177
6.2.2 通过命令行了解进程 179
6.2.3 控制进程 185
6.2.4 使用图形界面进程管理工具 188
6.3 内存管理 193
6.3.1 理解共享库 193
6.3.2 理解页存储器 194
6.3.3 跟踪内存利用率 195
6.3.4 查看虚拟内存信息 196
6.4 进程调度 197
6.4.1 自动执行一次作业 197
6.4.2 自动执行多次作业 200
6.4.3 管理自动化作业 203
6.5 at及crontab命令的访问控制 205
6.6 本章小结 206
6.7 命令小结 207
6.8 关键术语 208
6.9 复习题 209
6.10 热身项目 211
6.10.1 项目6-1 211
6.10.2 项目6-2 212
6.10.3 项目6-3 213
6.10.4 项目6-4 214
6.10.5 项目6-5 214
6.11 案例项目——运行corn作业及理解进程 216
第7章 使用网络客户端程序 217
7.1 远程登录 217
7.1.1 Telnet远程登录工具 218
7.1.2 r-utilities远程执行工具 220
7.1.3 SSH 222
7.2 数据服务 224
7.2.1 Web访问 224
7.2.2 访问FTP服务器 228
7.3.1 网络简介 232
7.3 网络与网络诊断工具 232
7.3.2 使用ping进行系统测试 233
7.3.3 使用traceroute检查路由模式 235
7.4 本章小结 237
7.5 命令小结 238
7.6 关键术语 239
7.7 复习题 240
7.8 热身项目 243
7.8.1 项目7-1 243
7.8.2 项目7-2 244
7.8.3 项目7-3 245
7.9 案例项目——使用网络客户端与网络连接 246
8.1 检查计算机硬件 247
第8章 安装Linux 247
8.1.1 了解计算机硬件 248
8.1.2 Linux支持的硬件 252
8.1.3 了解网络 253
8.1.4 创建共享系统 255
8.1.5 图形界面系统 258
8.1.6 创建计算机系统清单 258
8.2 配置磁盘空间 263
8.2.1 引导系统 264
8.2.2 硬盘的几何结构 265
8.2.3 交换分区 266
8.2.4 准备共享硬盘 266
8.3 安装Linux 270
8.3.1 Linux发行版 270
8.3.3 安装源选项 271
8.3.2 Linux安装概述 271
8.3.4 安装启动选项 272
8.3.5 安装过程 273
8.4 kickstart安装 278
8.4.1 检查kickstart配置文件 279
8.4.2 使用图形界面配置工具 280
8.5 本章小结 281
8.6 命令小结 282
8.7 关键术语 282
8.8 复习题 285
8.9 热身项目 288
8.9.1 项目8-1 288
8.9.2 项目8-2 289
8.9.3 项目8-3 299
8.9.4 项目8-4 301
8.10 案例项目——准备安装Linux 302
第9章 理解系统初始化过程 304
9.1 硬件初始化 304
9.1.1 引导程序 305
9.1.2 启动内核 307
9.1.3 使用引导参数 308
9.2 配置引导程序 309
9.2.1 使用LILO 309
9.2.2 使用GRUB 310
9.3 init程序及其脚本 312
9.3.1 理解run level 312
9.3.2 理解rc脚本 313
9.4 控制服务 315
9.4.1 管理服务 315
9.4.2 以图形界面方式管理服务 316
9.4.3 配置系统服务 317
9.4.4 关闭Linux 318
9.5 本章小结 319
9.6 命令小结 320
9.7 关键术语 320
9.8 复习题 321
9.9 热身项目 324
9.9.1 项目9-1 324
9.9.2 项目9-2 324
9.9.4 项目9-4 325
9.9.3 项目9-3 325
9.10 案例项目——引导系统以及管理服务 326
第10章 管理软件包和文件系统 327
10.1 软件包管理 327
10.1.1 图形界面的软件包管理 328
10.1.2 使用rpm命令管理软件包 329
10.2 系统自动升级 331
10.3 理解文件系统 334
10.3.1 回顾文件系统类型 334
10.3.2 检查文件系统状态 337
10.3.3 文件系统属性 339
10.3.4 检查文件系统 341
10.3.5 创建新的文件系统 341
10.3.6 使用fdisk工具 342
10.3.7 格式化文件系统 344
10.3.8 挂载新的文件系统 345
10.3.9 使用网络文件系统 346
10.3.10 自动挂载文件系统 347
10.3.11 使用autofs挂载服务 349
10.3.12 管理交换空间 349
10.3.13 设定磁盘使用配额 350
10.4 本章小结 351
10.5 命令小结 352
10.6 关键术语 353
10.7 复习题 354
10.8 热身项目 357
10.8.1 项目10-1 357
10.8.2 项目10-2 358
10.8.3 项目10-3 359
10.9 案例项目——设计文件系统 360
第11章 管理用户 362
11.1 创建和管理用户账户 362
11.1.1 以图形界面方式管理用户账户 363
11.1.2 在命令行创建新用户 368
11.1.3 创建新组 370
11.1.4 在命令行中修改用户账户和组账户 371
11.1.5 自动创建home目录 373
11.1.6 禁用用户账户 374
11.2 高级文件权限 375
11.3 用户安全性问题 379
11.3.1 与用户通信 379
11.3.2 授予root有限的访问权限 380
11.3.3 使用可插入的身份验证模块 381
11.3.4 使用网络信息服务 385
11.4 本章小结 386
11.5 命令小结 387
11.6 关键术语 388
11.7 复习题 389
11.8 热身项目 391
11.8.1 项目11-1 391
11.8.2 项目11-2 393
11.8.3 项目11-3 394
11.8.4 项目11-4 394
11.9 案例项目——考虑用户管理中的安全性 395
12.1 配置Linux网络 397
12.1.1 理解Linux中的网络设备 397
第12章 配置网络 397
12.1.2 使用命令行工具配置网络 398
12.1.3 使用图形界面工具配置网络 402
12.1.4 配置DNS解析器 405
12.1.5 使用路由协议的动态路由 408
12.2 配置DHCP服务器 410
12.3 网络打印服务 411
12.3.1 使用传统的Linux打印工具:LPRng 411
12.3.2 使用LPRng进行远程打印 415
12.3.3 理解CUPS 417
12.3.4 打印管理 421
12.4 本章小结 425
12.5 命令小结 426
12.6 关键术语 427
12.7 复习题 429
12.8 热身项目 433
12.8.1 项目12-1 433
12.8.2 项目12-2 434
12.8.3 项目12-3 435
12.8.4 项目12-4 435
12.8.5 项目12-5 437
12.9 案例项目——网络与打印 438
第13章 系统管理与内核管理 439
13.1 备份Linux系统 439
13.1.1 设计备份策略 439
13.1.2 一种Linux备份策略 442
13.1.3 硬件与软件问题 445
13.1.4 使用Linux备份工具 447
13.1.5 理解冗余磁盘系统和RAID 448
13.1.6 理解逻辑卷管理 453
13.2 系统日志 454
13.2.1 syslogd与klogd守护进程 456
13.2.2 配置系统日志 457
13.2.3 配置文件语法 459
13.2.4 使用logger工具 461
13.2.5 分析日志文件 462
13.2.6 转储日志文件 463
13.3 探索内核组件 463
13.3.1 Linux中的时间机制 464
13.3.2 使用/proc文件系统进行内核管理 464
13.3.3 使用内核模块 466
13.4 内核组件的配置与升级 468
13.4.1 安装内核源代码 469
13.4.2 配置内核功能 469
13.4.3 编译新内核 472
13.5 本章小结 473
13.6 命令小结 474
13.7 关键术语 476
13.8 复习题 478
13.9 热身项目 482
13.9.1 项目13-1 482
13.9.2 项目13-2 483
13.9.3 项目13-3 483
13.9.4 项目13-4 484
13.10 案例项目——备份与复杂的文件系统 485
第14章 编写shell脚本 486
14.1 脚本基础 486
14.1.1 解释型程序与编译型程序 487
14.1.2 理解程序设计的概念 488
14.1.3 shell脚本的组成部分 488
14.2 输入与输出 490
14.3 条件与循环结构 494
14.3.1 使用if语句 495
14.3.2 在脚本中使用循环 499
14.3.3 在脚本中使用函数 501
14.4 shell脚本调试 502
14.4.1 使用shell追踪 503
14.4.2 在脚本内进行调试 503
14.5.1 其他脚本语言 504
14.5 其他程序设计方法 504
14.5.2 编译型语言 506
14.6 本章小结 508
14.7 命令小结 509
14.8 关键术语 510
14.9 复习题 512
14.10 热身项目 515
14.10.1 项目14-1 515
14.10.2 项目14-2 516
14.10.3 项目14-3 517
14.11 案例项目——编写shell脚本 519
15.1 X Window System高级配置 520
15.1.1 配置X 520
第15章 高级主题与故障处理 520
15.1.2 使用X Window System启动脚本 523
15.1.3 调整图形界面应用程序的显示 524
15.1.4 使用图形登录界面 526
15.1.5 远程显示X客户端 527
15.2 安全问题 531
15.2.1 网络安全的结构 531
15.2.2 安全攻击的类型 532
15.2.3 安全工具 533
15.2.4 病毒与蠕虫 536
15.2.5 安全组织 536
15.3 使用网络服务 537
15.3.1 使用NetFilter作为防火墙 537
15.3.2 设置DNS服务器 542
15.3.3 使用NFS进行文件共享 544
15.3.4 建立Samba服务器 547
15.3.5 使用Squid创建代理服务器 549
15.3.6 使用Apache创建Linux Web服务器 550
15.3.7 配置基本的电子邮件服务器 553
15.3.8 使用超级服务器管理网络服务 555
15.4 故障处理与恢复 559
15.4.1 Linux安装时的故障处理 560
15.4.2 诊断设备的状态 562
15.4.3 网络连接故障处理 562
15.4.4 创建急救盘 563
15.5 本章小结 563
15.6 命令小结 565
15.7 关键术语 567
15.8 复习题 571
15.9 热身项目 574
15.9.1 项目15-1 574
15.9.2 项目15-2 575
15.9.3 项目15-3 576
15.9.4 项目15-4 577
15.9.5 项目15-5 578
15.9.6 项目15-6 580
15.9.7 项目15-7 581
15.9.8 项目15-8 582
15.10 案例项目——网络安全的未来 583
附录A Red Hat Certified Technician目标 584
附录B Linux Professional Institute Level 1认证目标 597
附录C SAIR/GNU Linux Certified Administrator Level 1目标 616
附录D Linux+认证目标 634