第一章 引言 3
1.1 UNIX系统V的文献资料 3
1.2 UNIX系统的演变过程 3
1.3 UNIX系统结构 6
1.4 书中的格式约定 7
1.5 本书内容的组织 7
第二章 UNIX系统V入门 9
2.1 用户名与口令 9
2.2 获得对UNIX系统的访问 9
2.3 修改键入错误 12
2.4 一些简单的命令 14
2.5 UNIX系统命令格式 15
2.6 用passwd改变口令 17
2.7 特殊字符的shell用法 18
2.8 退出系统 19
2.9 如何阅读UNIX系统手册 19
2.10 小结 23
第三章 目录和文件 23
3.1 用pwd命令显示当前工作目录 23
3.2 用ls命令输出目录内容 24
3.3 用cd命令改变当前工作目录 28
3.4 全称路径名和相对路径名 30
3.5 文件和目录的命名规则 32
3.6 用cat命令查看一个文件的内容 33
3.7 用pg命令查看文件的内容 34
3.8 用tail命令查看文件尾 34
3.9 用File命令确定文件的类型 35
3.10 用mkdir创建用户目录 35
3.11 用cp命令复制文件 39
3.12 用mv命令移动和重新命名文件 41
3.13 用rm命令删除文件 44
3.14 使用rmdir命令删除文件目录 45
3.15 泛指符或元字符 45
3.16 文件名中的非打印字符 50
3.17 所有权和保护 51
3.18 小结 57
第四章 过程与标准文件 57
4.1 标准输出重新设定 57
4.2 标准输入重新设定 59
4.3 关于重新设定的警告和注意事项 59
4.4 用cat方便地创建文件 60
4.5 用流水线连接命令 61
4.6 用tee命令存贮与查看 63
4.7 诊断输出 63
4.8 后台程序处理 64
4.9 小结 68
第五章 用户间通信 69
5.1 用write发送信息 69
5.2 用mesg控制信息 72
5.3 使用mail的电子邮件系统 73
5.4 使用mailx的电子邮件系统 79
5.5 用calendar保存工作日志 82
5.6 用at为发送信息定时 84
5.7 用News读取当前事件 87
5.8 小结 89
第六章 文本操作 90
6.1 打印文件 90
6.2 用split分解一个文件 93
6.3 用sort给文本文件排序 94
6.4 用wc做文件中的计事 101
6.5 用grep查找一个文件中的正文模式 102
6.6 用fgrep快速查找固定串 108
6.7 用egrep查找全正规表达式 109
6.8 用sed命令替换字符串 109
6.9 用tr改变字符 110
6.10 用cut和paste重新安排文件 112
6.11 pr命令用于文本处理 115
6.12 用diff比较两个文件的不同 118
6.13 用cmp比较文件 125
6.14 用comm寻找文件的相同行 125
6.15 小结 127
第七章 可见的文本编辑器Vi 128
7.1 Vi文本编辑器 128
7.2 调用Vi编辑器 129
7.3 退出Vi编辑器 130
7.4 命令结构 130
7.5 介绍ex命令 131
7.6 基本的光标移动 131
7.7 窗口的改变 133
7.8 undo命令和.命令 135
7.9 简单的文本增加、修改、删除操作命令 135
7.10 新文件的产生 139
7.11 编辑器选择项的设置 140
7.12 字的处理 141
7.13 句子和段的处理 145
7.14 文本行的处理 146
7.15 整行处理 149
7.16 行号、搜索串和标记 150
7.17 剪、贴和拷贝操作 153
7.18 Vi方式下使用ex命令 157
7.19 Vi方式下使用UNIX系统V命令 157
7.20 小结 158
第八章 ex和ed行编辑程序 159
8.1 ed编辑程序的启动 159
8.2 ex的启动 160
8.3 在编辑程序中运行系统V命令 161
8.4 设置ex选择项 162
8.5 退出编辑程序 163
8.6 编辑程序的命令格式 165
8.7 显示缓冲中的内容 167
8.8 取消命令undo 171
8.9 使用a和i命令加入新文本 171
8.10 用d命令删除行 173
8.11 用c修改整行 174
8.12 全局命令 175
8.13 s命令用于文本搜索和置换 178
8.14 对文件进行读、写和编辑 186
8.15 cut和paste操作 191
8.16 ex的独特之处 196
8.17 小结 198
第九章 用系统V准备文件 199
9.1 文件格式化程序——它们是什么? 199
9.2 启动troff 199
9.3 带预处理器的troff 202
9.4 宏功能包——它们是什么? 203
9.5 带—mm宏功能包的troff 205
9.6 文本结构——自然段及其它 205
9.7 文本结构——列表 208
9.8 文本结构——脚注 216
9.9 编号标题 217
9.10 文本结构——显示结构及其它 218
9.11 两列式格式化文本 220
9.12 文本字体和大小变换 221
9.13 印刷术的基本思想 224
9.14 小结 224
第十章 文意格式化程序包 225
10.1 用tbl产生表格 225
10.2 用egn产生数学等式 234
10.3 图形描述语言pic 237
10.4 其它格式化工具 241
10.5 小结 241
第十一章 用troff和nroff排字打印11.1 troff的基本思想 242
11.2 troff的请求格式 243
11.3 选择页布局 244
11.4 填补并调整正文行 246
11.5 连字号 248
11.6 行间隔 249
11.7 中间化和强调 250
11.8 尺度和字体 253
11.9 段和缩排 254
11.10 简单宏和自陷 260
11.11 标题和页计数 263
11.12 特殊的字符串 264
11.13 运行格式化程序 267
11.14 troff命令的选择 269
11.15 转移输入到troff 270
11.16 troff请求中的维数变量 272
11.17 小结 273
第十二章 高级文本操作 273
12.1 流编辑器sed 273
12.2 awk介绍 284
12.3 小结 291
第十三章 shell编程语言 293
13.1 登录预处理文件 293
13.2 shell过程 294
13.3 shell变量 297
13.4 shell过程的参数 299
13.5 echo命令的回顾 300
13.6 shell编程 302
13.7 shell过程的用户输入 323
13.8 shell函数 327
13.9 shell过程的调试 328
13.10 小结 330
第十四章 系统V的程序设计工具14.1 C程序设计语言 331
14.2 标准I/O库 337
14.3 用ar维护库 340
14.4 监控功能的实现 341
14.5 其它软件开发工具 344
14.6 用make维护计算机程序 349
14.7 用sccs维护版本历史 354
14.8 小结 364
第十五章 系统管理 365
15.1 特殊用户 365
15.2 启动和关闭系统 366
15.3 帐号、用户和组 368
15.4 用su命令成为超级用户 373
15.5 文件系统 373
15.6 设备和特殊文件 379
15.7 find命令 379
15.8 后备和恢复 381
15.9 用fsck维护文件系统 385
15.10 文件管理的其它一些问题 387
15.11 关于UNIX系统说明书 389
15.12 小结 389
第十六章 文件处理 390
16.1 head和tail 390
16.2 more和Pg 390
16.2.1 检查文件 390
16.2.2 搜寻正则式 391
16.2.3 退回shell 391
16.2.4 使用more和Pg的实例 391
16.3 cut 391
16.4 paste 392
16.5 od:分散和隐藏 394
16.6 join:连接两个文件中的数据 396
16.7 sed:流编辑器 397
16.7.1 引导 397
16.7.2 sed命令 398
16.7.3 sed的使用实例 398
16.7.4 从文件中获得sed命令 399
16.7.5 添加和插入新行 400
16.7.6 将输出写到文件 400
16.7.7 sed中使用正规表达式 401
16.8 egrep 402
16.8.1 egrep的引导 402
16.8.2 egrep命令行的选择项 403
16.9 awk 404
16.9.1 awk的调用 404
16.9.2 使用awk的第一步 405
16.9.3 awk操作符 406
19.9.4 awk语句的使用 406
16.9.5 awk内部变量 407
16.9.6 awk语句的进一步说明 407
16.9.7 awk的数组 409
16.9.8 命令行自变量和参数 409
16.9.9 awk的结束语 410
16.10 常用的其他过滤器 410
16.11 小结 414
第十七章 Debuggers 414
17.1 Dbx 414
17.1.1 启动 414
17.1.2 Dbx控制下运行程序 419
17.1.3 其它Dbx命令 421
17.2 Adb 423
17.2.1 Adb的使用 423
17.2.2 Adb控制下运行程序 425
17.2.3 其它adb命令 426
17.2.4 Adb的其它用途 426
17.3 sdb 427
17.3.1 调用sdb 427
17.3.2 其它sdb命令 432
17.4 strip:删除调试信息 433
17.5 ctrace 433
17.5.1 调用ctrace 433
17.5.2 ctrace跟踪无限循环 436
17.5.3 ctrace的其它可选项 438
第十八章 语言开发工具 439
18.1 理论基础 439
18.2 语法分析器和扫描器的一个例子 440
18.3 Yacc和lex入门 442
18.3.1 整体的连接 444
18.3.2 Lex正规表达式 444
18.3.3 使用lex的例子 444
18.3.4 lex定义 447
18.3.5 上下文相关性 447
18.3.6 yacc的进一步使用 451
18.3.7 使用yacc的又一个例子 451
18.3.8 Yacc的动作 455
18.3.9 错误处理技术 466
18.3.10 关于错误处理的进一步讨论 467
18.3.11 预定义的伪变量 467
18.3.12 二义文法的处理 467
18.3.13 关于yacc的最后一点说明 470
18.4 m4:一个宏处理程序 470
18.4.1 入门 470
18.4.2 宏扩展的限制 471
18.4.3 宏定义的进一步讨论 471
18.4.4 宏参数的处理 472
18.4.5 算术操作 472
18.4.6 转移和引用 472
18.4.7 其他特性 473
18.4.8 一点建议 474
第十九章 系统开发工具 475
19.1 lint:c程序检测器 475
19.1.1 lint:准备开始 475
19.1.2 置值之前使用一个变量 477
19.1.3 无限循环和不可达语句 478
19.1.4 类型检查特性 480
19.1.5 lint的各种特点 481
19.1.6 lint中的其它选择项 481
19.1.7 在c程序中控制lint 481
19.1.8 lint库 483
19.2 MAKE:一个维护程序的程序 484
19.2.1 开始使用make 484
19.2.2 Make的内部规则 486
19.2.3 Make中的宏和注解 487
19.2.4 一个更复杂的例子 487
19.2.5 内部宏 489
19.2.6 Make的包含能力 490
19.2.7 预置Make宏 490
19.2.8 命令行选择项 491
19.2.9 同环境变量的交互 492
19.2.10 Make的其它用途 492
19.3 sccs:源代码控制系统 492
19.3.1 开始使用sccs 492
19.3.2 获得一个可供编辑的sccs文件 493
19.3.3 关于版本编号 494
19.3.4 创立新的分枝 496
19.3.5 Unget:纠正错误 496
19.3.6 简化sccs结构 497
19.3.7 Id关键字 498
19.3.8 what:识别sccs文件 499
19.3.9 关于prs,comb和Rmdel 500
19.3.10 sccsdiff:显示版本的差别 501
19.3.11 cdc:改变注解 501
19.4 Make和sccs 502
19.5 Gprof和prof:profiling工具 503
19.5.1 剖面图的使用 503
19.5.2 使用gprof 504
19.5.3 关于profiling的最后思索 506
第二十章 数据管理系统 507
20.1 理论基础 507
20.2 数据库系统的设计 508
20.2.1 范式 508
20.3 QUEL:一种询问语言 509
20.3.1 聚合函数 512
20.3.2 表的修改与显示 512
20.3.3 提高QUEL的安全性 513
20.3.4 加强QUEL的完整性 514
20.4 SQL:另一种询问语言 514
20.4.1 简单的SQL询问 514
20.4.2 多重关系的SQL询问 514
20.4.3 使用合并操作进行检索 515
20.4.4 聚合函数 515
20.4.5 成组短句的使用 515
20.4.6 存在量词的使用 516
20.4.7 用SQL创建一个表 516
20.4.8 修改SQL中的操作 516
20.5 主机语言接口 517
20.6 具有UNIX文件的接口 520
20.7 DBMS和UNIX文件系统 520
20.8 产生数据输入格式 520
20.9 格式询问 521
20.10 报表程序的生成程序 521
20.11 访问方法 524
20.12 其它特点 524
20.13 第四代生成系统 524
20.14 选择DBMS 525
20.14.1 应用数据模型 525
20.14.2 询问语言 525
20.14.3 主机语言接口 525
20.14.4 询问执行效率 525
20.14.5 报表程序的生成程序和格式管理 526
第二十一章 文本格式处理工具 527
21.1 troff和nroff的介绍 527
21.1.1 字型与字的大小 530
21.1.2 改变字的大小 530
21.1.3 troff中的宏定义 531
21.1.4 环境的转换 531
21.1.5 troff中的陷井与分页中断 532
21.1.6 标题处理 533
21.1.7 填充和调节 533
21.1.8 寄存器和字符串 534
21.1.9 转向 534
21.1.10 条件输入 535
21.1.11 线性移动和行 536
21.1.12 特殊寄存器和字符 536
21.1.13 troff的包含能力 536
21.1.14 命令级选择 537
21.1.15 小结 537
21.2 tbl预置表 537
21.2.1 引子 537
21.2.2 表级规格 538
21.2.3 列级规格 538
21.2.4 有选择地加框 539
21.2.5 传递troff命令 540
21.2.6 有正文块的列 541
21.3 使用pic绘图 542
21.3.1 初步 542
21.3.2 pic模块 542
21.3.3 放置图形 543
21.3.4 画弧 543
21.3.5 pic的宏 543
21.3.6 处理正文 544
21.3.7 各种特色 544
21.4 Eqn:数学表达式的格式化工具 544
21.4.1 初步 545
21.4.2 Eqn的专用词 545
21.4.3 格式化矩阵 546
21.4.4 其它特色 547
21.5 结束语 548
第二十二章 数据通信 549
22.1 UUCP:程序和文件 549
22.2 管理程序 553
22.3 支持文件 554
22.4 cu:与远程计算机的连接 555
22.5 用户间通信 556
22.6 邮件的处理 556
22.7 发送消息项 562
22.8 Write:给其它用户写信 563
22.9 分布式文件系统 563
22.10 结束语 563
第二十三章 书写者的工作台 564
23.1 开始 564
23.2 WWB程序种类 564
23.3 联机帮助 564
23.3.1 写作的联机帮助 567
23.3.1.1 Worduse:关于单词和短语的帮助 567
23.3.1.2 cpelltell:关于拼字的帮助 568
23.3.1.3 punctrls:关于标点规则的帮助 568
23.3.1.4 splitrls:关于分裂的动词不定式的帮助 569
23.3.1.5 continrls:关于描述可能性规则的帮助 570
23.3.1.6 prosestnd:打印prose程序使用的标准 571
23.3.1.7 Tmarkrls:商标和服务标志的正确使用 572
23.4 关于校对的程序 573
23.4.1 准备输入正文 573
23.4.2 通常使用的选择项 573
23.4.3 spellwwb:检测拼字错误 574
23.4.4 Acro:寻找缩略词 575
23.4.5 punct:检测标点 575
23.4.6 Double:查出连续相同的单词 576
23.4.7 Diction:定位冗余的句子 576
23.4.8 Gram:查找误用的冠词和分裂的动词不定式 577
23.4.9 Tmark:定位没有正确使用的商标 578
23.4.10 Concsap:检查不一致的大写 578
23.4.11 Conspell:拼字的一致性 579
23.4.12 Sexist:报告有关人物(Sexist)的项 580
23.4.13 Switchr:寻找既用作名词又用作动词的单词 580
23.4.14 proofvi:校对和交互编辑 581
23.5 风格(style)分析程序 583
23.5.1 parts:赋值(assign)语法词类 583
23.5.2 Topic:猜测标题的程序 583
23.5.3 Org:打印输入正文的简洁版本 584
23.5.4 Neg:寻找否定词 584
23.5.5 Abst:评价(evaluate)文本的抽象性 584
23.5.6 Diversity:计算词汇多样性 584
23.5.7 syl:统计每个单词的音节数 584
23.5.8 style:风格分析器 584
23.6 wwb:程序本身! 585
23.7 Murky和Continge 585
23.8 通过用户改善wwB环境 585
23.9 最后的说明 586
第二十四 各种实用程序 586
24.1 Curses 586
24.2 计算器工具 595
24.3 档案文件 598
24.4 Ar:档案和维护库 602
24.5 stat:基本统计学 604