第1部分 Linux基础 3
第1章 Linux初步 3
1.1 了解Linux 5
1.2 探索Linux历史 7
1.2.1 从贝尔实验室的UNIX文化开始 7
1.2.2 UNIX的商业化 8
1.2.3 GNU的免费UNIX 10
1.2.4 BSD失去了机会 11
1.2.5 Linus填补了空缺 11
1.3 为什么Linux如此出色 12
1.3.1 Linux的特性 12
1.3.2 OSI开放源代码定义 13
1.3.3 充满活力的社区 14
1.3.4 主要的软件项目 15
1.4 Linux神话、传奇和FUD 15
1.4.1 能阻止对病毒的担忧吗 16
1.4.2 会因使用Linux而受到指控吗 16
1.4.3 Linux是否能运行在所有计算机上 18
1.4.4 Linux会颠覆Microsoft吗 19
1.4.5 使用Linux时如何获得支持 20
1.4.6 Linux只面向专家级用户吗 20
1.4.7 公司如何用Linux获得利润 20
1.4.8 不同的Linux发行版之间有何不同 21
1.4.9 Linux吉祥物是企鹅吗 21
1.5 运行Linux 22
1.6 小结 23
第2章 从shell运行命令 24
2.1 启动shell 25
2.1.1 使用shell提示符 25
2.1.2 使用终端窗口 25
2.1.3 使用虚拟终端 26
2.2 选择shell 26
2.2.1 使用bash(以及早期的sh)shell 27
2.2.2 使用tcsh(以及早期的csh)shell 27
2.2.3 使用ash 27
2.2.4 使用ksh 28
2.2.5 使用zsh 28
2.3 探索shell 28
2.3.1 检查登录会话 28
2.3.2 检查目录和许可 29
2.3.3 检查系统活动 30
2.3.4 退出shell 31
2.4 在Linux中使用shell 31
2.4.1 命令的位置 32
2.4.2 重新运行命令 33
2.4.3 连接和扩展命令 37
2.5 创建shell环境 39
2.5.1 配置shell 39
2.5.2 使用shell环境变量 42
2.5.3 管理后台和前台进程 43
2.6 使用Linux文件系统 45
2.6.1 创建文件和目录 46
2.6.2 移动、复制和删除文件 51
2.7 使用vi文本编辑器 51
2.7.1 运行vi 52
2.7.2 在文件中移动 54
2.7.3 搜索文本 54
2.7.4 使用命令和数字 55
2.8 小结 55
第3章 进入桌面 56
3.1 了解桌面 56
3.2 K桌面环境 59
3.2.1 使用KDE桌面 60
3.2.2 使用Konqueror文件管理器管理文件 62
3.2.3 配置Konqueror选项 66
3.2.4 管理窗口 68
3.2.5 配置桌面 69
3.2.6 添加应用程序启动器和MIME类型 71
3.3 GNOME桌面 71
3.3.1 使用Metacity窗口管理器 72
3.3.2 使用GNOME面板 74
3.3.3 使用Nautilus文件管理器 77
3.3.4 AIGLX的3D效果 79
3.3.5 改变GNOME首选项 81
3.3.6 退出GNOME 82
3.4 配置自己的桌面 82
3.4.1 配置X 83
3.4.2 选择窗口管理器 85
3.4.3 选择个人的窗口管理器 87
3.5 获得更多信息 87
3.6 小结 87
第2部分 运行显示 91
第4章 学习基本的管理功能 91
4.1 图形管理工具 91
4.1.1 使用基于Web的管理 91
4.1.2 不同发行版的图形管理 93
4.2 使用根登录(Root Login) 96
4.2.1 在shell中变成根(su命令) 96
4.2.2 允许有限的管理访问 97
4.3 了解管理命令、配置文件和日志文件 97
4.3.1 管理命令 98
4.3.2 管理配置文件 98
4.3.3 管理日志文件 101
4.4 使用sudo和其他管理登录 101
4.5 管理Linux系统 103
4.6 创建用户账号 104
4.6.1 用useradd添加用户 104
4.6.2 设置用户默认值 106
4.7 配置硬件 107
4.7.1 管理可移动硬件 108
4.7.2 使用可装载的模块 110
4.8 管理文件系统和磁盘空间 112
4.8.1 挂载文件系统 114
4.8.2 使用mkfs命令创建文件系统 119
4.8.3 添加硬盘 120
4.8.4 检查系统空间 122
4.9 监视系统性能 123
4.10 小结 124
第5章 连接到Internet 125
5.1 连接到网络 125
5.1.1 通过拨号服务进行连接 125
5.1.2 将单台计算机连接到宽带 126
5.1.3 将多台计算机连接到宽带 127
5.1.4 服务器连接 128
5.1.5 连接其他设备 129
5.2 使用以太网连接到Internet 130
5.2.1 在安装期间配置以太网 130
5.2.2 从桌面配置以太网 130
5.2.3 使用Fedora中的Network Configuration GUI 131
5.2.4 识别其他计算机(主机和DNS) 132
5.2.5 使用Ubuntu中的Network Setting GUI 133
5.2.6 理解Internet连接 134
5.3 使用拨号连接到Internet 136
5.3.1 获得信息 136
5.3.2 设置拨号PPP 137
5.3.3 使用Internet配置向导创建拨号连接 137
5.3.4 启动PPP连接 139
5.3.5 按需启动PPP连接 139
5.3.6 检查PPP连接 140
5.4 通过无线连接到Internet 141
5.5 小结 142
第6章 Linux的安全保证 143
6.1 Linux安全检查列表 143
6.1.1 了解特定于发行版的安全资源 145
6.1.2 了解一般的安全资源 146
6.2 安全地使用Linux 146
6.2.1 使用密码进行保护 146
6.2.2 选择健壮的密码 147
6.2.3 使用影子密码文件 147
6.3 使用日志文件 149
6.3.1 Syslogd的作用 150
6.3.2 使用syslogd将日志重定向到Loghost 151
6.3.3 理解messages日志文件 152
6.4 使用安全shell工具 153
6.4.1 启动SSH服务 153
6.4.2 使用ssh、sftp和scp命令 153
6.4.3 不带密码使用ssh、scp和sftp 154
6.5 保护Linux服务器的安全 156
6.5.1 使用TCP Wrapper来控制对服务的访问 156
6.5.2 了解各种攻击技术 158
6.5.3 拒绝服务攻击的防护 159
6.5.4 分布式DoS攻击的防护 161
6.5.5 针对入侵攻击的防护 164
6.5.6 使用SELinux保护服务器的安全 166
6.5.7 使用证书和加密保护Web服务器 167
6.6 使用安全工具Linux Live CD 173
6.6.1 安全Live CD的优势 174
6.6.2 使用INSERT检查rootkit 174
6.7 小结 175
第3部分 挑选和安装Linux发行版第7章 安装Linux 179
7.1 选择Linux发行版 179
7.1.1 Linux的使用情况 180
7.1.2 其他发行版 180
7.2 获得自己的Linux发行版 180
7.2.1 寻找其他Linux发行版 181
7.2.2 了解需要 181
7.2.3 下载发行版 182
7.2.4 将发行版刻录到CD上 182
7.3 了解常见的安装问题 183
7.3.1 了解计算机硬件 183
7.3.2 升级或从头进行安装 184
7.3.3 与Windows双引导还是只用Linux 185
7.3.4 使用安装引导选项 186
7.3.5 分区硬盘驱动器 186
7.3.6 使用LILO或GRUB引导装载程序 192
7.3.7 配置网络 198
7.3.8 配置其他管理特性 199
7.4 小结 199
第8章 运行Fedora Core和Red Hat Enterprise Linux 200
8.1 探究各种特性 201
8.1.1 RedHat安装程序(Anaconda) 201
8.1.2 RPM软件包管理 202
8.1.3 Kudzu硬件检测 203
8.1.4 Red Hat桌面的外观 203
8.1.5 系统配置工具 203
8.2 深入研究Fedora Core 203
8.2.1 日益增加的论坛支持Fedora 204
8.2.2 Fedora Extras 204
8.2.3 Fedora遗留项目 205
8.2.4 论坛和邮寄列表 205
8.3 Fedora变得成熟起来 206
8.4 Fedora展望 207
8.5 安装Fedora Core 207
8.5.1 选择计算机硬件 207
8.5.2 选择安装方法 208
8.5.3 选择安装还是升级 209
8.5.4 开始安装 209
8.5.5 运行Fedora Setup Agent 215
8.6 小结 215
第9章 运行Debian GNU/Linux 216
9.1 Debian GNU/Linux的内幕 217
9.1.1 Debian软件包 217
9.1.2 Debian软件包管理工具 218
9.1.3 Debian的版本 218
9.2 获得Debian的帮助 219
9.3 安装Debian GNU/Linux 219
9.3.1 硬件要求和安装计划 220
9.3.2 运行安装程序 220
9.4 管理Debian系统 224
9.4.1 配置网络连接 224
9.4.2 使用APT进行软件包管理 226
9.4.3 使用dpkg进行软件包管理 229
9.4.4 使用tasksel安装软件包集(任务) 230
9.4.5 替换、转换和改写 231
9.4.6 使用debconf管理软件包配置 232
9.5 小结 232
第10章 运行SUSE Linux 233
10.1 了解SUSE 234
10.2 SUSE中有什么 235
10.2.1 使用YaST进行安装和配置 235
10.2.2 RPM软件包管理 237
10.2.3 软件自动更新 238
10.3 获得SUSE支持 238
10.4 安装OpenSUSE 238
10.4.1 开始之前 239
10.4.2 开始安装 239
10.5 开始使用SUSE 243
10.6 小结 244
第11章 运行KNOPPIX 245
11.1 KNOPPIX的特性 245
11.2 了解KNOPPIX 246
11.2.1 KNOPPIX新闻 246
11.2.2 KNOPPIX内幕 246
11.2.3 KNOPPIX的出色之处 247
11.2.4 KNOPPIX的挑战 248
11.2.5 KNOPPIX的出处 249
11.2.6 探究KNOPPIX的使用 250
11.3 启动KNOPPIX 250
11.3.1 获得一台计算机 251
11.3.2 引导KNOPPIX 251
11.3.3 解决引导问题 251
11.4 使用KNOPPIX 255
11.4.1 使用KNOPPIX中的KDE桌面 255
11.4.2 上网 256
11.4.3 在KNOPPIX中安装软件 257
11.4.4 在KNOPPIX内保存文件 257
11.4.5 保存KNOPPIX配置 259
11.4.6 重新启动KNOPPIX 259
11.5 小结 260
第12章 运行Yellow Dog Linux 261
12.1 理解Yellow Dog Linux 261
12.2 YellowDog前景 262
12.3 深入Yellow Dog 263
12.4 安装Yellow Dog Linux 264
12.4.1 硬件支持 265
12.4.2 规划安装 266
12.4.3 开始安装 267
12.4.4 重新引导Linux Mac 272
12.5 更新Yellow Dog Linux 272
12.6 利用Mac-on-Linux运行Mac应用程序 273
12.7 支持选项 273
12.8 小结 274
第13章 运行Gentoo Linux 275
13.1 了解Gentoo 275
13.1.1 Gentoo的开放源代码精神 276
13.1.2 Gentoo社区 276
13.1.3 构建、调优和调整Linux 276
13.1.4 Gentoo的使用场所 277
13.2 Gentoo包含的内容 278
13.2.1 用Portage管理软件 278
13.2.2 查找软件包 279
13.2.3 进入2007年时Gentoo的新功能 279
13.3 安装Gentoo 279
13.3.1 获得Gentoo 280
13.3.2 从live CD开始Gentoo安装 281
13.3.3 使用最小化CD开始Gentoo安装 282
13.3.4 通过Emerge获得软件 288
13.4 小结 289
第14章 运行Slaackware Linux 290
14.1 了解Slackware 290
14.2 Slackware社区的特色 291
14.2.1 Slackware的创造者 292
14.2.2 Slackware用户 293
14.2.3 Slackware的Internet站点 293
14.3 使用Slackware的挑战 293
14.4 将Slackware用做开发平台 294
14.5 安装Slackware 294
14.5.1 获得Slackware 294
14.5.2 Slackware 11.0中的新特性 295
14.5.3 硬件要求 295
14.5.4 开始安装 296
14.6 开始使用Slackware 299
14.7 小结 301
第15章 运行Linspire 302
15.1 Linspire概述 302
15.2 哪个版本更适合您 303
15.2.1 使用Click-N-Run安装软件 305
15.2.2 其他安装选项 306
15.3 Linspire和Freespire支持 306
15.3.1 论坛和信息 306
15.3.2 Audio Assistant 307
15.4 安装Linspire或Freespire 307
15.4.1 硬件需求 307
15.4.2 安装Linspire或Freespire 308
15.5 保护Linspire和Freespire 311
15.6 小结 312
第16章 运行Mandriva 313
16.1 Mandriva的特性 313
16.2 探究Mandriva 315
16.2.1 Mandriva安装程序(DrakX) 315
16.2.2 通过RPMDrake进行RPM软件包管理 316
16.2.3 Mandriva Linux控制中心(MCC) 317
16.3 Mandriva社区 318
16.3.1 Mandrivaclub上的RPM储存库 318
16.3.2 Mandriva论坛 318
16.4 安装Mandriva Limited Edition 319
16.4.1 适合Mandriva的硬件 319
16.4.2 开始DrakX安装 320
16.5 小结 322
第17章 运行Ubuntu Linux 323
17.1 Ubuntu概述 323
17.1.1 Ubuntu版本 324
17.1.2 Ubuntu安装程序 324
17.1.3 将Ubuntu作为桌面 325
17.1.4 将Ubuntu作为服务器 326
17.1.5 Ubuntu副产品 327
17.1.6 Ubuntu面临的挑战 327
17.2 安装Ubuntu 328
17.3 开始使用Ubuntu 331
17.3.1 试用桌面系统 331
17.3.2 添加更多软件 332
17.4 获得有关Ubuntu的更多信息 335
17.5 小结 335
第18章 运行Linux防火墙/路由器 336
18.1 了解防火墙 336
18.2 通过防火墙保护桌面系统 337
18.2.1 在Fedora中启动防火墙 337
18.2.2 在Mandriva中配置防火墙 338
18.3 通过iptables使用防火墙 339
18.3.1 用iptables启动 340
18.3.2 使用iptables进行SNAT或IP伪装 343
18.3.3 通过iptables添加模块 344
18.3.4 将iptables用作透明代理 345
18.3.5 使用iptables进行端口转发 345
18.4 制作Coyote Linux可引导软盘防火墙 346
18.4.1 创建Coyote Linux防火墙 346
18.4.2 创建Coyote Linux软盘 347
18.4.3 运行Coyote Linux软盘防火墙 351
18.4.4 管理Coyote Linux软盘防火墙 351
18.5 使用其他防火墙发行版 353
18.6 小结 353
第19章 运行可引导的Linux发行版 354
19.1 可引导Linux发行版概述 354
19.2 选择可引导的Linux 355
19.2.1 安全和救援可引导发行版 356
19.2.2 演示可引导版本 359
19.2.3 多媒体可引导版本 359
19.2.4 微型桌面发行版 361
19.3 特殊目的的可引导发行版 364
19.4 自定义可引导Linux 365
19.5 小结 366
第4部分 运行应用程序 371
第20章 播放音乐和视频 371
20.1 播放数字媒体并遵守法律 371
20.1.1 版权保护问题 372
20.1.2 探究编解码器 373
20.2 播放音乐 374
20.2.1 安装声卡 374
20.2.2 选择音频CD播放器 376
20.2.3 使用MIDI音频播放器 382
20.2.4 执行音频文件转换和压缩 382
20.3 录制和处理音乐 384
20.3.1 使用cdrecord创建音频CD 384
20.3.2 使用Grip处理CD 385
20.3.3 使用cdlabelgen创建CD标签 386
20.4 使用电视、视频和数字成像设备进行工作 387
20.4.1 使用tvtime看电视 387
20.4.2 使用Ekiga召开视频会议 389
20.5 观看电影和视频 390
20.5.1 使用xine观看视频 390
20.5.2 使用Helix Player和RelPlayer 10 393
20.6 通过Gtkam和gPhoto2使用数码相机 394
20.6.1 使用Gtkam下载数字照片 395
20.6.2 使用相机作为存储设备 396
20.7 小结 397
第21章 处理文字和图像 398
21.1 使用OpenOffice.org 399
21.2 其他字处理程序 400
21.2.1 使用StarOffice 401
21.2.2 使用AbiWord 401
21.2.3 使用KOffice 402
21.2.4 摆脱Windows的束缚 402
21.3 使用传统的Linux出版工具 404
21.4 在Groff或LaTeX中创建文档 404
21.4.1 使用Groff处理文本 405
21.4.2 使用TeX/LaTeX处理文本 413
21.4.3 转换文档 415
21.4.4 构建结构化文档 416
21.5 在Linux中打印文档 419
21.5.1 打印到默认打印机 419
21.5.2 从shell中进行打印 419
21.5.3 检查打印队列 420
21.5.4 删除打印作业 420
21.5.5 检查打印机的状况 421
21.6 使用Ghostscript和Acrobat显示文档 421
21.6.1 使用Ghostscript和gv命令 421
21.6.2 使用Adobe Acrobat Reader 422
21.7 处理图形 422
21.7.1 使用GIMP处理图像 422
21.7.2 进行屏幕捕获 423
21.7.3 使用Kpaint修改图像 424
21.8 使用由SANE驱动的扫描仪 424
21.9 小结 425
第22章 电子邮件和网页浏览 426
22.1 使用电子邮件 426
22.1.1 选择电子邮件客户端 426
22.1.2 离开Windows 428
22.1.3 开始使用电子邮件 428
22.1.4 调整电子邮件 429
22.1.5 使用Thunderbird阅读电子邮件 430
22.1.6 在Evolution中管理电子邮件 435
22.1.7 使用Mozilla Mail阅读电子邮件 437
22.1.8 使用基于文本的电子邮件阅读器 438
22.2 选择Web浏览器 439
22.3 探究Mozilla套件 439
22.4 使用Firefox 440
22.4.1 设置Firefox 441
22.4.2 保护Firefox 444
22.4.3 Firefox的使用提示 445
22.4.4 使用Firefox的控件 446
22.4.5 改善Firefox浏览 446
22.4.6 使用Firefox执行任务 447
22.5 使用基于文本的Web浏览器 448
22.6 小结 449
第23章 通过Linux玩游戏 450
23.1 Linux游戏概述 450
23.2 Linux游戏基本信息 451
23.2.1 从何处获得Linux游戏信息 451
23.2.2 选择游戏显卡 452
23.3 运行开放源代码游戏 454
23.3.1 GNOME游戏 454
23.3.2 KDE游戏 455
23.3.3 获得其他游戏 456
23.3.4 象棋游戏 458
23.3.5 Freeciv 459
23.3.6 PlanetPenguin Racer(TuxRacer) 462
23.4 Linux商业游戏 462
23.4.1 在Linux中开始运行商业游戏 463
23.4.2 玩商业Linux游戏 463
23.4.3 id Software的游戏 464
23.4.4 玩TransGaming和Cedega游戏 465
23.4.5 Loki Software的游戏演示版 466
23.5 小结 469
第5部分 运行服务器 473
第24章 运行Linux、Apache、MySQL和PHP(LAMP)服务器 473
24.1 LAMP服务器的组件 473
24.1.1 Apache 473
24.1.2 MySQL 474
24.1.3 PHP 474
24.2 设置LAMP服务器 475
24.2.1 安装Apache 475
24.2.2 安装PHP 476
24.2.3 安装MySQL 477
24.3 运行LAMP服务器 478
24.3.1 编辑Apache配置文件 478
24.3.2 向Apache添加虚拟主机 480
24.3.3 用户内容和UserDir设置 481
24.3.4 安装Web应用程序:Coppermine Photo Gallery 481
24.4 故障排除 483
24.4.1 配置错误 483
24.4.2 访问禁止和服务器内部错误 485
24.5 使用SSL/TLS保证Web流量的安全 486
24.5.1 生成自己的密钥 487
24.5.2 配置Apache支持SSL/TLS 488
24.6 小结 489
第25章 运行邮件服务器 490
25.1 Internet电子邮件的内部工作原理 490
25.2 使用的系统和软件 491
25.3 系统准备 492
25.3.1 为直接传递配置DNS 492
25.3.2 配置从邮件主机检索邮件 493
25.4 安装和配置邮件服务器软件 493
25.4.1 安装Exim和Courier 493
25.4.2 安装ClamAV和SpamAssassin 495
25.5 测试和故障排除 496
25.5.1 检查日志 497
25.5.2 常见的错误(以及解决方法) 497
25.6 配置邮件客户端 499
25.6.1 配置Fetchmail 499
25.6.2 配置基于Web的邮件 500
25.7 使用SSL/TLS保护通信的安全 500
25.8 小结 502
第26章 运行打印服务器 503
26.1 通用UNIX打印服务(CUPS) 503
26.2 设置打印机 505
26.2.1 使用基于Web的CUPS管理 505
26.2.2 使用Red Hat Printer Configuration窗口 507
26.3 使用CUPS打印 512
26.3.1 配置CUPS服务器(cupsd.conf) 512
26.3.2 启动CUPS服务器 513
26.3.3 手动配置CUPS打印机选项 513
26.4 使用打印命令 514
26.4.1 使用lpr进行打印 515
26.4.2 使用lpc命令列出状态 515
26.4.3 使用lprm删除打印作业 515
26.5 配置打印服务器 516
26.5.1 配置共享的CUPS打印机 516
26.5.2 配置共享的Samba打印机 517
26.6 小结 519
第27章 运行文件服务器 520
27.1 设置NFS文件服务器 521
27.1.1 获得NFS 522
27.1.2 共享NFS文件系统 522
27.1.3 使用NFS文件系统 526
27.1.4 卸载NFS文件系统 529
27.1.5 NFS的其他极佳用途 530
27.2 设置Samba文件服务器 530
27.2.1 获得并安装Samba 531
27.2.2 使用SWAT配置Samba 532
27.2.3 使用Samba文件和命令 538
27.2.4 使用Samba共享目录 541
27.2.5 排除Samba服务器的故障 542
27.3 小结 544
第6部分 Linux编程 547
第28章 编程环境和接口 547
28.1 理解编程环境 547
28.2 使用Linux编程环境 548
28.2.1 Linux开发环境 548
28.2.2 图形编程环境 554
28.2.3 命令行编程环境 557
28.3 Linux编程接口 557
28.3.1 创建命令行接口 558
28.3.2 创建图形接口 562
28.3.3 应用程序编程接口 563
28.4 小结 566
第29章 编程工具和实用程序 567
29.1 常用工具箱 567
29.2 使用GCC编译器 568
29.2.1 编译多个源代码文件 569
29.2.2 GCC的命令行选项 571
29.3 使用make自动构建 572
29.4 库实用程序 574
29.4.1 nm命令 574
29.4.2 ar命令 575
29.4.3 ldd命令 576
29.4.4 ldconfig命令 576
29.4.5 环境变量和配置文件 576
29.5 源代码控制 577
29.5.1 使用RCS进行源代码控制 577
29.5.2 使用CVS进行源代码控制 579
29.6 使用GNU调试器进行调试 582
29.6.1 启动GDB 583
29.6.2 在调试器中检查代码 585
29.6.3 检查数据 585
29.6.4 设置断点 587
29.6.5 使用源代码 587
29.7 小结 588
附录A 创建Linux CD以及获得源代码 589
附录B 走入Linux社区 592