第1部分 Linux初步 1
第1章 Linux起步 2
1.1 了解Linux 3
1.2 Linux的特别之处 5
1.3 探索Linux历史 6
1.3.1 从贝尔实验室的UNIX文化开始 6
1.3.2 商业化的UNIX 7
1.3.3 GNU的免费UNIX 9
1.3.4 BSD失去了机会 9
1.3.5 Linux补充了缺失的片段 10
1.4 为什么Linux如此出色 10
1.4.1 OSI开放源代码定义 11
1.4.2 充满活力的社区 12
1.4.3 主要软件项目 12
1.5.2 会因为使用Linux而受到控告吗 13
1.5 Linux神话、传奇和FUD 13
1.5.1 能停止担心病毒吗 13
1.5.3 Linux是否能运行在所有计算机上 15
1.5.4 Linux与Microsoft之间的竞争 15
1.5.5 从何处获取Linux方面的支持 15
1.5.6 Linux只面向专家级用户吗 15
1.5.7 公司如何用Linux获取利润 15
1.5.8 不同的Linux发行版本之间有什么不同 16
1.5.9 Linux吉祥物是企鹅吗 17
1.6 运行Linux 17
1.6.1 开始使用Linux时的常见错误 17
1.6.2 开始 18
1.7 小结 18
第2章 从shell运行命令 19
2.1.2 使用终端窗口 20
2.1.1 使用shell提示符 20
2.1 启动shell 20
2.1.3 使用虚拟终端 21
2.2 选择shell 21
2.2.1 使用bash(以及早期的sh)shell 22
2.2.2 使用tcsh(以及早期csh)shell 22
2.2.3 使用ash 22
2.2.4 使用ksh 22
2.2.5 使用zsh 22
2.3 探索shell 23
2.3.1 检查登录会话 23
2.3.2 检查目录和许可 23
2.3.3 检查系统活动 25
2.3.4 退出shell 25
2.4 在Linux中使用shell 26
2.4.1 命令定位 26
2.4.2 重新运行命令 28
2.4.3 连接和扩展命令 32
2.5 创建shell环境 34
2.5.1 配置shell 34
2.5.2 使用shell环境变量 37
2.5.3 管理后台和前台进程 39
2.6 使用Linux文件系统 41
2.6.1 创建文件和目录 42
2.6.2 移动、拷贝和删除文件 47
2.7 使用vi文本编辑器 48
2.7.1 启动vi 48
2.7.2 在文件中移动 50
2.7.3 搜索文本 51
2.7.4 在命令中使用数字 51
2.8 小结 52
3.1.1 启动桌面 53
3.1 了解桌面 53
第3章 进入桌面 53
3.2 K桌面环境(KDE) 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文件管理器 75
3.3.4 修改GNOME参数 77
3.4 配置自己的桌面 79
3.3.5 退出GNOME 79
3.4.1 配置X 80
3.4.2 选择窗口管理器 83
3.4.3 选择个人窗口管理器 84
3.5 获得更多信息 84
3.6 小结 85
第2部分 运行显示 87
第4章 学习基本的管理功能 88
4.1 图形管理工具 88
4.1.1 使用基于Web的管理 88
4.1.2 开放源代码项目提供Web管理 89
4.1.3 Webmin管理工具 89
4.2 不同版本的图形管理 89
4.2.1 Red Hat配置工具 90
4.2.2 SUSE YaST工具 92
4.3 使用Root Login 92
4.3.1 从shell变成为根(su命令) 93
4.3.2 允许有限的管理访问 94
4.4 管理命令、配置文件和日志文件 94
4.4.1 管理命令 94
4.4.2 管理配置文件 95
4.4.3 管理日志文件 98
4.5 使用sudo和其他管理登录 98
4.6 管理Linux系统 100
4.6.1 创建用户账号 100
4.6.2 设置用户默认值 103
4.7 配置硬件 104
4.7.1 搜索可用模块 105
4.7.2 列出装载模块 105
4.8 管理文件系统和磁盘空间 106
4.8.1 安装文件系统 108
4.8.2 使用mkfs命令创建文件系统 113
4.8.3 增加硬盘 114
4.8.4 检查系统空间 116
4.9 监视系统性能 118
4.10 小结 118
第5章 连接到因特网 119
5.1 连接到网络 119
5.1.1 通过拨号服务连接 119
5.1.2 把单台计算机连接到宽带 120
5.1.3 把多台计算机连接到宽带 121
5.2 连接服务器 122
5.3 连接其他设备 123
5.4 使用以太网连接到因特网 124
5.4.1 在安装期间配置以太网 124
5.4.2 从桌面配置以太网 124
5.5 在Fedora中使用网络配置 125
5.6 识别其他计算机(主机和DNS) 126
5.7 理解因特网连接 128
5.8.1 获取信息 130
5.8 使用拨号连接到因特网 130
5.8.2 配置拨号PPP 131
5.8.3 使用因特网配置向导创建拨号连接 131
5.8.4 启动PPP连接 133
5.8.5 按需启动PPP连接 133
5.8.6 检查PPP连接 134
5.9 小结 135
第6章 Linux的安全保证 136
6.1 保护计算机 136
6.2 了解攻击技术 137
6.3 拒绝服务攻击的防护 138
6.3.1 邮件轰炸 138
6.3.2 垃圾邮件中继 139
6.4 分布式DoS攻击的防护 140
6.3.3 smurf放大攻击 140
6.5 针对入侵攻击的防护 144
6.5.1 评测对网络服务的访问 144
6.5.2 禁用网络服务 145
6.5.3 使用TCP包装器 146
6.6 从日志文件检测入侵 148
6.6.1 syslogd的作用 150
6.6.2 利用syslogd将日志重定向到Loghost 150
6.6.3 理解信息日志文件 152
6.7 利用密码进行保护 152
6.7.1 选择健壮密码 153
6.7.2 使用密码文件 153
6.8 使用加密技术 155
6.8.1 对称加密术 155
6.8.2 公钥加密术 155
6.8.3 安全套接层 156
6.9.1 启动SSH服务 163
6.9.2 使用ssh,sftp和scp命令 163
6.9 使用安全shell数据包 163
6.9.3 不带密码使用ssh,scp和sftp 164
6.10 用PortSentry保护计算机 165
6.10.1 下载并安装PortSentry 166
6.10.2 PortSentry的基本操作 166
6.10.3 配置PortSentry 167
6.10.4 测试PortSentry 170
6.10.5 跟踪PortSentry入侵 171
6.10.6 恢复访问 172
6.11 安全审计工具 172
6.12 小结 173
第3部分 挑选和安装Linux发行版本 175
7.1 选择Linux发行版本 176
第7章 安装Linux 176
7.1.1 Linux的使用情况 177
7.1.2 其他发行版本 177
7.2 获得自己的Linux发行版本 177
7.2.1 寻找其他Linux发行版本 178
7.2.2 了解需要 178
7.2.3 下载发行版本 179
7.2.4 将发行版本刻录到CD上 179
7.3 探究常见的安装主题 180
7.3.1 了解计算机硬件 180
7.3.2 从头开始升级或安装 181
7.3.3 Windows或Linux的双引导 181
7.3.4 使用安装引导选项 182
7.3.5 将硬盘驱动器分区 183
7.3.6 使用LILO或GRUB引导装入程序 189
7.3.8 配置其他管理特性 196
7.3.7 配置网络 196
7.4 从Linux宝典DVD或CD安装 197
7.5 小结 197
第8章 运行Fedora Core和Red Hat Enterprise Linux 198
8.1 探究特征 199
8.1.1 Red Hat安装程序(Anaconda) 199
8.1.2 RPM程序包管理 200
8.1.3 Kudzu硬件检测 200
8.1.4 Red Hat桌面的Look-and-Feel 200
8.1.5 系统配置工具 200
8.2 深入研究Fedora Core 201
8.2.1 Fedora遗留项目 201
8.2.2 Fedora软件储存库 201
8.3 人们对Red Hat的看法 202
8.2.3 论坛和邮寄清单 202
8.4 Red Hat社区 203
8.5 安装Fedora Core 205
8.5.1 选择计算机硬件 205
8.5.2 选择一种安装方法 206
8.5.3 选择安装或升级 207
8.5.4 开始安装 208
8.5.5 运行Fedora Setup Agent 213
8.6 小结 213
第9章 运行Debian GNU/Linux 214
9.1 Debian GNU/Linux的内部情况 214
9.1.1 Debian数据包 214
9.1.2 Debian数据包管理工具 215
9.2 安装Debian GNU/Linux 216
9.2.1 硬件要求和安装计划 216
9.2.2 运行安装程序 217
9.3.1 配置网络连接 220
9.3 管理Debian系统 220
9.3.2 使用APT进行数据包管理 221
9.3.3 使用dpkg进行数据包管理 224
9.3.4 借助tasksel安装数据包集(任务) 225
9.3.5 替换、转换和改写 226
9.3.6 用debconf管理数据包配置 227
9.4 小结 227
第10章 运行SUSE Linux 228
10.1 理解SUSE 228
10.2 SUSE的内部结构 229
10.2.1 用YaST安装和配置 229
10.2.2 RPM数据包管理 231
10.2.3 软件自动升级 232
10.3 获得SUSE支持 232
10.4 安装SUSE 232
10.4.2 开始安装 233
10.4.1 开始之前 233
10.5 由SUSE启动 236
10.6 小结 237
第11章 运行KNOPPIX 238
11.1 理解KNOPPIX 238
11.1.1 KNOPPIX部结构 238
11.1.2 KNOPPIX卓越之处 239
11.1.3 用KNOPPIX检验挑战 240
11.1.4 查看KNOPPIX的出处 241
11.1.5 探究KNOPPIX的使用 242
11.2 启动KNOPPIX 242
11.2.1 获得一台计算机 243
11.2.2 引导KNOPPIX 243
11.2.3 更正引导问题 243
11.3 使用KNOPPIX 246
11.3.1 使用KNOPPIX中的KDE桌面 247
11.3.3 在KNOPPIX中安装软件 248
11.3.4 在KNOPPIX内保存文件 248
11.3.2 上网 248
11.3.5 保存KNOPPIX配置 251
11.3.6 重新启动KNOPPIX 251
11.4 小结 252
第12章 运行Gentoo Linux 253
12.1 了解Gentoo 253
12.1.1 Gentoo的开放源代码精神 253
12.1.2 Gentoo社区 254
12.1.3 建立、调整Linux 254
12.1.4 在哪儿应用Gentoo 255
12.2 Gentoo包含的内容 255
12.2.1 用Portage管理软件 256
12.3 安装Gentoo 257
12.3.1 获得Gentoo 257
12.2.2 查找软件数据包 257
12.3.2 开始Gentoo安装 258
12.4 小结 264
第13章 运行Slackware Linux 265
13.1 了解Slackware 265
13.2 Slackware社区特色 266
13.2.1 Slackware创造者 266
13.2.2 Slackware用户 267
13.2.3 Slackware因特网站点 268
13.3 使用Slackware的挑战 268
13.4 Slackware用做开发平台 269
13.5 安装Slackware 269
13.5.1 获得Slackware 269
13.5.2 硬件要求 269
13.5.3 开始安装 270
13.6 用Slackware开始 274
13.7 小结 275
第14章 运行Mandrakelinux 276
14.1 探究Mandrakelinux 10 277
14.1.1 Mandrakelinux安装程序(DrakX) 277
14.1.2 用RPMDrake进行RPM数据包管理 278
14.1.3 Mandrakelinux控制中心(MCC) 278
14.2 Mandrakelinux社区 279
14.2.1 Mandrakeclub上的RPM储存库 279
14.2.2 Mandrakelinux论坛和新闻 279
14.3 安装Mandrakelinux 10 280
14.3.1 适合Mandrakelinux 10的硬件 280
14.3.2 开始DrakX安装 281
14.4 小结 285
第15章 运行Linux防火墙/路由器 286
15.1 了解防火墙 286
15.2.1 在Red Hat Linux中启动防火墙 287
15.2 用防火墙保护台式机 287
15.2.2 在Mandrakelinux中创建防火墙 289
15.3 用iptables使用防火墙 289
15.3.1 用iptables启动 290
15.3.2 使用iptables做NAT或IP冒充 294
15.3.3 用iptables添加模块 294
15.3.4 用iptables做透明代理服务器 295
15.3.5 使用iptables进行端口转发 295
15.4 制作Coyote Linux可引导软盘防火墙 296
15.4.1 创建Coyote Linux防火墙 296
15.4.2 创建Coyote Linux软盘 297
15.4.3 运行Coyote Linux软盘防火墙 302
15.4.4 管理Coyote Linux软盘防火墙 302
15.5 使用其他防火墙发行版本 304
15.6 小结 304
16.1 探究可引导的Linux 305
第16章 运行可引导的Linux发行版本 305
16.2 引导救援发行版本 306
16.2.1 KNOPPIX安全工具发行版本 307
16.2.2 内部安全救援工具箱 307
16.3 引导多媒体发行版本 308
16.3.1 MoviX 309
16.3.2 GeeXboX 310
16.4 引导微型桌面发行版本 310
16.4.1 Damn Small Linux 310
16.4.2 Feather Linux 311
16.5 小结 312
第4部分 运行应用程序 313
17.1 播放数字媒体和依法从事 314
17.1.1 版权保护问题 314
第17章 播放音乐和视频 314
17.1.2 编解码器探讨 316
17.2 播放音乐 317
17.2.1 设置声卡 317
17.2.2 选择音频CD播放器 318
17.2.3 使用MIDI音频播放器 326
17.2.4 执行音频文件转换和压缩 326
17.3 录制和裁剪音乐 329
17.3.1 使用cdrecord创建音频CD 329
17.3.2 使用Grip裁剪CD 330
17.3.3 使用cdlabelgen创建CD标签 331
17.4 使用电视、视频和数字图像工作 332
17.4.1 使用tvtime看电视 332
17.4.2 使用GnomeMeeting召开视频会议 334
17.5 观看电影和视频 336
17.5.1 使用xine观看视频 336
17.6 使用带Gtkam和gPhoto2的数码相机 339
17.5.2 使用Helix Player和RealPlayer 10 339
17.6.1 使用Gtkam下载数字照片 341
17.6.2 使用相机作为存储设备 342
17.7 小结 343
第18章 使用文字和图像工作 344
18.1 使用OpenOffice.org 344
18.2 其他字处理器 346
18.2.1 使用StarOffice 346
18.2.2 使用AbiWord 347
18.2.3 使用KOffice 347
18.2.4 摆脱Windows 348
18.3 使用传统的Linux出版工具 349
18.4 创建Groff或LaTeX文档 350
18.4.1 使用Groff进行文本处理 351
18.4.2 使用TeX/LaTeX处理文本 359
18.4.3 转换文档 361
18.4.4 构建结构化文档 362
18.5 在Linux中打印文档 365
18.5.1 打印到默认打印机 365
18.5.2 从shell中打印 366
18.5.3 检查打印排队 366
18.5.4 删除打印作业 367
18.5.5 检查打印机状况 367
18.6 使用Ghostscript和Acrobat显示文档 368
18.6.1 使用Ghostscript和ggv命令 368
18.6.2 使用Adobe Acrobat阅读器 368
18.7 使用图形工作 369
18.7.1 使用GIMP生成图像 369
18.7.2 进行屏幕捕捉 370
18.7.3 使用Kpaint修改图像 371
18.8 使用SANE驱动的扫描仪 372
18.9 小结 372
19.1.1 选择电子邮件客户端 373
19.1 使用电子邮件 373
第19章 电子邮件和网页浏览 373
19.1.2 从Windows走到这里 374
19.1.3 开始使用电子邮件 375
19.1.4 调整电子邮件 376
19.1.5 使用Mozilla Mail阅读电子邮件 376
19.1.6 管理Evolution中的电子邮件 380
19.1.7 得到Thunderbird 382
19.1.8 使用基于文本的电子邮件阅读器 383
19.2 选择Web浏览器 384
19.2.1 使用Mozilla进行网页浏览 385
19.2.2 使用基于文本的Web浏览器 391
19.2.3 运行Firefox Web浏览器 392
19.3 小结 393
20.1.1 什么地方可以得到有关Linux游戏的信息 394
20.1 Linux游戏基本信息 394
第20章 单机游戏和在线游戏 394
20.1.2 开始Linux游戏 395
20.1.3 选择游戏使用的视频卡 395
20.2 X窗口游戏 396
20.2.1 GNOME游戏 397
20.2.2 KDE游戏 397
20.2.3 象棋游戏 399
20.2.4 Freeciv游戏 400
20.3 Linux商业游戏 404
20.3.1 id软件游戏 404
20.3.2 TransGaming和Cedega游戏 406
20.3.3 Loki软件游戏演示版 407
20.4 小结 410
第5部分 运行服务器 411
21.1 LAMP服务器部件 412
21.1.1 Apache 412
第21章 运行Linux,Apache,MYSQL和PHP(LAMP)服务器 412
21.1.2 MySQL 413
21.1.3 PHP 413
21.2 设置LAMP服务器 414
21.2.1 安装Apache 414
21.2.2 安装PHP 415
21.2.3 安装MySQL 415
21.3 运行LAMP服务器 417
21.3.1 编辑Apache配置文件 417
21.3.2 添加一个虚拟主机在Apache上 419
21.3.3 安装Web应用程序:Gallery 420
21.4 错误排除 423
21.4.1 配置错误 423
21.4.2 访问禁止和服务器内部错误 424
21.5 使用SSL/TLS保证网页通信量安全 425
21.5.1 生成自己的密钥 426
21.5.2 配置Apache支持SSL/TLS 427
21.6 小结 428
第22章 运行邮件服务器 429
22.1 因特网电子邮件的内部运作 429
22.2 服务器配置选项 430
22.3 准备好自己的系统 431
22.3.1 网络配置 431
22.3.2 公共包 432
22.4 安装和运行sendmail 433
22.5 安装和运行Postfix 436
22.6 测试和排除错误 440
22.7 配置邮件客户端 440
22.7.1 配置Fetchmail 440
22.7.2 配置基于网页的邮件 441
22.8 使用SSL/TLS保证通信安全 442
22.9 小结 443
23.1 通用UNIX打印服务(CUPS) 444
第23章 运行打印服务器 444
23.2 设置打印机 445
23.2.1 使用基于网页的CUPS管理 445
23.2.2 使用Red Hat打印机配置窗口 447
23.3 使用CUPS打印 454
23.3.1 配置CUPS服务器(cupsd.conf) 455
23.3.2 启动CUPS服务器 456
23.3.3 手动配置CUPS打印选项 456
23.4 使用打印命令 457
23.4.1 使用lpr命令打印 458
23.4.2 使用lpc命令列出状态 458
23.4.3 使用lprm命令删除打印作业 458
23.5 配置打印服务器 459
23.5.1 配置一台共享的CUPS打印机 459
23.5.2 配置一个共享Samba打印机 461
23.6 小结 462
第24章 运行文件服务器 463
24.1 设置一个NFS文件服务器 463
24.1.1 得到NFS 465
24.1.2 共享NFS文件系统 465
24.1.3 使用NFS文件系统 469
24.2 设置Samba文件服务器 474
24.2.1 得到并安装Samba 475
24.2.2 使用SWAT配置Samba 475
24.2.3 使用Samba文件和命令 483
24.2.4 使用Samba共享目录 485
24.2.5 Samba服务器排错 486
24.3 小结 488
第6部分 Linux编程 489
第25章 编程环境与接口 490
25.1 Linux编程环境 490
25.1.1 Linux开发环境 491
25.1.2 图形编程环境 496
25.1.3 命令行编程环境 500
25.2 Linux编程接口 500
25.2.1 创建命令行接口 501
25.2.2 创建图形接口 506
25.2.3 应用程序编程接口 507
25.3 小结 509
第26章 编程工具和实用程序 510
26.1 常备工具箱 510
26.2 使用GCC编译器 511
26.2.1 编译多重源代码文件 512
26.2.2 GCC命令行选项 514
26.3 使用make自动创建 514
26.4 库实用程序 516
26.4.1 nm命令 517
26.4.3 ldd命令 518
26.4.2 ar命令 518
26.4.4 ldconfig命令 519
26.4.5 环境变量和配置文件 519
26.5 源代码控制 519
26.5.1 使用RCS的源代码控制 519
26.5.2 用CVS的源代码控制 522
26.6 使用GDB调试 525
26.6.1 启动GDB 525
26.6.2 在调试器中检查代码 527
26.6.3 检验数据 528
26.6.4 设置断点 529
26.6.5 使用源代码 530
26.7 小结 531
附录A 媒体 532
附录B 进入Linux社区 537