第一部分 Red Hat Linux——安装和用户服务 1
第1章 Red Hat Linux简介 1
1.1 Linux的优点 2
1.2 Red Hat Linux的魔力 3
1.3 Red Hat Linux与其他的Linux发布版的比较 4
1.4 Red Hat和Linux内核有哪些新的特征 5
1.5 版权和保证 6
1.7 系统需求 7
1.6 在哪里可以获取Red Hat Linux 7
1.8 小结 9
第2章 Red Hat系统的安装 11
2.1 安装Linux前的准备 11
2.2 选择安装方法 13
2.3 GUI和基于文本安装的比较 14
2.4 分区 14
2.4.1 使用fdisk分区 15
2.4.2 使用Disk Druid分区 15
2.4.4 格式化分区 18
2.4.3 理解交换空间 18
2.5 创建启动盘 19
2.6 启动网络安装 20
2.6.1 启动NFS安装 20
2.6.2 启动FTP安装 20
2.6.3 启动HTTP安装 21
2.7 PCMCIA和外部问题 21
2.8 一步步地安装 22
2.8.1 开始安装 22
2.8.2 安装程序 24
2.8.3 系统安装器 25
2.8.4 配置LILO 26
2.8.5 网络配置 26
2.8.6 设置时区 26
2.8.7 设置超级用户口令和用户账号 26
2.8.8 创建启动盘 28
2.10 登录和退出 29
2.9.1 Red Hat软件包管理程序 29
2.9.2 使用RPM安装和删除软件包 29
2.9 安装完成后的配置 29
2.8.9 完成安装 29
2.11 小结 30
第3章 LILO和其他引导管理器 31
3.1 选择并安装一个引导管理器 32
3.2 安装和配置LILO 32
3.2.1 安装或重新配置LILO 33
3.2.2 配置LILO 34
3.4 LILO故障排除 37
3.3 如何卸载LILO 37
3.5 使用LOADLIN.EXE引导Linux 38
3.6 安装并使用BootMagic 38
3.7 小结 40
第4章 配置X Window系统,版本11 41
4.1 什么是X11 41
4.2 XFree86或其他的X11 41
4.3 XFree86 4.0.1的新特点 42
4.4 选择配置工具 44
4.4.1 XF86Config文件 46
4.4.2 使用XFree86服务器 47
4.4.3 使用Xconfigurator 48
4.4.4 使用xf86cfg命令 52
4.4.5 使用xf86config命令 53
4.5 检查XF86Config文件 59
4.5.1 XF86Config ServerLayout部分 59
4.5.2 XF86Config Files部分 60
4.5.3 XF86Config Module部分 61
4.5.4 XF86Config ServerFlags部分 62
4.5.5 XF86Config InputDevice部分 62
4.5.6 XF86Config Monitor部分 63
4.5.7 XF86Config Device部分 64
4.5.8 XF86Config Screen部分 65
4.6 使用startx命令来运行X11 66
4.6.1 使用控制台和多个X会话 67
4.6.2 .xinitrc文件 67
4.7 使用xdm 68
4.8 XFree86故障排除 69
4.9 小结 70
5.1 什么是窗口管理器 71
5.2 GNOME X环境 71
第5章 窗口管理器 71
5.2.1 什么是GNOME 72
5.2.2 GNOME安装组件 73
5.2.3 使用GNOME或者其他显示管理器配置X11 74
5.2.4 使用GNOME客户程序和工具 77
5.2.5 使用GNOME Control Center配置桌面 78
5.2.6 GNOME面板配置 79
5.3 sawfish窗口管理器特性 80
5.4 Enlightenment窗口管理器特性 81
5.5 K桌面环境特性 82
5.5.1 KDE安装组件 83
5.5.2 使用kdm登录 84
5.5.3 KDE桌面特性 84
5.5.4 执行基本的桌面动作 85
5.5.5 使用桌面面板 85
5.5.6 使用KDE的konqueror或者K文件管理器 86
5.6 使用KDE Control Center配置KDE 87
5.6.1 使用显示管理器选项 87
5.6.2 更改桌面墙纸 88
5.6.3 更改屏幕保护程序 89
5.6.4 更改键盘和鼠标设置 90
5.6.5 更改窗口行为 91
5.6.6 使用键盘控制光标 92
5.6.7 控制KDE桌面边界 92
5.7 fvwm2窗口管理器 93
5.8 twm窗口管理器 95
5.9 小结 97
6.1 安装虚拟接口 98
第6章 连接到Internet上 98
6.2 PPP 100
6.2.1 安装PPP 101
6.2.2 安装PPP使用账户 101
6.2.3 安装chat 102
6.2.4 配置pppd 103
6.2.5 chat和pppd的结合 103
6.2.6 使用PPP脚本来安装PPP 104
6.2.7 用Red Hat的Dialup配置工具安装PPP 105
6.2.8 使用kppp客户安装PPP 107
6.2.9 使用wvdial命令安装PPP 112
6.3 安装DSL PPPOE连接 113
6.4 安装SLIP 116
6.5 安装拨号上网PPP服务器 117
6.6 小结 119
第7章 IPC、ICQ和chat客户程序 120
7.1 talk客户程序和服务器程序 120
7.1.1 安装和配置talk 120
7.1.2 与talk连接 121
7.1.3 通过talk聊天 122
7.2 IRC——在线聊天系统 123
7.1.4 控制对你的终端的访问 123
7.1.5 使用talk与多个用户谈话 123
7.2.1 使用非GUIIRC客户程序——ircII 125
7.2.2 xchat 134
7.2.3 运行IRC服务器 137
7.3 实时通信 137
7.3.1 ICQ 137
7.3.2 Licq 138
7.4 小结 142
8.2 常见的图形格式 144
第8章 使用多媒体和图形客户程序 144
8.1 Linux图形实用工具 144
8.3 基本的图形编辑客户程序 153
8.3.1 X11图形客户程序 153
8.3.2 用import命令获取屏幕 154
8.3.3 启用GNOME的图形客户程序 154
8.3.4 KDE图形客户程序 157
8.4 使用GIMP 158
8.5 显示和打印图像 160
8.6 配置声音 162
8.7 播放音频CD 165
8.8 播放mp3文件 167
8.9 播放视频 168
8.10 使用Web Cam 169
8.11 小结 170
第二部分 配置服务 171
第9章 系统的启动和关闭 171
9.1 引导进程 171
9.2 初始化进程和启动脚本 172
9.2.1 init和/etc/inittab 173
9.2.2 /etc/inittab和系统状态 175
9.3 linuxconf与管理服务 179
9.4 关闭Linux系统 181
9.4.1 shutdown 181
9.4.2 halt与reboot 183
9.5 当系统崩溃时 183
9.5.1 以root身份运行 184
9.5.2 创建引导盘 184
9.5.4 文件工具箱 185
9.5.3 误删除文档 185
9.5.5 当系统不能引导时,Red Hat会来救援 187
9.5.6 获取更多的信息 187
9.6 小结 188
第10章 SMTP和协议 190
10.1 Internet电子邮件标准的历史简述 190
10.1.1 sendmail介绍 190
10.1.3 网际邮件访问协议 191
10.2 SMTP和sendmail 191
10.1.2 邮局协议 191
10.2.1 网际邮件协议 192
10.2.2 域名系统和电子邮件 193
10.2.3 sendmail的工作 196
10.2.4 sendmail的辅助文件 197
10.2.5 别名文件 197
10.2.6 设置sendmail 198
10.2.7 sendmail.cf:配置文件 201
10.2.8 自动生成sendmail.cf文件 212
10.2.9 还有更加简单的方法 214
10.2.10 测试sendmail和sendmail.cf 216
10.2.11 常见的sendmail配置错误 218
10.3 POP 218
10.3.1 配置POP服务器 218
10.3.2 配置ipop3d 219
10.3.3 APOP如何工作 220
10.3.4 设置APOP验证 220
10.4 IMAP 221
10.5 邮件获取 222
10.5.1 为获取POP3或者IMAP邮件配置Netscape 222
10.5.2 fetchmail 224
10.6 小结 225
10.5.3 为获取POP3或者IMAP邮件配置fetchmail 225
第11章 FTP 227
11.1 获取和安装FTP服务器程序 227
11.2 FTP服务器的工作方式 229
11.3 配置FTP服务器 230
11.3.1 控制访问权——/etc/ftpaccess文件 230
11.3.2 在传输时转换文件——/etc/ftpcon-versions文件 240
11.3.4 FTP的日志文件——/var/log/xferlog 242
11.3.3 配置主机的访问权——/etc/ftphosts文件 242
11.4 FTP管理工具 243
11.4.1 ftprestart 243
11.4.2 ftpshut 243
11.4.3 ftpwho 244
11.4.4 ftpcount 244
11.5 使用FTP客户程序 244
11.5.1 使用wget命令获取文件 246
11.5.2 autoexpect 246
11.5.3 ncftp 247
11.5.4 xtp 248
11.5.5 gftp 248
11.5.6 使用kfm命令 249
11.6 小结 250
第12章 Apache服务器 251
12.1 服务器安装 252
12.1.1 从RPM安装 252
12.1.2 自己构造源代码 253
12.2 运行时服务器配置的设置 254
12.2.1 编辑httpd.conf文件 255
12.2.2 .htaccess文件 257
12.3 验证和访问控制 259
12.3.1 使用allow和deny的访问限制 259
12.3.2 验证 260
12.3.3 关于访问控制的最后说明 262
12.4 Apache模块 262
12.5 虚拟主机 267
12.5.1 基于地址的虚拟主机 267
12.5.2 基于名字的虚拟主机 268
12.6 日志记录 269
12.7 动态内容 270
12.7.1 CGI 270
12.7.2 SSI 271
12.7.3 基本的SSI指令 272
12.7.4 流控制 274
12.7.5 PHP 274
12.8 启动和停止服务器 275
12.8.1 手动启动服务器 275
12.8.2 /etc/rc.dhttpd脚本 276
12.9 配置文件清单 278
12.10 小结 299
第13章 Internet新闻 300
13.1 Linux与新闻组 300
13.1.1 新闻供给点如何工作 301
13.1.2 推/拉新闻 301
13.1.3 下载新闻组的替代方法 302
13.2 INN的硬件与软件要求 302
13.3 INN介绍 303
13.3.1 安装INN 303
13.3.2 INN启动文件 304
13.3.3 配置INN 309
13.4 Leafnode+介绍 310
13.4.1 Leafnode+如何工作 310
13.4.2 下载和配置Leafnode+ 311
13.5 trn介绍 312
13.6 小结 312
第15章 域名服务和动态主机配置协议 313
14.1 Internet历史简述 313
14.1.2 /etc/hosts文件 314
14.1.1 Hosts.txt文件 314
14.1.3 BIND8 315
14.2 本章例子的说明 316
14.3 重要的DNS事实和概念 317
14.3.1 DNS客户和服务器截然不同 317
14.3.2 DNS术语 317
14.3.3 DNS将名字映射到IP地址及反序操作 318
14.3.4 前区和反区必须保持同步 318
14.3.5 HUP信号和重启 318
14.3.8 配置DNS客户:/etc/resolv.conf 319
14.3.6 in-addr.arpa域 319
14.3.7 主机命名方案 319
14.3.9 DNS软件 320
14.4 DNS服务器配置文件 321
14.4.1 DNS引导文件:/etc/named.conf 322
14.4.2 DNS区数据文件 323
14.5 使用linuxconf配置resolv.conf 327
14.6 普通的缓存DNS 329
14.6.1 测试缓存DNS 330
14.7.1 添加本地域解析 332
14.6.2 缓存服务器小结 332
14.7 配置DNS服务器主区 332
14.7.2 添加虚拟域解析 335
14.8 授权委托 336
14.8.1 在Sylvia上添加subdomain.domain.cxm的授权 337
14.8.2 测试subdomain.domain.cxm本地解析 337
14.8.3 从mainserv委托子域给sylvia 338
14.8.4 测试subdomain.domain.cxm委托 338
14.9.1 在mydesk添加从区 339
14.9 添加从DNS服务器 339
14.9.2 在mainserv添加从域名服务器 340
14.10 解决DNS问题 341
14.10.1 使用脚本对DNS设置进行耐压测试 341
14.10.2 使用转储和日志进行调试 342
14.10.3 使用dnswalk检查DNS配置 342
14.11 DNS资源 343
14.12 使用DHCP自动配置客户 344
14.12.1 配置DHCP服务器 344
14.12.2 配置基于Linux的DHCP客户 346
14.12.3 配置基于Windows的DHCP客户 347
14.13 小结 347
第15章 NIS:网络信息服务 349
15.1 了解NIS 349
15.1.1 NIS域 350
15.1.2 不同的服务器 350
15.2 安装软件 350
15.3 配置主NIS服务器 351
15.4.1 使用linuxconf配置NIS客户 354
15.4 配置NIS客户 354
15.4.2 手工配置NIS客户 355
15.4.3 测试客户 356
15.5 配置从NIS服务器 357
15.6 在/etc/passwd文件中使用NISisms 358
15.7 使用网络组 359
15.8 解决问题的一些技巧 360
15.9 小结 360
第16章 NFS:网络文件系统 361
16.2 启动和停止NFS守护进程 362
16.1 NFS安装 362
16.3 配置NFS服务器的客户 363
16.3.1 设置etc/exports文件 363
16.3.2 使用mount加载一个导出的文件系统 364
16.3.3 卸载文件系统 365
16.3.4 配置/etc/fstab文件以自动加载文件系统 366
16.4 使用linuxconf导出文件系统 367
16.5 完整的样本配置文件 369
16.6 小结 370
第17章 Samba 371
17.2 实现一个简单的Samba设置 372
17.1 安装Samba 372
17.2.1 使用Linux客户进行测试 373
17.2.2 使用Windows客户进行测试 374
17.3 配置Samba 377
17.3.1 [global]段 377
17.3.2 [homes]段 378
17.3.3 [printers]段 379
17.4 使用linuxconf配置Samba文件服务器 382
17.5 共享文件和打印服务 382
17.6 优化Samba性能 383
17.7 测试配置 384
17.8 运行Samba服务器 385
17.9 访问共享 386
17.9.1 在Linux客户上使用smbclient 386
17.9.2 在Linux客户上加载共享 387
17.10 常用的smb.conf配置选项 388
17.11 Samba资源 394
17.11.1 Samba应用程序文档资料 394
17.12 使用Samba作为登录服务器 395
17.11.2 配置选项文档 395
17.11.3 其他文档 395
17.12.1 基本的Windows 9x登录验证 396
17.12.2 启用服务器上的登录脚本 397
17.13 Samba问题解决技巧 397
17.13.1 尽早和经常使用testparm 397
17.13.4 检查日志文件 398
17.13.5 使用SWAT缩短smb.conf文件 398
17.13.3 了解访问层次 398
17.13.2 使用DIAGNOSIS.txt 398
17.13.6 产生一个绝无错误的浏览器smb.conf文件 399
17.13.7 保持清醒的头脑 399
17.14 Samba安全 399
17.14.1 SWAT防范措施 400
17.14.2 特殊参数的考虑 400
17.14.3 冰山的一角 400
17.15 使用SWAT配置基于Web的Samba 400
17.15.1 在服务器上激活SWAT 401
17.16 使用Samba作为Linux迁移工具 402
17.15.2 在浏览器上使用SWAT配置smb.conf 402
17.16.1 创建数据目录共享 403
17.16.2 早期的转换 403
17.16.3 从文本文件中去掉讨厌的回车符 404
17.16.4 迁移的最后阶段 404
17.17 小结 405
第三部分 系统管理 407
第18章 Linux文件系统、磁盘和其他设备 407
18.1 设备的基本概念 407
18.1.2 块设备 408
18.1.1 字符设备 408
18.2 文件系统 409
18.3 mount命令 410
18.4 使用User Mount Tool安装文件系统 413
18.5 设置文件系统 413
18.6 创建新的文件系统 415
18.7 使用fsconf和linuxconf在图形界面中创建和编辑文件系统 416
18.8 修复文件系统 419
18.9 各种硬件 421
18.9.1 硬盘 422
18.9.2 软盘驱动程序 423
18.9.3 CD-ROM驱动器 423
18.9.4 RAID 424
18.9.5 回送设备 426
18.9.6 其他块设备 428
18.9.7 USB设备 429
18.10 字符设备 429
18.10.1 并行端口 429
18.10.2 磁带驱动器 430
18.10.3 终端 431
18.10.4 串行通信 433
18.10.5 公用的SCSI设备 433
18.10.6 CD-ROM刻录机 434
18.10.7 测试CD映像 434
18.10.8 其他字符设备 434
18.11 小结 437
第19章 利用Linux进行打印 438
19.1 打印机设备 438
19.2 在Linux中应该使用什么样的打印机 439
19.3 如何打印 442
19.4 printtool——Red Hat Linux打印系统管理器 444
19.4.1 远程Linux打印机 444
19.4.2 本地打印机 447
19.4.3 定制RHS打印机过滤器 448
19.5 Linux的打印命令 449
19.6 其他有用的打印机程序和过滤器 451
19.6.4 HPTools 452
19.6.3 LPRMagic 452
19.6.2 magicfilter 452
19.6.1 Apsfilter 452
19.6.5 PostScript打印机 453
19.7 对红外线打印机的支持 453
19.8 其他的有用程序 453
19.8.1 pbm工具 453
19.8.2 gv 454
19.9 排错和获取更详细的信息 454
19.10 小结 455
20.1.1 IP地址 456
20.1 TCP/IP基础 456
第20章 TCP/IP网络管理 456
20.1.2 拆分网络 457
20.1.3 TCP/IP协议集 461
20.1.4 端口 462
20.1.5 套接字 462
20.2 网络配置 462
20.2.1 配置文件 463
20.2.2 配置程序 469
20.3.2 网络服务控制 475
20.3 网络守护进程 475
20.3.1 独立的TCP/IP守护进程 475
20.4 TCP/IP排除故障的工具 477
20.4.1 ping 477
20.4.2 traceroute 478
20.4.3 tcpdump 479
20.5 网络安全工具 481
20.5.1 防火墙 481
20.5.2 安全远程访问——SSH,安全的Shell 488
20.6 小结 492
第21章 Linux系统管理 493
21.1 以root权限工作 493
21.2 进行系统维护 494
21.2.1 规划处理过程 494
21.2.2 制定还原方案 495
21.2.3 小幅度地进行修改 495
21.2.4 制定测试方案 495
21.2.5 及时有效地与用户进行通信 495
21.3.1 安装 499
21.3 使用RPM管理软件 499
21.3.2 卸载 500
21.3.3 升级 500
21.3.4 查询 501
21.4 使用Gnome-RPM 502
21.5 使用linuxconf管理用户和组 503
21.5.1 建立并修改用户 503
21.5.2 使用linuxconf管理组 504
21.6 利用命令行方式管理用户和组 504
21.6.4 利用命令行方式管理组 505
21.6.3 删除用户 505
21.6.1 增加用户 505
21.6.2 更改用户口令 505
21.7 使用linuxconf设置磁盘空间配额 506
21.8 使用linuxconf创建特定的账号 508
21.9 性能分析 508
21.9.1 使用vmstat确定CPU的使用情况 509
21.9.2 使用top识别问题 511
21.9.3 使用free显示可利用的内存 512
21.9.4 使用renice改变进程优选级 513
21.10 理解你的安全职责 513
21.11 获取帮助 514
21.11.1 使用手册页 514
21.10.1 选择好的口令 514
21.10.2 了解新的安全问题 514
21.11.2 访问Red Hat的邮件列表和讨论组 517
21.11.3 访问其他讨论组和Web页面 518
21.12 小结 519
第22章 备份和恢复 520
22.1 对成功备份的考虑 520
22.3 选择备份介质 521
22.2 优良备份的品质 521
22.4 选择备份工具 522
22.5 备份策略和操作 523
22.5.1 利用tar和cpio执行备份 524
22.5.2 使用taper脚本进行备份 525
22.6 恢复文件 526
22.7 了解存档中的内容 527
22.8 小结 527
23.1.1 安全性计划 528
23.1 安全性审核 528
第23章 系统安全性 528
23.1.2 安全性工具 529
23.1.3 知识的搜集 530
23.2 危险,威尔·罗宾逊,危险 531
23.2.1 以防万一 531
23.2.2 suid和sgid 532
23.3 文件和目录权限 533
23.3.1 文件 533
23.3.2 目录 534
23.3.3 如何把suid和sgid置于权限字段 535
23.3.4 文件或目录的默认模式 536
23.4 再论口令 536
23.5 相关的WWW站点 537
23.6 小结 537
第四部分 Red Hat开发和生产 539
第24章 Linux C/C++编程工具 539
24.1 C语言的背景 539
24.2.1 使用C++编程:基本概念 540
24.2 C++语言的元素 540
24.2.2 文件命名 541
24.3 项目管理工具 541
24.3.1 使用make来构建程序 541
24.3.2 建立大型的应用程序 543
24.3.3 使用RCS和CVS来管理软件项目 543
24.3.4 调试工具 545
24.4 GNU C/C++编译器的命令行选项 546
24.5 GNU egcs编译系统的新特征 547
24.7 小结 548
24.6 辅助资料 548
第25章 Shell脚本编程 549
25.1 创建和执行shell程序 550
25.2 变量 551
25.2.1 给变量赋值 552
25.2.2 访问变量值 552
25.3 位置参数 552
25.4 内置变量 553
25.5.1 双引号 554
25.5 特殊字符 554
25.5.2 单引号 555
25.5.3 反斜杠 555
25.5.4 反引号 556
25.6 表达式的比较 556
25.6.1 pdksh和bash 556
25.6.2 tcsh 560
25.7 循环语句 563
25.7.1 for语句 563
25.7.2 while语句 564
25.7.3 until语句 565
25.7.4 repeat语句 566
25.7.5 select语句 566
25.7.6 shift语句 566
25.8 条件语句 567
25.8.1 if语句 567
25.8.2 case语句 568
25.10 函数 570
25.9.2 exit语句 570
25.9.1 break语句 570
25.9 其他语句 570
25.11 小结 571
第26章 任务的自动化 572
26.1 第一个例子——自动化数据输入 572
26.1.1 问题的解决方法 572
26.1.2 脚本的分析 573
26.2 提高自动化技术的方法 575
26.2.1 继续学习 575
26.3.1 使用chstr改变文件中的字符串 576
26.2.2 精心策划 576
26.3 shell脚本 576
26.3.2 WWW检索 577
26.3.3 有关shell编程的结论 578
26.4 用cron和at调度作业 579
26.4.1 cron和find——探测磁盘的使用情况 580
26.4.2 at:调度未来的事件 581
26.5 其他的机制:expect、Perl等等 581
26.5.1 expect 581
26.5.2 perl 582
26.5.3 其他工具 583
26.5.4 内部脚本 585
26.6 自动化的意义 585
26.7 小结 586
第27章 配置和构建内核 587
27.1 Linux内核介绍 587
27.2 理解内核 588
27.3 理解内核源代码结构 590
27.4 获取内核源代码 591
27.4.1 检查新内核的复制 592
27.4.2 修补源代码树 593
27.4.3 升级和模块 594
27.4.4 内核2.4中的新特性 595
27.4.5 Linux2.5中将有的特性 596
27.5 配置Linux内核 596
27.5.1 为内核更新而准备lilo.conf 597
27.5.2 用make进行配置 597
27.5.3 选择配置选项 598
27.5.4 CML2:下一代配置工具 621
27.6 构建和安装内核 623
27.6.1 构建内核 623
27.6.2 新内核的故障排除 625
27.7 从发生故障的内核恢复 627
27.7.1 重复的重启 628
27.7.2 不完全的LILO提示符 628
27.7.3 装载时内核终止 628
27.7.5 内核oops和错误报告 629
27.7.4 内核panic 629
27.8 小结 630
第28章 模拟器、工具和Windows客户程序 631
28.1 模拟器 631
28.1.1 使用DOSEMU模拟DOS系统 631
28.1.2 使用Wine运行Windows客户程序 634
28.1.3 使用Executor模拟Apple Macintosh 636
28.1.4 支持Linux和Windows的VMware 638
28.2 mtools软件包 643
28.3 窗口化的网络客户程序 645
28.3.1 构造并安装vnc软件 646
28.3.2 启用虚拟网络服务 646
28.3.3 查看远程桌面 647
28.4 小结 649
第五部分 附录 651
附录A Linux文档计划 651
附录B 常用Linux命令和实用程序 654
附录C GNU通用公共许可协议 681
附录D Red Hat Linux RPM软件包列表 687
附录E 附带光盘的内容 715