第1部分 Linux基础 3
第1章 Linux初步 3
1.1 了解Linux 4
1.2.1 从贝尔实验室的UNIX文化开始 6
1.2 探索Linux历史 6
1.2.2 UNIX的商业化 8
1.2.3 GNU的免费UNIX 9
1.2.5 Linus填补了空缺 10
1.2.4 BSD失去了机会 10
1.3.1 Linux的特性 11
1.3 为什么Linux如此出色 11
1.3.2 OSI开放源代码定义 12
1.3.3 充满活力的社区 13
1.4.1 能阻止对病毒的担忧吗 14
1.4 Linux神话、传奇和FUD 14
1.3.4 主要的软件项目 14
1.4.2 会因使用Linux而受到指控吗 15
1.4.4 Linux会颠覆Microsoft吗 16
1.4.3 Linux是否能运行在所有计算机上 16
1.4.7 公司如何用Linux获得利润 17
1.4.6 Linux只面向专家级用户吗 17
1.4.5 使用Linux时如何获得支持 17
1.4.9 Linux吉祥物是企鹅吗 18
1.4.8 不同的Linux发行版之间有何不同 18
1.5 运行Linux 19
1.6 小结 20
第2章 从shell运行命令 21
2.1.2 使用终端窗口 22
2.1.1 使用shell提示符 22
2.1 启动shell 22
2.2 选择shell 23
2.1.3 使用虚拟终端 23
2.2.4 使用ksh 24
2.2.3 使用ash 24
2.2.1 使用bash(以及早期的sh)shell 24
2.2.2 使用tcsh(以及早期的csh)shell 24
2.3.2 检查目录和许可 25
2.3.1 检查登录会话 25
2.2.5 使用zsh 25
2.3 探索shell 25
2.3.4 退出shell 27
2.3.3 检查系统活动 27
2.4.1 命令的位置 28
2.4 在Linux中使用shell 28
2.4.2 重新运行命令 30
2.4.3 连接和扩展命令 34
2.5.1 配置shell 36
2.5 创建shell环境 36
2.5.2 使用shell环境变量 38
2.5.3 管理后台和前台进程 40
2.6 使用Linux文件系统 42
2.6.1 创建文件和目录 43
2.7 使用vi文本编辑器 48
2.6.2 移动、复制和删除文件 48
2.7.1 运行vi 49
2.7.3 搜索文本 51
2.7.2 在文件中移动 51
2.8 小结 52
2.7.4 使用命令和数字 52
3.1 了解桌面 53
第3章 进入桌面 53
3.2 K桌面环境 56
3.2.1 使用KDE桌面 57
3.2.2 使用Konqueror文件管理器管理文件 59
3.2.3 配置Konqueror选项 63
3.2.4 管理窗口 65
3.2.5 配置桌面 66
3.2.6 添加应用程序启动器和MIME类型 68
3.3 GNOME桌面 69
3.3.1 使用Metacity窗口管理器 70
3.3.2 使用GNOME面板 71
3.3.3 使用Nautilus文件管理器 74
3.3.4 改变GNOME首选项 75
3.3.5 退出GNOME 77
3.4.1 配置X 78
3.4 配置自己的桌面 78
3.4.2 选择窗口管理器 80
3.5 获得更多信息 82
3.4.3 选择个人的窗口管理器 82
3.6 小结 83
4.1.1 使用基于Web的管理 87
4.1 图形管理工具 87
第2部分 运行显示 87
第4章 学习基本的管理功能 87
4.1.2 不同发行版的图形管理 89
4.2 使用根登录(Root Login) 91
4.2.1 在shell中变成根(su命令) 92
4.3.1 管理命令 93
4.3 了解管理命令、配置文件和日志文件 93
4.2.2 允许有限的管理访问 93
4.3.2 管理配置文件 94
4.3.3 管理日志文件 96
4.4 使用sudo和其他管理登录 97
4.5 管理Linux系统 98
4.6.1 用useradd添加用户 99
4.6 创建用户帐号 99
4.6.2 设置用户默认值 101
4.7.1 管理可移动硬件 103
4.7 配置硬件 103
4.7.2 使用可装载的模块 105
4.8 管理文件系统和磁盘空间 107
4.8.1 挂载文件系统 109
4.8.3 添加硬盘 114
4.8.2 使用mkfs命令创建文件系统 114
4.8.4 检查系统空间 116
4.10 小结 118
4.9 监视系统性能 118
5.1.1 通过拨号服务进行连接 119
5.1 连接到网络 119
第5章 连接到Internet 119
5.1.2 将单台计算机连接到宽带 120
5.1.3 将多台计算机连接到宽带 121
5.1.4 服务器连接 122
5.1.5 连接其他设备 123
5.2.2 从桌面配置以太网 124
5.2.1 在安装期间配置以太网 124
5.2 使用以太网连接到Internet 124
5.2.3 使用网络配置GUI 125
5.2.4 理解Internet连接 127
5.3.1 获得信息 129
5.3 使用拨号连接到Internet 129
5.3.3 使用Internet配置向导创建拨号连接 130
5.3.2 设置拨号PPP 130
5.3.5 按需启动PPP连接 132
5.3.4 启动PPP连接 132
5.4 小结 133
5.3.6 检查PPP连接 133
6.1 Linux安全检查列表 134
第6章 Linux的安全保证 134
6.1.2 了解一般的安全资源 136
6.1.1 了解特定于发行版的安全资源 136
6.2.2 选择健壮的密码 137
6.2.1 使用密码进行保护 137
6.2 安全地使用Linux 137
6.2.3 使用影子密码文件 138
6.3 使用日志文件 140
6.3.1 Syslogd的作用 141
6.3.2 使用syslogd将日志重定向到Loghost 142
6.4 使用安全shell工具 143
6.3.3 理解messages日志文件 143
6.4.2 使用ssh、sftp和scp命令 144
6.4.1 启动SSH服务 144
6.4.3 不带密码使用ssh、scp和sftp 145
6.5.1 使用TCP Wrapper来控制对服务的访问 146
6.5 保护Linux服务器的安全 146
6.5.2 了解各种攻击技术 148
6.5.3 拒绝服务攻击的防护 149
6.5.4 分布式DoS攻击的防护 151
6.5.5 针对入侵攻击的防护 154
6.5.6 使用SELinux保护服务器的安全 156
6.5.7 使用证书和加密保护Web服务器 157
6.7 小结 164
6.6 使用安全工具Linux发行版 164
7.1 选择Linux发行版 167
第7章 安装Linux 167
第3部分 挑选和安装Linux发行版 167
7.2.1 寻找其他Linux发行版 168
7.2 获得自己的Linux发行版 168
7.1.1 Linux的使用情况 168
7.1.2 其他发行版 168
7.2.2 了解需要 169
7.2.4 将发行版刻录到CD上 170
7.2.3 下载发行版 170
7.3.1 了解计算机硬件 171
7.3 了解常见的安装主题 171
7.3.3 与Windows双引导还是只用Linux 172
7.3.2 升级或从头进行安装 172
7.3.5 分区硬盘驱动器 173
7.3.4 使用安装引导选项 173
7.3.6 使用LILO或GRUB引导装载程序 179
7.3.7 配置网络 185
7.4 小结 186
7.3.8 配置其他管理特性 186
第8章 运行Fedora Core和Red Hat Enterprise Linux 187
8.1.1 Red Hat安装程序(Anaconda) 188
8.1 探究各种特性 188
8.1.3 Kudzu硬件检测 189
8.1.2 RPM软件包管理 189
8.2.1 日益增加的论坛支持Fedora 190
8.2 深入研究Fedora Core 190
8.1.4 Red Hat桌面的外观 190
8.1.5 系统配置工具 190
8.2.3 Fedora遗留项目 191
8.2.2 Fedora Extras 191
8.4 倾听Red Hat社区的声音 192
8.3 倾听人们对Red Hat的看法 192
8.2.4 论坛和邮寄列表 192
8.5.1 选择计算机硬件 194
8.5 安装Fedora Core 194
8.5.2 选择安装方法 195
8.5.3 选择安装还是升级 196
8.5.4 开始安装 197
8.6 小结 202
8.5.5 运行Fedora Setup Agent 202
第9章 运行Debian GNU/Linux 203
9.1.1 Debian软件包 204
9.1 Debian GNU/Linux的内幕 204
9.1.3 Debian的版本 205
9.1.2 Debian软件包管理工具 205
9.3 安装Debian GNU/Linux 206
9.2 获得Debian的帮助 206
9.3.2 运行安装程序 207
9.3.1 硬件要求和安装计划 207
9.4.1 配置网络连接 211
9.4 管理Debian系统 211
9.4.2 使用APT进行软件包管理 213
9.4.3 使用dpkg进行软件包管理 216
9.4.4 使用tasksel安装软件包集(任务) 217
9.4.5 替换、转换和改写 218
9.5 小结 219
9.4.6 使用debconf管理软件包配置 219
第10章 运行SUSE Linux 220
10.2 SUSE中有什么 221
10.1 了解SUSE 221
10.2.1 使用YaST进行安装和配置 222
10.2.2 RPM软件包管理 223
10.3 获得SUSE支持 224
10.2.3 软件自动更新 224
10.4.1 开始之前 225
10.4 安装OpenSUSE 225
10.4.2 开始安装 226
10.6 小结 229
10.5 开始使用SUSE 229
11.2 KNOPPIX的特性 230
11.1 KNOPPIX新闻 230
第11章 运行KNOPPIX 230
11.3.1 KNOPPIX内幕 231
11.3 了解KNOPPIX 231
11.3.2 KNOPPIX的出色之处 232
11.3.3 KNOPPIX的挑战 233
11.3.5 探究KNOPPIX的使用 234
11.3.4 KNOPPIX的出处 234
11.4.1 获得一台计算机 235
11.4 启动KNOPPIX 235
11.4.3 解决引导问题 236
11.4.2 引导KNOPPIX 236
11.5.1 使用KNOPPIX中的KDE桌面 239
11.5 使用KNOPPIX 239
11.5.2 上网 240
11.5.4 在KNOPPIX内保存文件 241
11.5.3 在KNOPPIX中安装软件 241
11.5.6 重新启动KNOPPIX 243
11.5.5 保存KNOPPIX配置 243
11.6 小结 244
12.1 理解Yellow Dog Linux 245
第12章 运行Yellow Dog Linux 245
12.2 Yellow Dog前景 246
12.3 深入Yellow Dog 247
12.4.1 硬件支持 248
12.4 安装Yellow Dog Linux 248
12.4.2 规划安装 249
12.4.3 开始安装 251
12.6 更新Yellow Dog Linux 255
12.5 重新引导Linux Mac 255
12.7 利用Mac-on-Linux运行Mac应用程序 256
12.8 支持选项 256
12.9 小结 257
13.1.1 Gentoo的开放源代码精神 258
13.1 了解Gentoo 258
第13章 运行Gentoo Linux 258
13.1.3 构建、调优和调整Linux 259
13.1.2 Gentoo社区 259
13.1.4 Gentoo的使用场所 260
13.2.1 用Portage管理软件 261
13.2 Gentoo包含的内容 261
13.3 安装Gentoo 262
13.2.2 查找软件包 262
13.3.2 开始Gentoo安装 263
13.3.1 获得Gentoo 263
13.4 小结 269
14.1 了解Slackware 270
第14章 运行Slackware Linux 270
14.2.1 Slackware的创造者 271
14.2 Slackware社区的特色 271
14.2.2 Slackware用户 272
14.3 使用Slackware的挑战 273
14.2.3 Slackware的Internet站点 273
14.5.1 获得Slackware 274
14.5 安装Slackware 274
14.4 将Slackware用做开发平台 274
14.5.4 开始安装 275
14.5.3 硬件要求 275
14.5.2 Slackware 10.2中的新特性 275
14.6 开始使用Slackware 279
14.7 小结 280
15.1 Linspire概述 281
第15章 运行Linspire 281
15.2.1 使用Click-N-Run安装软件 282
15.2 了解Linspire 282
15.2.2 其他安装选项 283
15.3.2 Audio Assistant 284
15.3.1 Linspire论坛和信息 284
15.3 Linspire支持和软件 284
15.4.1 Linspire硬件需求 285
15.4 安装Linspire Five-O 285
15.4.2 安装Linspire 286
15.5 小结 287
16.1 Mandriva的特性 288
第16章 运行Mand riva 288
16.2 探究Mandriva 289
16.2.2 通过RPMDrake进行RPM软件包管理 290
16.2.1 Mandriva安装程序(DrakX) 290
16.3 Mandriva社区 291
16.2.3 Mandriva控制中心(MCC) 291
16.4 安装Mandriva Limited Edition 292
16.3.2 Mandriva论坛 292
16.3.1 Mandrivaclub上的RPM储存库 292
16.4.2 开始DrakX安装 293
16.4.1 适合Mandriva的硬件 293
16.5 小结 297
17.1 Ubuntu概述 298
第17章 运行Ubuntu Linux 298
17.1.3 将Ubuntu作为桌面 299
17.1.2 Ubuntu安装程序 299
17.1.1 vUbuntu版本 299
17.1.6 Ubuntu面临的挑战 301
17.1.5 Ubuntu副产品 301
17.1.4 将Ubuntu作为服务器 301
17.2 安装Ubuntu 302
17.3.1 试用桌面系统 305
17.3 开始使用Ubuntu 305
17.3.2 添加更多软件 306
17.4 获得有关Ubuntu的更多信息 308
17.5 小结 309
18.1 了解防火墙 310
第18章 运行Linux防火墙/路由器 310
18.2.1 在Red Hat Linux中启动防火墙 311
18.2 通过防火墙保护桌面系统 311
18.2.2 在Mandriva中配置防火墙 313
18.3.1 用iptables启动 314
18.3 通过iptables使用防火墙 314
18.3.3 通过iptables添加模块 318
18.3.2 使用iptables进行SNAT或IP伪装 318
18.3.5 使用iptables进行端口转发 319
18.3.4 将iptables用作透明代理 319
18.4.1 创建Coyote Linux防火墙 320
18.4 制作Coyote Linux可引导软盘防火墙 320
18.4.2 创建Coyote Linux软盘 321
18.4.4 管理Coyote Linux软盘防火墙 325
18.4.3 运行Coyote Linux软盘防火墙 325
18.6 小结 327
18.5 使用其他防火墙发行版 327
19.1 可引导Linux发行版概述 328
第19章 运行可引导的Linux发行版 328
19.2 选择可引导的Linux 329
19.2.1 安全和救援可引导发行版 330
19.2.2 多媒体可引导版本 332
19.2.3 微型桌面发行版 334
19.2.4 Damn Small Linux 335
19.3 特殊目的的可引导发行版 337
19.4 自定义可引导Linux 338
19.5 小结 339
20.1 播放数字媒体并遵守法律 343
第20章 播放音乐和视频 343
第4部分 运行应用程序 343
20.1.1 版权保护问题 344
20.1.2 探究编解码器 345
20.2.1 安装声卡 346
20.2 播放音乐 346
20.2.2 选择音频CD播放器 348
20.2.3 使用MIDI音频播放器 353
20.2.4 执行音频文件转换和压缩 354
20.3.1 使用cdrecord创建音频CD 356
20.3 录制和处理音乐 356
20.3.2 使用Grip处理CD 357
20.4 使用电视、视频和数字成像设备进行工作 358
20.3.3 使用cdlabelgen创建CD标签 358
20.4.1 使用tvtime看电视 359
20.4.2 使用GnomeMeeting召开视频会议 360
20.5.1 使用xine观看视频 362
20.5 观看电影和视频 362
20.5.2 使用Helix Player和RelPlayer 10 364
20.6 通过Gtkam和gPhoto2使用数码相机 365
20.6.2 使用相机作为存储设备 367
20.6.1 使用Gtkam下载数字照片 367
20.7 小结 368
21.1 使用OpenOffice.org 369
第21章 处理文字和图像 369
21.2.1 使用StarOffice 371
21.2 其他字处理程序 371
21.2.3 使用KOffice 372
21.2.2 使用AbiWord 372
21.2.4 摆脱Windows的束缚 373
21.3 使用传统的Linux出版工具 374
21.4 在Groff或LaTeX中创建文档 375
21.4.1 使用Groff处理文本 376
21.4.2 使用TeX/LaTeX处理文本 383
21.4.3 转换文档 385
21.4.4 构建结构化文档 386
21.5.2 从shell中进行打印 389
21.5.1 打印到默认打印机 389
21.5 在Linux中打印文档 389
21.5.5 检查打印机的状况 390
21.5.4 删除打印作业 390
21.5.3 检查打印队列 390
21.6.2 使用Adobe Acrobat Reader 391
21.6.1 使用Ghostscript和ggv命令 391
21.6 使用Ghostscript和Acrobat显示文档 391
21.7.1 使用GIMP处理图像 392
21.7 处理图形 392
21.7.3 使用Kpaint修改图像 393
21.7.2 进行屏幕捕获 393
21.8 使用由SANE驱动的扫描仪 394
21.9 小结 395
22.1.1 选择电子邮件客户端 396
22.1 使用电子邮件 396
第22章 电子邮件和网页浏览 396
22.1.3 开始使用电子邮件 398
22.1.2 离开Windows 398
22.1.5 使用Mozilla Mail阅读电子邮件 399
22.1.4 调整电子邮件 399
22.1.6 在Evolution中管理电子邮件 403
22.1.7 获得Thunderbird 405
22.1.8 使用基于文本的电子邮件阅读器 406
22.2.1 使用Mozilla进行网页浏览 407
22.2 选择Web浏览器 407
22.2.2 使用Mozilla的其他组件 408
22.2.3 使用基于文本的Web浏览器 414
22.2.4 运行Firefox Web浏览器 415
22.3 小结 418
23.1 Linux游戏概述 419
第23章 通过Linux玩游戏 419
23.2.1 从何处获得Linux游戏信息 420
23.2 Linux游戏基本信息 420
23.2.2 选择游戏显卡 421
23.3.1 GNOME游戏 423
23.3 基本X Window游戏 423
23.3.2 KDE游戏 424
23.3.3 象棋游戏 425
23.3.4 Freeciv 426
23.3.5 PlanetPenguin Racer(TuxRacer) 429
23.4 Linux商业游戏 430
23.4.2 id Software的游戏 431
23.4.1 玩商业Linux游戏 431
23.4.3 玩TransGaming和Cedega游戏 432
23.4.4 Loki Software的游戏演示版 433
23.5 小结 436
24.1.1 Apache 439
24.1 LAMP服务器的组件 439
第5部分 运行服务器 439
第24章 运行Linux、Apache,MySQL和PHP(LAMP)服务器 439
24.1.3 PHP 440
24.1.2 MySQL 440
24.2.1 安装Apache 441
24.2 设置LAMP服务器 441
24.2.2 安装PHP 442
24.2.3 安装MySQL 443
24.3.1 编辑Apache配置文件 444
24.3 运行LAMP服务器 444
24.3.2 向Apache添加虚拟主机 446
24.3.4 安装Web应用程序:Coppermine Photo Gallery 447
24.3.3 用户内容和UserDir设置 447
24.4 故障排除 449
24.4.1 配置错误 450
24.4.2 访问禁止和服务器内部错误 451
24.5 使用SSL/TLS保证Web流量的安全 452
24.5.1 生成自己的密钥 453
24.5.2 配置Apache支持SSL/TLS 454
24.6 小结 455
25.1 Internet电子邮件的内部工作原理 456
第25章 运行邮件服务器 456
25.2 使用的系统和软件 457
25.3.1 为直接传递配置DNS 458
25.3 系统准备 458
25.4.1 安装Exim和Courier 459
25.4 安装和配置邮件服务器软件 459
25.3.2 配置从邮件主机检索邮件 459
25.4.2 安装ClamAV和SpamAssassin 461
25.5 测试和故障排除 462
25.5.2 常见的错误(以及解决方法) 463
25.5.1 检查日志 463
25.6.1 配置Fetchmail 465
25.6 配置邮件客户端 465
25.7 使用SSL/TLS保护通信的安全 466
25.6.2 配置基于Web的邮件 466
25.8 小结 468
26.1 通用UNIX打印服务(CUPS) 469
第26章 运行打印服务器 469
26.2.1 使用基于Web的CUPS管理 471
26.2 设置打印机 471
26.2.2 使用Red Hat Printer Configuration窗口 473
26.3.1 配置CUPS服务器(cupsd.conf) 478
26.3 使用CUPS打印 478
26.3.2 启动CUPS服务器 479
26.3.3 手动配置CUPS打印机选项 480
26.4.1 使用lpr进行打印 481
26.4 使用打印命令 481
26.5 配置打印服务器 482
26.4.3 使用lprm删除打印作业 482
26.4.2 使用lpc命令列出状态 482
26.5.1 配置共享的CUPS打印机 483
26.5.2 配置共享的Samba打印机 484
26.6 小结 485
27.1 设置NFS文件服务器 486
第27章 运行文件服务器 486
27.1.1 获得NFS 487
27.1.2 共享NFS文件系统 488
27.1.3 使用NFS文件系统 491
27.1.5 NFS的其他极佳用途 495
27.1.4 卸载NFS文件系统 495
27.2 设置Samba文件服务器 496
27.2.1 获得并安装Samba 497
27.2.2 使用SWAT配置Samba 498
27.2.3 使用Samba文件和命令 504
27.2.5 排除Samba服务器的故障 507
27.2.4 使用Samba共享目录 507
27.3 小结 509
第6部分 Linux编程 513
第28章 编程环境和接口 513
28.1 理解编程环境 513
28.2 使用Linux编程环境 514
28.2.1 Linux开发环境 514
28.2.2 图形编程环境 520
28.2.3 命令行编程环境 523
28.3 Linux编程接口 523
28.3.1 创建命令行接口 524
28.3.2 创建图形接口 528
28.3.3 应用程序编程接口 529
28.4 小结 531
第29章 编程工具和实用程序 532
29.1 常用工具箱 532
29.2 使用GCC编译器 533
29.2.1 编译多个源代码文件 534
29.2.2 GCC的命令行选项 536
29.3 使用make自动构建 536
29.4 库实用程序 538
29.4.1 nm命令 539
29.4.2 ar命令 540
29.4.3 ldd命令 540
29.5 源代码控制 541
29.4.5 环境变量和配置文件 541
29.5.1 使用RCS进行源代码控制 541
29.4.4 ldconfig命令 541
29.5.2 使用CVS进行源代码控制 544
29.6 使用GNU调试器进行调试 547
29.6.1 启动GDB 547
29.6.2 在调试器中检查代码 549
29.6.3 检查数据 549
29.6.4 设置断点 551
29.6.5 使用源代码 551
29.7 小结 552
附录A 走入Linux社区 553