第1部分 基础知识 3
第1章 Debian Linux初步 3
1.1 自由软件 3
1.1.1 开放源代码软件、GNU和自由软件基金会 4
1.1.2 保护这个团体:自由软件许可证中的保留 4
1.2 Linux是什么 5
1.3 Linux的发行版本 5
1.3.1 软件管理 5
1.4 Linux为什么更好 6
1.4.1 灵活性 6
1.4.3 效率 7
1.4.2 自由 7
1.4.4 可靠性 8
1.4.5 符合标准 8
1.5 为什么选择Debian 9
1.5.1 自由软件 9
1.5.2 大小 10
1.5.3 安全性 10
1.5.4 技术领先性 10
1.6 谁制作了Debian 10
1.7 小结 11
2.1.2 bash的语法 12
2.1.1 bash的历史 12
2.1 bash: Bourne-Again Shell 12
第2章 shell 12
2.1.3 重定向 16
2.1.4 别名 19
2.1.5 bash的作业控制 20
2.1.6 特殊的bash变量 22
2.1.7 bash命令历史记录 24
2.1.8 目录堆栈 25
2.2 tcsh: Tenex C Shell 26
2.2.1 tcsh语法 26
2.2.2 tcsh的作业控制 27
2.2.3 特殊的tcsh变量 28
2.2.4 tcsh的历史记录和目录堆栈 31
2.3 小结 32
第3章 X Window System环境 33
3.1 基本的X概念 34
3.1.1 客户机/服务器图形系统 34
3.1.2 X资源 35
3.1.3 窗口管理器 35
3.1.4 X键盘的基本内容 36
3.1.5 通过网络显示应用程序 37
3.1.6 标准X应用程序的选项 39
3.2 安装和配置X 39
18.9.23 config file=(G) 40
3.2.1 XFee86软件包 40
3.2.2 运行XF86Setup 43
3.2.3 在X下支持不同的分辨率和位深 49
3.4 窗口管理器 51
3.4.1 创建外观和观感 51
3.3 启动X 51
3.3.2 采用xdm自动启动X 51
3.3.1 采用startx手工启动X 51
3.4.2 处理用户交互 52
3.5 选择窗口管理器 53
3.5.1 lceWM 53
3.5.2 FVWM 56
3.5.3 WMaker 59
3.5.4 KDE 62
3.6 桌面管理器 62
3.6.1 应用程序集成 62
3.6.2 共同的外观和观感 63
3.6.3 桌面功能 63
3.6.4 KDE--K桌面环境 64
3.6.5 GNOME:GNU网络对象模型 67
3.8 小结 71
3.7 X的故障排除 71
第4章 用户应用程序 72
4.1 办公应用程序 72
4.1.1 Siag Office套件 72
4.1.2 StarOffice 74
4.1.3 WordPerfect 78
4.1.4 Gnome Office套件 79
4.1.5 MSWordView 80
4.1.6 LyX 80
4.2 网络应用程序 81
4.2.1 建立拨号Internet连接 81
4.2.2 邮件 83
4.2.3 邮件阅读器 86
4.2.4 新闻组 88
4.2.5 Web浏览器 90
4.2.6 文件传输 91
4.2.7 远程访问 94
4.3 多媒体软件 95
4.3.1 图形编辑器 95
4.3.2 图形浏览器和转换器 97
4.3.3 音频编辑和编码应用程序 99
4.3.4 音频播放器 100
4.4 小结 100
第5章 实用工具 101
5.1 联机帮助文档 101
5.1.1 man 101
5.1.2 apropos 102
5.2.1 文件管理工具ls 103
5.2 文件管理 103
5.1.3 info 103
5.2.2 mv 106
5.2.3 cp 107
5.2.4 find命令 109
5.3 文件检测 110
5.3.1 cat 110
5.3.2 more/less 分页命令 112
5.3.3 head 113
5.3.4 tail 114
5.3.5 file 115
5.3.6 diff 116
5.3.7 cmp 117
5.4 数据处理 118
5.4.1 cut 119
5.4.2 paste 120
5.4.4 grep 121
5.4.3 sed 121
5.5 存档和压缩处理 123
5.5.1 tar 123
5.5.2 gzip 125
5.5.3 z命令 126
5.6 信息命令 127
5.6.1 /bin/true和/bin/false的使用 127
5.6.2 uname 127
5.6.3 hotname 128
5.6.4 id 129
5.6.5 logname 129
5.6.6 who和w 129
5.6.7 uptime命令 130
5.7.1 df 131
5.7.2 du 131
5.8 进程管理 131
5.7 磁盘空间 131
5.8.1 ps 132
5.8.2 Kill 133
5.8.3 top 134
5.9 用户间通信 134
5.9.1 write 135
5.9.2 wall 135
5.10.1 free 136
5.10 系统管理 136
5.9.3 mesg 136
5.10.2 关闭、中止和重新启动系统 137
5.11.1 date 138
5.11 杂项命令 138
5.11.2 hwclock 139
5.11.3 cal命令 139
5.12 小结 140
第6章 高级文本编辑 141
6.1 了解vi组件 142
6.1.1 使用vim编辑第一个文件 142
6.2 不同输入的vi命令 142
6.2.1 创建和编辑文件 143
6.2.2 帮助和撤销的使用 145
6.2.3 插入的使用 146
6.2.4 删除 148
6.2.5 Visual模式 149
6.2.6 状态和跳转 150
6.2.7 查找和替换 151
6.2.8 深入的剪切和复制功能 154
6.2.9 Shell命令 155
6.2.10 定制vi的变量 156
6.2.11 缩写词 156
6.2.12 map命令 157
6.2.13 正则表达式 158
6.2.14 Vi小结 159
6.3 emacs 160
6.3.1 启动和停止 160
6.3.2 在文档中移动光标 162
6.3.3 emacs命令的使用 163
6.3.4 HELP/UNDO命令 165
6.3.5 INSERT/DELETE命令 167
6.3.6 STAUS/JUMP命令 169
6.3.7 SEARCH/REPALCE 命令 170
6.3.8 进一步了解删除环 172
6.3.9 Shell命令 173
6.3.10 ABBREVIATIONS/SPELLING(缩写/拼写)命令 174
6.3.11 Map命令 175
6.4 小结 175
第7章 文档排版 176
7.1 文档排版和所见即所得编辑器的比较 176
7.1.1 灵活性 176
7.2 DocBook和XML 177
7.3 SGML 177
7.1.3 自动化:面向内容的标记 177
7.1.2 功能 177
7.3.1 SGML标记 178
7.3.2 查看SGML文档 179
7.3.3 DocBook标记 181
7.3.4 XML标记 183
7.4 TEX和Friends 189
7.4.1 TEX和分布 189
7.4.2 TEX的特殊字符 190
7.5.1 roff 的惯用语 193
7.5 groff 193
7.5.2 groff 的结构语法 194
7.5.3 groff 的调用 195
7.6 小结 196
第8章 功能强大的脚本编程工具 197
8.1 脚本编程基础 197
8.2 用bash shell编写脚本 198
8.2.1 显示信息--echo命令 198
8.2.2 变量和变量置换 199
8.2.3 其他置换和扩展 202
8.2.4 流控制 203
8.2.5 其他bash内置命令 208
8.3 Perl: 在Steroids上编写脚本 209
8.3.1 变量 210
8.3.2 运算符 213
8.3.3 特殊变量 219
8.3.4 控制结构 220
8.3.5 Perl的其他特征 228
8.4 小结 230
第9章 正则表达式 231
9.1 正则表达式基础 231
9.1.2 正则表达式的用途 232
9.1.1 识别数据中的模式 232
9.1.3 用法示例 233
9.2 正则表达式的概念 234
9.3 字符集的匹配 234
9.4 逻辑 237
9.4.1 量词 237
9.4.2 字符分类 237
9.4.3 分组和选择 238
9.4.4 定位符 238
9.5 使用正则表达式的工具 238
9.5.1 egrep 239
9.5.2 sed 240
9.5.3 Perl 241
9.5.4 procmail 250
9.6 小结 253
10.1 Debian软件包管理系统 255
第2部分 Debian系统管理 255
第10章 软件管理 255
10.1.1 Debian软件包格式分析 256
10.2.1 运行dselect 258
10.1.2 dselect--软件包管理的文本模式UI 258
10.2.2 访问Debian镜像 259
10.2.3 使用软件包列表浏览器 263
10.2.4 调整软件安装的最后几个步骤 268
10.2.5 dselect的安装和升级 268
10.2.6 配置dselect里未配置的软件 268
10.2.7 删除软件包 268
10.3 Apt--智能型命令行软件包管理器 268
10.3.1 Apt的优点 269
10.3.2 配置Apt 269
10.3.3 使用Apt 270
10.4 dpkg--Debian的核心 271
10.4.1 dpkg就是Debian 271
10.4.2 dpkg的基本操作(软件包安装方面的) 271
10.4.3 信息操作标记 273
10.4.4 改变dpkg的行为 275
10.4.5 高级dpkg问题 276
10.5 小结 276
第11章 管理基础 278
11.1 用户管理 278
11.1.1 用户管理概念 278
11.1.2 /etc/passwd文件 279
11.1.3 /etc/group文件 279
11.1.4 /etc/shadow文件 280
11.1.6 用户管理程序 281
11.1.5 /etc/skel目录 281
11.2.1 UNIX进程模型 284
11.2.2 守护进程 284
11.2 程序和进程 284
11.3 登录进程 285
11.3.1 /etc/nologin文件--拒绝对系统的登录访问 286
11.4 打印 287
11.1.4 lprng打印模型 287
11.4.2 /etc/printcap文件--设置打印队列 287
11.4.3 管理打印队列 288
11.5 调度任务 289
11.5.1 at工具 289
11.5.2 cron工具 291
11.6 磁盘和文件系统 292
11.6.1 磁盘和文件系统的概念 292
11.5.3 anacron工具 292
11.7 缓冲区缓存 295
11.7.1 安装和卸载文件系统 295
11.7.2 交换区 297
11.8 小结 299
第12章 定制引导程序 300
12.1 Linux内核 300
12.1.1 Linux内核架构 301
12.1.2 获得内核源代码 304
12.1.3 修补代码树 306
12.1.4 内核2.2的新特性 307
12.1.5 配置Linux内核 307
12.1.7 必备的选项 309
12.1.6 配置选项 309
12.1.8 硬件选项 310
12.2.1 建立内核映像 311
12.2 编译并安装内核 311
12.2.2 Debian编译内核的捷径 312
12.2.3 手工安装新内核 312
12.2.4 新内核的故障排除 313
12.2.5 从错误的内核安装中恢复 315
12.3 lilo 318
12.3.1 使用lilo 318
12.3.2 配置lilo 319
12.3.3 常用的lilo标记 320
12.3.4 运行lilo 322
12.4 init和软件启动 322
12.4.1 运行等级 322
12.4.2 特殊的运行等级 323
12.4.3 init的配置文件/etc/inittab 324
12.4.4 rc符号链接树 327
12.4.5 定制运行等级 328
12.5 其他资源 328
12.6 小结 329
第13章 系统日志和记账 330
13.1 系统日志 330
13.1.1 syslog守护进程 330
13.1.2 klogd守护进程 335
13.1.3 日志管理和维护 336
13.2 记账 337
13.2.1 磁盘记账 337
13.2.2 网络记账 340
13.2.3 进程记账和性能分析 347
13.2.4 用户记账 350
13.3 自动监控工具 351
13.4 小结 353
第14章 灾难恢复 354
14.1 作为第一线防御的备份 354
14.1.1 决定备份什么 355
14.1.2 选择介质 356
14.1.3 标准备份工具 359
14.1.4 备份日程 364
14.2.1 自定义引导软盘 367
14.2.2 Debian抢救盘 367
14.2.3 基于软盘的系统 367
14.2 恢复盘 367
14.3 记录系统文档 369
14.4 避免问题 370
14.4.1 不要使用root用户 370
14.4.2 不间断电源供应(UPS) 371
14.5 评估灾难 372
14.6 引导系统 373
14.6.1 使用特殊的引导选项 373
14.6.2 用抢救盘或定制软盘进行引导 373
14.7.1 使用e2fsck 374
14.7 修复磁盘问题 374
14.6.3 使用基于软盘的系统 374
14.8 从备份中恢复 375
14.7.2 使用lost+found 375
14.9 解决问题的技巧 376
14.10 小结 376
第15章 高级系统管理 377
15.1 深入理解引导过程 377
15.1.1 引导加载程序和内核 378
15.1.2 处理init 379
15.1.3 理解启动脚本 380
15.1.4 特殊运行等级 380
15.1.5 改变引导过程 381
15.2 用cron调度作业 382
15.2.1 crontab文件格式 382
15.2.2 用/etc/cron.d添加作业 382
15.2.6 用at快速调度作业 383
15.2.3 用/etc/cron.time添加作业 383
15.2.5 处理非持续运行的机器 383
15.2.4 作为普通用户使用cron 383
15.2.7 利用batch避免系统超载 384
15.3 切换用户身份 385
15.3.1 使用su 385
15.3.2 使用sudo 385
15.4 配额和记账 387
15.4.1 使用配额 387
15.4.2 使用进程记账 389
15.5 自动安装 389
15.5.1 基础知识 390
15.5.2 配置自动安装器 390
15.6 深入了解的资源 390
15.7 小结 391
16.1 TCP/IP基础 392
16.1.2 IP地址 392
16.1.2 分割网络 392
第16章 TCP/IP联网基础 392
16.1.3 TCP/IP协议套件 396
16.2 配置网络 398
16.2.1 配置文件 398
16.2.2 配置程序 402
16.3 网络守护进程 408
16.3.1 单独的TCP/IP守护进程 408
16.3.2 inetd--Internet超级服务器 408
16.4 设置PPP拨号服务器 410
16.4.1 基本配置 411
16.4.2 设置经过shell的PPP访问 412
16.4.3 设置不经过shell的直接PPP访问 413
16.5 小结 413
第17章 信息服务器 415
17.1 inetd和TCP包装 415
17.1.1 inetd概念 415
17.1.2 配置inetd 416
17.1.3 TCP包装 417
17.2 电子邮件 419
17.2.1 Sendmail 420
17.2.2 Listar 426
17.3.1 匿名FTP 431
17.3 FTP 431
17.3.2 wu-ftpd-academ 配置文件 432
17.4 Telnet 433
17.3.3 FTP安全问题 433
17.5 ssh 434
17.5.1 使用ssh 434
17.5.2 scp 434
17.5.3 ssh隧道传输 435
17.5.4 配置ssh 435
17.6 Web服务器 435
17.6.1 Apache 436
17.7 DNS与Bind 439
17.7.1 理解DNS解析过程 439
17.7.2 配置文件 439
17.8 Usenet 443
17.8.2 配置文件概述 444
17.8.1 安装INN 444
17.8.3 建立Newsfeed文件 447
17.8.4 ctlinnd命令 448
17.9 小结 449
第18章 使用Samba与Microsoft网络交互 450
18.1 安装Samba 451
18.2 运行简单的Samba 配置 451
18.2.1 测试Linux客户机 454
18.2.2 测试Windows客户机 455
18.2.3 网上邻居 456
18.2.4 排除Windows连接故障 456
18.3.1 [global]节 457
18.3 配置Samba文件/etc/smb.conf 457
18.3.2 [homes]节 458
18.3.3 [printers]节 458
18.4 文件与打印服务共享 461
18.5 优化Samba性能 462
18.6 测试配置文件 463
18.6.1 用testprns测试打印机 463
18.6.2 用smbstatus测试 463
18.7 运行Samba服务器 464
18.8 访问共享资源 464
18.8.1 在客户端使用smbclient 464
18.8.2 共享文件装到客户端 465
18.9.1 特殊约定 466
18.9 smb.conf公共配置选项 466
18.8.3 在Windows客户安装共享资源 466
18.9.2 read only=,writeable=,writable=及write ok=(S) 467
18.9.3 valid users=(S) 467
18.9.4 invalid users=(S) 467
18.9.5 read list=(S) 467
18.9.6 write list=(S) 468
18.9.7 path=(S) 468
18.9.8 create mask=(S)和create mode=(S) 468
18.9.9 browseable=(S) 468
18.9.10 printable=(S) 469
18.9.11 hosts allow=,hosts deny=,allow hosts=以及deny host(S) 469
18.9.12 public=(S)和guest ok=(S) 469
18.9.13 comment=(S)和server string=(G) 469
18.9.20 password level=(G)和username level=(G) 470
18.9.19 null passwords=(G) 470
18.9.21 security=(G) 470
18.9.15 encrypt passwords=(G) 470
18.9.17 interfaces=(G) 470
18.9.16 hosts equiv=(G) 470
18.9.14 domain logons=(G) 470
18.9.18 load printers=(G) 470
18.9.22 workgroup=(G) 471
18.10 Samba 文档资源 471
18.10.1 Samba应用程序文档资源 471
18.10.2 配置选项文档 472
18.10.3 其他文档 472
18.11 小结 472
第19章 高级网络管理工具 473
19.1 NFS--网络文件系统 473
19.1.1 什么是NFS 473
19.1.3 NFS守护进程 474
19.1.2 远程过程调用和外部数据表达 474
19.1.4 /etc/exports文件 477
19.1.5 通过NFS安装和卸载文件系统 479
19.2 NIS--网络信息系统 480
19.2.1 NIS分布的文件 481
19.2.2 安装NIS 481
19.2.3 NIS的幕后工作原理 485
19.2.4 使用NIS 486
19.2.5 管理NIS 486
19.2.6 自动安装程序 487
19.3 TCP/IP故障排除工具 491
19.3.1 ping 491
19.3.2 traceroute 492
19.3.3 tcpdump 494
19.3.4 小结 496
第3部分 安全问题 498
第20章 安全问题概观 498
20.1 安全概念 498
20.1.1 安全策略:主要规划 498
20.1.2 信息安全的各个方面 499
20.1.3 信息安全的常见错误概念 502
20.1.4 电子防护是足够的 503
20.1.5 周边安全措施和主机安全措施 504
20.1.6 安全和易用性的对比 505
20.2 联机攻击的主要类型 505
20.2.2 侦测攻击 506
20.2.3 破坏口令攻击 506
20.2.1 拒绝服务攻击 506
20.2.4 电子欺骗 507
20.2.5 中间人攻击 507
20.2.6 敌对的代码:特洛伊木马、病毒和蠕虫 508
20.2.7 开采者 和 脚本小孩 508
20.3 监视和入侵检测 509
20.3.1 什么是异常行为 509
20.3.2 监视什么 509
20.3.3 自动监视 510
20.4 小结 510
第21章 安全原则 512
21.1 常见的安全问题 513
21.1.1 病毒、特洛伊木马程序和Internet蠕虫 513
21.1.2 运行不必要的服务 514
21.1.4 明文发送口令 515
21.1.3 过度使用root账户 515
21.1.5 口令选择问题 516
21.1.6 破坏口令程序 516
21.1.7 社会工程 517
21.1.8 开放式转播 邮件系统 517
21.2 普通防御措施 518
21.2.1 仔细选择口令 518
21.2.2 观察日志 518
21.2.3 扫描端口 519
21.2.4 注意谁获得了访问权限 519
21.2.5 文件系统的安全 520
21.3.1 网络守护进程 521
21.3 远程访问的安全问题 521
21.2.6 不要作为root执行不可信的二进制文件 521
21.3.2 tcp_wrappers 522
21.3.3 终端和root账户 523
21.4 防御来自本地网络的攻击 523
21.4.1 网络文件系统 523
21.5 防御本地用户的攻击 524
21.5.1 登录电子欺骗 524
21.6 防御拒绝服务攻击 525
21.6.1 来自本地用户的攻击 525
21.6.2 来自远程系统的攻击 526
21.7 防御来自物理访问的攻击 526
21.8 安全工具 527
21.8.1 SSH 527
21.7.1 保护引导安全性 527
21.7.2 加密的文件系统 527
21.8.2 PAM 528
21.8.3 Saint/Satan 529
21.9 恢复损坏的系统 529
21.10 其他安全资源 529
21.11 小结 530
第22章 防火墙和代理服务器 531
22.1 防火墙和Linux内核 532
22.2 配置Linux防火墙 533
22.2.1 配置过滤防火墙 534
22.2.2 创建防火墙规则 535
22.2.3 错误配置防火墙 536
22.2.4 配置伪装防火墙 537
22.3 配置代理服务器 538
22.2.5 配置IP记账 538
22.2.6 ipchains(v2.2) 538
22.3.1 普通代理服务器 539
22.3.2 应用程序代理服务器 540
22.4 配置本地网络 541
22.4.1 配置应用程序代理服务器 542
22.4.2 配置SOCKS客户机 542
22.5 在防火墙后面运行服务器 543
22.6 联机文档 543
22.7 小结 544
第23章 加密 545
23.1 什么是加密 545
23.1.1 共享密钥和公钥加密 546
23.2.2 身份验证 547
23.2.1 保密性 547
23.2 加密的用途 547
23.2.3 不可否认性 548
23.3 合法发行和出口控制 548
23.4 加密通信的工具 549
23.4.1 SSH 549
23.4.2 PGP 553
23.5 小结 560
第4部分 开发环境 562
第24章 C/C++开发环境 562
24.1 C/C++环境 562
24.1.1 Debian中C语言的角色 563
24.1.2 Linux中的库 564
24.1.3 ld.so.conf和LD_LIBRARY_PATH环境变量 565
24.1.4 共享库与静态库 566
24.1.5 C库的修订版:FSF libc5和GNUlibc2.0与2.1 566
24.2 C及C++的编译与调试 567
24.2.1 C编译程序gcc 567
24.2.2 C++编译程序 g++ 569
24.2.3 编译程序的优化 569
24.2.4 链接程序ld 571
24.2.5 GNU调试程序gdb 572
24.2.6 利用gdb修改变量 575
24.2.7 系统库及头文件 584
24.3 小结 587
25.2.2 Java链接模型 588
25.2.1 传统的编译链接模型 588
25.2 Java的特点 588
25.1 什么是Java 588
第25章 Java程序设计 588
25.2.3 Java字节码 589
25.2.4 Java安全性 590
25.3 安装Java 591
25.3.1 JDK版本 591
25.3.2 解压缩和配置 592
25.3.3 编译和运行一个程序 592
25.4 Java程序设计 594
25.4.1 数据类型 594
25.4.2 运算符 595
25.4.3 控制结构 596
25.4.5 数组及内存管理 597
25.4.4 方法重载 597
25.4.6 异常处理 599
25.4.7 对象和继承 601
25.4.8 接口 609
25.4.9 线程 613
25.4.10 AWT 619
25.5 小结 619
第26章 tcl和tk程序设计 620
26.1 tcl基础 620
26.1.1 tcl的交互使用 621
26.1.2 tcl的非交互式使用 621
26.2 tcl语言 622
26.2.1 命令结构 622
26.2.2 注释 622
26.2.4 变量 623
26.2.3 数据类型 623
26.2.5 字符串值的操作 626
26.2.6 数值的操作 628
26.2.7 引用与置换 629
26.2.8 流程控制--if和switch 631
26.2.9 循环 633
26.2.10 I/O文件和文件info 634
26.2.11 过程 636
26.3 tk工具箱 637
26.3.1 窗口组件概述 637
26.3.2 窗口组件的创建 638
26.3.3 窗口组件选项 638
26.4 tcl/tk窗口组件程序设计实例 639
26.5 tcl/tk与xsetroot的接口 641
26.6 小结 645
第27章 Python程序设计 646
27.1 运行Python的准备 647
27.1.1 Python的安装 647
27.1.2 Python环境变量的设置 648
27.2 Python命令行解释程序 649
27.2.1 将命令行解释程序用作计算器 649
27.3 Python程序 651
27.3.1 命令行参数和环境变量 652
27.4 控制语句 653
27.4.1 if语句 653
27.4.2 while循环 655
27.4.3 for循环 657
27.5 列表和range()函数 657
27.5.1 创建带有字符串的数据列表 658
27.5.2 包含测试 659
27.5.3 跨越相邻区域的列表 660
27.5.4 了解元组 661
27.6 字典 662
27.6.1 创建含有一个元素的字典 662
27.7 控制台I/O 663
27.8 文件I/O 665
27.8.1 文件输出 665
27.8.2 文件输入 666
27.8.3 文件I/O示例 667
27.9 函数和模块 668
27.9.1 模块 669
27.10.1 字符串 670
27.10 字符串和正则表达式 670
27.10.2 正则表达式 673
27.10.3 字符串和正则表达式示例 677
27.11类 678
27.11.1 类的定义及实例化 679
27.11.2 封装及私有标识符 679
27.11.3 继承 682
27.12 Python的其他功能 683
27.13 小结 684
第28章 Scheme和Expect程序设计 685
28.1 MzScheme的安装 686
28.2 Scheme的运行 688
28.3 Scheme脚本编程 688
28.4 命令行参数的使用 689
28.5.2 数字 690
28.5 可用的数据类型 690
28.5.1 布尔值 690
28.5.3 字符 691
28.5.4 符号 693
28.5.5 变量 693
28.5.6 字符串 695
28.5.7 向量 697
28.6 条件语句的实现 698
28.6.1 if语句 698
28.6.2 unless语句 698
28.7.1 文件的读操作 699
28.7.2 创建文件 699
28.8 Echo示例 699
28.7 文件的输入和输出 699
28.6.3 when语句 699
28.9 Expect 700
28.10 Expect的安装 700
28.11 命令行开关 701
28.11.1 send 701
28.11.2 expect 702
28.11.3 spawm 703
28.11.4 interact 703
28.11.5 脚本示例--Netscape下载 704
28.12 小结 706
第5部分 Linux应用 708
第29章 工程的综合应用:make和autoconf 708
20.1 使用make编译 708
29.1.2 make的其他命令行操作 709
29.1.1 生成目标 709
29.1.3 Makefile的格式 710
29.2 Makefile的高级应用 712
29.2.1 make的变量 712
29.2.2 分开源文件目录和目标文件目录 712
29.2.3 自动变量 713
29.2.4 使用模式和隐含规则 714
29.2.5 使用虚拟目标 715
29.3 make的内部函数 716
29.3.1 操作文件名的函数 716
29.3.2 操作字符串的函数 716
29.5 make应用于其他工程 717
29.5.1 make应用到C和C++ 717
29.4 自动生成依赖文件 717
29.5.2 make应用到网站 718
29.5.3 make应用到Java 718
29.6 make更多的文档信息 718
29.7 使用autoconf 719
29.8 小结 719
第30章 分布式工程管理 720
30.1 CVS 720
30.1.1 安装 721
30.1.2 配置 722
30.1.3 创建工程 723
30.1.4 设置环境变量 723
30.1.5 导入当前文件 724
30.1.6 修改工程 724
30.1.7 多开发人员支持 725
30.2 修正发行版中的错误 729
30.2.1 发布稳定版本 729
30.2.2 添加和删除文件 731
30.2.3 CVS小结 731
30.3 Bugzilla 732
30.3.1 安装 732
30.3.2 使用Bugzilla 735
30.4 Debian Bug Tracking System 736
30.4.1 安装Bug Tracking System 736
30.4.2 报告故障 738
30.4.3 执行伪头标 739
30.4.5 Debian Bug Tracking System小结 740
30.4.4 接收故障 740
30.5 Jitterbug 741
30.5.1 安装Jitterbug 741
30.5.2 使用Jitterbug 744
30.6 Doozer 745
30.6.1 Doozer小结 746
30.7 小结 747
第6部分 附录 749
附录A 安装Debian Linux 749
A.1 为安装Linux准备计算机 749
A.1.1 理解硬盘分区 750
A.1.2 对硬盘分区 750
A.1.3 分区实现 750
A.1.4 了解引导过程 752
A.2.1 Linux所需的分区 753
A.2 硬盘分区 753
A.2.2 分区大小 754
A.2.3 改变分区规划 754
A.3 引导Linux 756
A.3.1 制作引导盘 757
A.3.2 引导选项 758
A.4 安装系统 758
A.4.1 第一次引导 758
A.4.2 第二次引导 761
A.5 使用dselect来安装应用程序 761
A.5.4 安装所选软件包 762
A.5.5 配置安装的软件包 762
A.5.3 选择用来安装的软件包 762
A.5.1 选择访问方法 762
A.6 多操作系统引导 763
A.7 疑难解答 765
A.7.1 为什么不能从Linux分区引导 765
A.7.2 如果第二次引导失败 766
A.7.3 引导盘问题 766
A.7.4 使用选项引导内核 767
A.7.5 当其他方式失败时,获取软件包 767
A.8 联机资源 767
A.9 小结 768
附录B 联机参考资料 769
B.1 Web站点 769
B.1.1 第1章--Debian Linux初步 769
B.1.2 第3章--X Window System环境 769
B.1.8 第15章--高级系统管理 770
B.1.7 第14章--灾难恢复 770
B.1.9 第16章--TCP/IP联网基础 770
B.1.4 第8章--功能强大的脚本编程工具 770
B.1.5 第9章--正则表达式 770
B.1.3 第4章--用户应用程序 770
B.1.6 第11章--管理基础 770
B.1.10 第17章--信息服务器 771
B.1.11 第18章--使用Samba与Microsoft网络交互 771
B.1.12 第19章--高级网络管理工具 771
B.1.13 第20章--安全问题概观 771
B.1.14 第23章--加密 771
B.2.3 第18章--使用Samba与Microsoft网络交互 772
B.2.6 第23章--加密 772
B.2.5 第20章--安全问题概观 772
B.2.4 第19章--高级网络管理工具 772
B.2.2 第16章--TCP/IP联网基础 772
B.2.1 第8章--功能强大的脚本编程工具 772
B.2 新闻组 772
B.1.15 第25章--Java程序设计 772
B.2.7 第25章--Java程序设计 773
B.3 电子邮件列表 773
B.3.1 第1章--Debian Linux初步 773
B.3.2 第18章--使用Samba与Microsoft网络交互 773
B.3.3 第20章--安全问题概观 773
B.3.4 第23章--加密 773
B.3.5 第25章--Java程序设计 774
附录C DFSG兼容许可证 775
C.1 GNU通用公共许可证(GPL) 775
C.2 GNU次通用公共许可证(LGPL) 780
C.3 BSD许可证 787
D.1.1 SPI对OSI--开放源代码的商标 788
附录D 开放源代码许可证 788
D.1 什么是开放源代码软件 788
D.1.2 DFSG和OSD 789
D.2 重要问题:解释软件许可证 793
D.3 GNU GPL 794
D.4 GNU LGPL 794
D.5 BSD 794
D.6 Artistic许可证 795
D.6.1 完整文本 795
D.7 商业开放源代码许可证的兴起 797
D.7.1 Apple的APSL 797
D.7.2 Troll Tech的QPL 797
D.9 参考资料和其他读物 798
D.8 其他开放源代码许可证 798
附录E 内核配置选项 799
E.1 代码成熟等级选项 799
E.2 处理器类型和特征 800
E.2.1 SMP和MTRR 800
E.3 可加载模块支持 801
E.4 常规设置 801
E.4.1 网络支持 801
E.4.2 BSD记账 802
E.4.3 SysV IPC(DosEMu) 802
E.4.4 sysctl支持 802
E.4.5 支持Misc二进制文件 803
E.4.6 并口Parports 804
E.4.8 看门狗支持 805
E.4.7 APM支持 805
E.6 块设备 806
E.6.1 软盘驱动程序 806
E.6.2 高级IDE支持 807
E.6.3 回送磁盘设备 808
E.6.4 网络块设备 808
E.6.5 多个设备和软件RAID 808
E.6.6 paride和parport 808
E.7 联网选项 809
E.7.1 内核网络链接套接字口 809
E.7.2 网络防火墙 809
E.7.3 设置TCP/IP防火墙 810
E.7.4 优化成路由器 810
E.7.5 IP隧道传输 810
E.7.6 Web站点管理员和IP别名 811
E.7.7 IPX和AppleTalk支持 812
E.7.8 企业网和X.25支持 812
E.7.9 协调高速接口和慢速CPU 812
E.8 Qos和公平排队 812
E.9 SCSI支持 813
E.10 网络设备支持 813
E.10.1 虚设网络设备 813
E.10.2 EQL 813
E.10.3 PLIP、PPP和SLIP拨号网络支持 813
E.11 业余广播与无线支持 814
E.12 IrDA子系统和红外端口设备驱动程序 814
E.13 ISDN子系统 814
E.15.3 Unix98 PTY 815
E.15.2 串口 815
E.15.4 并口打印机 815
E.14 老式CD-ROM驱动程序(非SCSI和IDE) 815
E.15 字符设备 815
E.15.1 终端和控制台 815
E.15.5 鼠标 816
E.15.6 看门狗、NVARM和RTC设备 816
E.15.7 双向交谈语音合成器 816
E.16 针对Linux的视频设备 816
E.17 游戏杆支持 816
E.18 Ftape 软磁带设备驱动程序 817
E.19 文件系统 817
E.19.1 MS-DOS和VFAT(Windows)文件系统 817
E.19.2 ISO 9660、UDF和DVD支持 817
E.19.5 NFS 818
E.19.6 SMB(Windows共享)和NCP 818
E.19.3 网络文件系统 818
E.19.4 CODA分布式文件系统 818
E.20 分区类型 819
E.21 母语支持 819
E.22 控制台驱动程序 819
E.22.1 帧缓冲区支持 819
E.23 声音 820
E.24 其他低级驱动程序 821
E.25 内核控制 821
E.26 加载/保存配置 822