第1章 欢迎进入Linux世界 1
1.1 GNU-Linux联姻 1
1.1.1 GNU-Linux的历史 2
1.1.2 自由代码 3
1.1.3 享受乐趣 3
1.2 Linux 2.6内核 4
1.3 Linux的起源:UNIX 4
1.4 Linux的优点 4
1.4.1 Linux在硬件公司和开发者中流行的原因 6
1.4.2 Linux的可移植性 6
1.4.3 标准 7
1.4.4 C编程语言 7
1.5 Linux概述 7
1.5.1 Linux具有内核编程接口 8
1.5.2 Linux支持多用户 8
1.5.3 Linux支持多任务 8
1.5.4 Linux支持安全的层次文件系统 8
1.5.5 shell:命令解释器和编程语言 9
1.5.6 大量有用的实用工具 11
1.5.7 进程间的通信 11
1.5.8 系统管理 11
1.6 Linux的其他特性 11
1.6.1 图形用户界面 11
1.6.2 (互联)网络实用工具 12
1.6.3 软件开发 13
1.7 本书约定 13
1.8 本章小结 14
1.9 练习 14
第一部分 安装Red Hat Linux第2章 安装概览 16
2.1 更多信息 16
2.2 安装规划 17
2.2.1 需要考虑的事项 17
2.2.2 安装需求 18
2.2.3 安装版本 19
2.2.4 全新安装还是升级已有的Red Hat系统 19
2.2.5 图形方式安装还是文本方式安装 20
2.2.6 配置硬盘 20
2.2.7 RAID 23
2.2.8 LVM:逻辑卷管理程序 24
2.3 安装的工作原理 24
2.4 介质:安装源在哪里 25
2.4.1 格式 25
2.4.2 来源 25
2.5 下载、刻录并安装CD集或DVD(FEDORA) 26
2.5.1 寻找下载网站 27
2.5.2 寻找正确的文件并下载 28
2.5.3 使用BitTorrent下载ISO映像文件 30
2.5.4 检查文件 30
2.5.5 刻录CD或DVD 30
2.6 救援CD 31
2.7 收集系统信息 31
2.8 获取安装指南 32
2.9 本章小结 32
2.10 练习 32
2.11 高级练习 33
第3章 逐步安装 34
3.1 安装Red Hat Linux 34
3.1.1 引导系统:“boot:”提示符 34
3.1.2 引导参数 35
3.1.3 “CD Found”屏幕 36
3.1.4 Anaconda安装程序 37
3.1.5 Firstboot:首次引导 45
3.1.6 初始化数据库并更新系统 47
3.2 安装任务 48
3.2.1 用Disk Druid进行磁盘分区 48
3.2.2 LV:逻辑卷 50
3.2.3 使用Kickstart配置程序 53
3.2.4 parted:报告并操作硬盘分区 53
3.2.5 搭建双重引导系统 56
3.3 X窗口系统 57
3.3.1 system-config-display:配置系统显示 57
3.3.2 xorg.conf文件 59
3.3.3 gdm:显示图形化登录界面 63
3.3.4 更多信息 64
3.4 本章小结 64
3.5 练习 65
3.6 高级练习 65
第二部分 Red Hat Linux入门第4章 Red Hat Linux简介 68
4.1 控制用户权限:超级用户/root访问权限 68
4.2 Red Hat Linux桌面之旅 69
4.2.1 登录系统 69
4.2.2 充分利用桌面 71
4.2.3 使用Konqueror管理文件、运行程序以及浏览网页 80
4.2.4 使用KDE控制中心定制桌面 83
4.2.5 使用面板菜单定制主面板 85
4.3 获取资料 87
4.3.1 KDE帮助中心 87
4.3.2 GNOME帮助 89
4.3.3 man:显示系统手册 89
4.3.4 info:显示实用工具的相关信息 91
4.3.5 选项“--help” 93
4.3.6 HOWTO:探究工作原理 93
4.3.7 从系统获取帮助信息 94
4.4 关于登录的更多信息 96
4.4.1 登录屏幕 96
4.4.2 如果不能登录,要做什么 97
4.4.3 注销 97
4.4.4 使用虚拟控制台 97
4.4.5 远程登录:终端仿真和ssh或者telnet 98
4.4.6 修改口令 98
4.4.7 switchdesk:改变默认桌面 99
4.4.8 在终端登录 100
4.5 控制窗口:高级操作 102
4.5.1 改变输入焦点 102
4.5.2 改变显示器分辨率 103
4.5.3 窗口管理器 104
4.6 本章小结 104
4.7 练习 105
4.8 高级练习 106
第5章 Linux实用工具 107
5.1 特殊字符 107
5.2 基本实用工具 108
5.2.1 ls:显示文件名 109
5.2.2 cat:显示文本文件内容 109
5.2.3 rm:删除文件 109
5.2.4 less或more:分屏显示文件 110
5.2.5 hostname:显示系统名 110
5.3 文件操作 110
5.3.1 cp:复制文件 110
5.3.2 mv:更改文件名 111
5.3.3 lpr:打印文件 112
5.3.4 grep:查找字符串 112
5.3.5 head:显示文件头部 113
5.3.6 tail:显示文件尾部 114
5.3.7 sort:按顺序显示文件内容 114
5.3.8 uniq:忽略文件中重复行 115
5.3.9 diff:比较两个文件 115
5.3.10 file:测试文件内容 116
5.4 |(管道):实现进程间的通信 116
5.5 4 个有用的实用工具 117
5.5.1 echo:显示文本 117
5.5.2 date:显示日期和时间 117
5.5.3 script:记录Linux会话信息 117
5.5.4 unix2dos:将Linux文件转换为Macintosh格式或Windows格式 118
5.6 压缩和归档文件 119
5.6.1 bzip2:压缩文件 119
5.6.2 bunzip2和bzcat:解压文件 120
5.6.3 gzip:压缩文件 120
5.6.4 tar:打包和解包归档文件 120
5.7 定位命令 123
5.7.1 which和whereis:定位实用工具 123
5.7.2 apropos:搜索关键字 124
5.7.3 locate:搜索文件 124
5.8 获取用户和系统信息 125
5.8.1 who:列出系统上的用户 125
5.8.2 finger:列出系统上的用户 125
5.8.3 w:列出系统上的用户 127
5.9 与其他用户通信 128
5.9.1 write:发送消息 128
5.9.2 mesg:拒绝或接受消息 128
5.10 电子邮件 129
5.11 教程:使用vim创建和编辑文件 129
5.11.1 启动vim 129
5.11.2 命令模式和输入模式 131
5.11.3 输入文本 132
5.11.4 获取帮助 133
5.11.5 结束编辑会话 135
5.11.6 参数compatible 136
5.12 本章小结 136
5.13 练习 138
5.14 高级练习 138
第6章 Linux文件系统 140
6.1 层次文件系统 140
6.2 目录文件和普通文件 141
6.2.1 文件名 142
6.2.2 工作目录 144
6.2.3 主目录 144
6.3 路径名 144
6.3.1 绝对路径名 145
6.3.2 相对路径名 145
6.4 目录命令 146
6.4.1 mkdir:创建目录 146
6.4.2 重要的标准目录和文件 149
6.5 目录操作 151
6.5.1 rmdir:删除目录 151
6.5.2 使用路径名 151
6.5.3 mv/cp:移动/复制文件 152
6.5.4 mv:移动目录 152
6.6 访问权限 153
6.6.1 ls-l:显示访问权限 153
6.6.2 chmod:改变访问权限 154
6.6.3 setuid和setgid权限 155
6.6.4 目录访问权限 155
6.7 ACL:访问控制列表 156
6.7.1 开启ACL 157
6.7.2 处理访问规则 157
6.7.3 设置目录的默认规则 160
6.8 链接 161
6.8.1 硬链接 162
6.8.2 符号链接 164
6.8.3 rm:删除链接 165
6.9 本章小结 166
6.10 练习 167
6.11 高级练习 168
第7章 shell 169
7.1 命令行 169
7.1.1 语法 169
7.1.2 处理命令行 172
7.1.3 执行命令行 173
7.1.4 编辑命令行 174
7.2 标准输入输出 174
7.2.1 作为文件的屏幕 174
7.2.2 作为标准输入的键盘和作为标准输出的屏幕 175
7.2.3 重定向 176
7.2.4 管道 180
7.3 在后台运行程序 182
7.4 文件名生成/路径名展开 184
7.4.1 特殊字符? 184
7.4.2 特殊字符 185
7.4.3 特殊字符[] 186
7.5 内置命令 188
7.6 本章小结 188
7.7 练习 189
7.8 高级练习 190
第三部分 深入研究Red Hat Linux第8章 Linux GUI:X、Gnome和KDE 192
8.1 X窗口系统 192
8.1.1 使用X 194
8.1.2 窗口管理器 198
8.2 使用GNOME 199
8.2.1 Nautilus文件管理器 199
8.2.2 GNOME实用工具 205
8.3 使用KDE 208
8.3.1 Konqueror浏览器/文件管理器 208
8.3.2 KDE实用工具 214
8.4 本章小结 216
8.5 练习 217
8.6 高级练习 217
第9章 Boume Again Shell 219
9.1 背景知识 220
9.2 shell基础 220
9.2.1 初始化文件 220
9.2.2 符号命令 223
9.2.3 重定向标准错误输出 223
9.2.4 编写一个简单的shell脚本 225
9.2.5 命令分隔和命令分组 228
9.2.6 作业控制 231
9.2.7 操作目录栈 233
9.3 参数和变量 235
9.3.1 用户创建的变量 236
9.3.2 变量属性 238
9.3.3 关键字变量 240
9.4 特殊字符 246
9.5 进程 247
9.5.1 进程结构 247
9.5.2 进程标识 248
9.5.3 执行命令 249
9.6 命令历史机制 249
9.6.1 控制历史机制的变量 250
9.6.2 重新执行和编辑命令 251
9.6.3 Readline库 257
9.7 别名 262
9.7.1 别名中的单引号和双引号 263
9.7.2 别名示例 264
9.8 函数 265
9.9 控制bash的特性和选项 267
9.9.1 命令行选项 267
9.9.2 shell特性 268
9.10 处理命令行 270
9.10.1 历史展开 270
9.10.2 别名替换 270
9.10.3 解析和扫描命令行 270
9.10.4 命令行展开 271
9.11 本章小结 277
9.12 练习 279
9.13 高级练习 280
第10章 网络和Internet 282
10.1 网络类型和工作方式 284
10.1.1 广播网络 284
10.1.2 点对点网络 284
10.1.3 交换网络 285
10.1.4 LAN:局域网 285
10.1.5 WAN:广域网 286
10.1.6 通过网关和路由器进行网络互连 286
10.1.7 网络协议 289
10.1.8 主机地址 290
10.1.9 CIDR:无类别域际路由选择 294
10.1.10 主机名 295
10.2 网络通信 296
10.2.1 finger:显示远程用户的信息 296
10.2.2 向远程用户发送邮件 297
10.2.3 邮件列表服务器 298
10.3 网络实用工具 298
10.3.1 可信主机 298
10.3.2 OpenSSH工具 298
10.3.3 telnet:登录远程系统 299
10.3.4 ftp:通过网络传输文件 301
10.3.5 ping:测试网络连接 301
10.3.6 traceroute:Internet路由跟踪 302
10.3.7 host和dig:查询Internet命名服务器 302
10.3.8 jwhois:查询Internet站点信息 303
10.4 分布式计算 304
10.4.1 客户端/服务器模型 304
10.4.2 DNS:域名服务 305
10.4.3 端口 307
10.4.4 NIS:网络信息服务 307
10.4.5 NFS:网络文件系统 307
10.4.6 Internet服务 308
10.4.7 代理服务器 310
10.4.8 RPC网络服务 311
10.5 Usenet 311
10.6 WWW:万维网 313
10.6.1 URL:统一资源定位符 314
10.6.2 浏览器 314
10.6.3 搜索引擎 315
10.7 本章小结 315
10.8 练习 316
10.9 高级练习 316
第四部分 系统管理 318
第11章 系统管理:核心概念 318
11.1 系统管理员和超级用户 319
11.2 救援模式 325
11.2.1 避开特洛伊木马 325
11.2.2 荻取帮助 326
11.3 SELinux 326
11.3.1 更多信息 327
11.3.2 config:SELinux配置文件 328
11.3.3 sestatus:显示SELinux的状态 328
11.3.4 使用system-config-securitylevel设置目标策略 329
11.4 系统操作 330
11.4.1 引导系统 330
11.4.2 init脚本:开启和停止系统服务 331
11.4.3 单用户模式 336
11.4.4 进入多用户模式 336
11.4.5 多用户/图形模式 336
11.4.6 登录 336
11.4.7 注销 338
11.4.8 关闭系统 338
11.4.9 系统崩溃 340
11.5 系统管理实用工具 341
11.5.1 Red Hat配置工具 341
11.5.2 命令行实用工具 343
11.6 设置服务器 345
11.6.1 配置文件中的标准规则 345
11.6.2 rpcinfo:显示portmap的有关信息 347
11.6.3 超级服务器xinetd 348
11.6.4 服务器安全 350
11.6.5 DHCP:配置主机 353
11.7 nsswitch.conf:服务搜索顺序 356
11.8 PAM 359
11.8.1 更多信息 359
11.8.2 配置文件、模块类型和控制标志 360
11.8.3 示例 361
11.8.4 修改PAM配置 362
11.9 本章小结 363
11.10 练习 363
11.11 高级练习 364
第12章 文件、目录和文件系统 365
12.1 重要的文件和目录 365
12.2 文件类型 376
12.2.1 普通文件、目录、链接和索引节点 376
12.2.2 特殊文件 377
12.3 文件系统 380
12.3.1 mount:挂载文件系统 381
12.3.2 umount:卸载文件系统 383
12.3.3 fstab:记录文件系统 384
12.3.4 fsck:检查文件系统完整性 385
12.3.5 tune2fs:修改文件系统参数 385
12.3.6 RAID文件系统 387
12.4 本章小结 388
12.5 练习 388
12.6 高级练习 388
第13章 软件下载与安装 389
13.1 yum:让系统保持最新(FEDORA) 389
13.1.1 配置yum 390
13.1.2 使用yum进行软件包的更新、安装和删除 391
13.1.3 yum组 394
13.1.4 其他yum命令 395
13.1.5 自动运行yum 395
13.1.6 用yum升级系统 395
13.1.7 使用yumdownloader下载rpm软件包文件 395
13.2 pirut:添加和删除软件包(FEDORA) 396
13.3 BitTorrent(FEDORA) 397
13.3.1 先决条件 397
13.3.2 使用BitTorrent 398
13.4 rpm:Red Hat软件包管理器 399
13.4.1 软件包和文件的查询 400
13.4.2 软件包的安装、升级与删除 401
13.4.3 Linux内核二进制文件的安装 402
13.5 安装非RPM软件包 402
13.5.1 目录/opt和/usr/local 402
13.5.2 GNU配置和构建系统 403
13.6 让软件保持最新 404
13.6.1 bug 404
13.6.2 勘误表 405
13.6.3 up2date:让软件保持最新(RHEL) 405
13.6.4 Red Hat Network(RHEL) 409
13.7 wget:非交互式下载文件 410
13.8 本章小结 411
13.9 练习 411
13.10 高级练习 411
第14章 CUPS打印 412
14.1 介绍 412
14.1.1 先决条件 413
14.1.2 更多信息 413
14.1.3 注意事项 413
14.2 起步1:使用system-config-printer配置本地打印机 413
14.3 起步2:用CUPS配置远程打印机 417
14.4 传统的UNIX打印 420
14.5 用CUPS配置打印机 420
14.5.1 CUPS的Web界面 421
14.5.2 CUPS命令行界面 422
14.5.3 共享CUPS打印机 425
14.6 KDE打印管理程序 426
14.7 融合Windows 427
14.7.1 在Windows上打印 427
14.7.2 打印到Windows 428
14.8 本章小结 428
14.9 练习 429
14.10 高级练习 429
第15章 重建Linux内核 430
15.1 准备源代码 431
15.1.1 找到源代码 431
15.1.2 安装源代码 431
15.2 阅读资料 433
15.3 配置和编译Linux内核 433
15.3.1 清除源代码树 433
15.3.2 配置Linux内核 433
15.3.3 编译Linux内核 435
15.3.4 使用可加载内核模块 435
15.4 安装内核及相关文件 436
15.5 重新启动 436
15.6 引导加载程序 436
15.6.1 grub:Linux加载程序 436
15.6.2 LOADLIN:基于DOS的Linux加载程序 438
15.7 dmesg:显示内核消息 438
15.8 本章小结 438
15.9 练习 439
15.10 高级练习 439
第16章 管理任务 440
16.1 配置用户和组账号 440
16.1.1 system-config-users:管理用户账号 440
16.1.2 useradd:添加用户账号 442
16.1.3 userdel:删除用户账号 442
16.1.4 groupadd:添加组 442
16.2 备份文件 443
16.2.1 选择备份介质 444
16.2.2 备份工具 444
16.2.3 执行简单备份 445
16.2.4 dump、restore:备份和恢复文件系统 446
16.3 任务调度 448
16.3.1 crond和crontab:调度例行任务 448
16.3.2 at:运行临时任务 448
16.3.3 kcron:调度任务 449
16.4 系统报告 450
16.4.1 vmstat:报告虚拟内存统计信息 450
16.4.2 top:列出使用最多资源的进程 451
16.5 提醒用户 451
16.6 问题来源 452
16.6.1 未能执行常规备份 452
16.6.2 未阅读和遵守指示 452
16.6.3 在指示不够清晰时未能寻求帮助 453
16.6.4 删除或者敲错某个关键文件 453
16.7 解决问题 453
16.7.1 在用户未能登录时进行援助 453
16.7.2 系统加速 454
16.7.3 lsof:找出已打开文件 455
16.7.4 机器日志 455
16.7.5 保持系统安全 455
16.7.6 记录root的文件和邮件 456
16.7.7 监视磁盘使用情况 456
16.7.8 logrotate:管理日志文件 458
16.7.9 从目录中移除未使用空间 459
16.7.10 磁盘配额系统 460
16.7.11 syslogd:记录系统消息 460
16.8 本章小结 462
16.9 练习 462
16.10 高级练习 463
第17章 搭建局域网 464
17.1 安装硬件 464
17.1.1 连接计算机 464
17.1.2 网关和路由器 465
17.1.3 NIC:网络接口卡 465
17.2 配置系统 466
17.2.1 system-config-network:配置硬件 467
17.2.2 iwconfig:配置无线NIC 469
17.3 搭建服务器 470
17.4 更多信息 471
17.5 本章小结 471
17.6 练习 471
17.7 高级练习 471
附录A 正则表达式 472
A.1 字符 472
A.2 定界符 472
A.3 简单字符串 472
A.4 特殊字符 473
A.4.1 句点 473
A.4.2 方括号 473
A.4.3 星号 473
A.4.4 脱字符与美元符号 474
A.4.5 转义特殊字符 474
A.5 规则 474
A.5.1 最长匹配 475
A.5.2 空正则表达式 475
A.6 括号表达式 475
A.7 替换字符串 476
A.7.1 &符号 476
A.7.2 转义数字 476
A.8 扩展的正则表达式 476
A.9 小结 477
附录B 获取帮助 479
B.1 解决问题 479
B.2 查找Linux相关信息 480
B.2.1 文档 480
B.2.2 有用的Linux站点 481
B.2.3 Linux新闻组 481
B.2.4 邮件列表 482
B.2.5 词语解释 482
B.2.6 软件 482
B.2.7 办公套件与字处理软件 483
B.3 指定终端 484
附录C 安全 485
C.1 加密 486
C.1.1 公共密钥加密 487
C.1.2 对称密钥加密 487
C.1.3 加密的实现 488
C.1.4 GnuPG/PGP 488
C.2 文件安全 490
C.3 电子邮件安全 490
C.3.1 MTA(邮件传输代理) 490
C.3.2 MUA(邮件用户代理) 490
C.4 网络安全 490
C.4.1 网络安全解决方案 491
C.4.2 网络安全原则 491
C.5 主机安全 492
C.5.1 登录安全 493
C.5.2 远程访问安全 494
C.5.3 病毒与蠕虫 495
C.5.4 物理安全 495
C.6 安全资源 496
C.7 小结 498