第1章 初学UNIX 1
1.1 起步 1
1.1.1 有关终端和击键的一些预备知识 1
1.1.2 与UNIX会话 2
1.1.3 登录 3
1.1.4 键入命令 3
1.1.5 异常的终端行为 4
1.1.6 键入错误 4
1.1.7 继续键入 5
1.1.8 中止程序 5
1.1.9 注销 6
1.1.10 邮件 6
1.1.11 用户间通信 6
1.1.12 新闻 7
1.1.13 手册 7
1.2.1 创建文件 8
1.2 文件和常用命令 8
1.1.15 游戏 8
1.1.14 计算机辅助教学 8
1.2.2 列出文件 9
1.2.3 打印文件 11
1.2.4 移动、复制和删除文件 12
1.2.5 文件名 13
1.2.6 有用的命令 13
1.2.7 文件系统命令小结 15
1.3 目录 16
1.4 shell 19
1.4.1 文件名简写 19
1.4.2 I/O重定向 21
1.4.3 管道 23
1.4.4 进程 24
1.4.5 剪裁环境 26
1.5 UNIX系统的其余部分 28
第2章 文件系统 30
2.1 文件系统的基础 30
2.2 文件结构 33
2.3 目录和文件名 35
2.4 权限 37
2.5 I节点 41
2.6 目录层次 45
2.7 设备 47
第3章 shell的使用 51
3.1 命令行结构 51
3.2 元字符 53
3.3 创建新命令 57
3.4 命令参数 59
3.5 程序输出作为参数 62
3.6 shell变量 63
3.7 进一步讨论I/O重定向 66
3.8 shell程序里的循环 68
3.9 bundle合并 69
3.10 为什么说shell是可编程的 71
4.1 grep系列 72
第4章 过滤程序 72
4.2 其他过滤程序 75
4.3 流编辑程序sed 77
4.4 模式扫描与处理语言awk 81
4.4.1 字段 82
4.4.2 打印 83
4.4.3 模式 83
4.4.5 算术运算与变量 84
4.4.4 BEGIN与END模式 84
4.4.6 控制流 86
4.4.7 数组 87
4.4.8 关联数组 88
4.4.9 字符串 89
4.4.10 与shell的交互作用 91
4.4.11 基于awk的日历服务 91
4.4.12 附注 94
4.5 好的文件与过滤程序 94
5.1 定制cal命令 96
第5章shell编程 96
5.2 which命令 100
5.3 while和until循环 104
5.4 trap:捕获中断 109
5.5 overwrite:改写文件 110
5.6 zap:使用名字终止进程 114
5.7 pick命令:空格和参数 116
5.8 news命令:社团服务信息 118
5.9 get和put:追踪文件变动 120
5.10 小结 124
第6章 使用标准I/O编程 126
6.1 vis:标准I/O 126
6.2 vis第2版:程序参数 128
6.3 vis第3版:访问文件 130
6.4 p:一次显示一屏 133
6.5 pick 137
6.6 错误与调试 137
6.7 zap 139
6.8 idiff:交互式文件比较程序 141
6.9 获取环境变量 145
第7章 UNIX系统调用 147
7.1 低级I/O 147
7.1.1 文件描述符 147
7.1.2 文件I/O 148
7.1.3 创建文件 149
7.1.4 错误处理 151
7.1.5 随机访问 151
7.2 文件系统:目录 152
7.3 文件系统:I节点 156
7.4 进程 160
7.4.1 创建低级进程 160
7.4.2 控制进程 161
7.5 信号和中断 164
第8章 程序开发 169
8.1 第一阶段:四功能计算器 169
8.1.2 yacc概述 170
8.1.1 语法 170
8.1.3 第一阶段的程序 171
8.1.4 在程序中增加单目减 174
8.1.5 关于make 175
8.2 第二阶段:变量和错误恢复 175
8.3 第三阶段:任意变量名和内部函数 178
8.3.1 再谈make 184
8.3.2 关于lex 185
8.4 第四阶段:编译成机器 187
8.5 第五阶段:控制流和关系运算符 193
8.6 第六阶段:函数、过程和I/O 197
8.7 性能评价 205
8.8 小结 206
第9章 文档处理 208
9.1 宏程序包ms 209
9.1.1 阵列文本 211
9.1.3 其他命令 212
9.1.2 改变字体 212
9.1.4 宏程序包mm 214
9.2 troff 214
9.2.1 字符 214
9.2.2 改变字体和尺寸 215
9.2.3 基本troff命令 216
9.2.4 定义宏 217
9.3 tbl和eqn预处理程序 217
9.3.1 表格 218
9.3.2 数学表达式 219
9.3.3 输出 220
9.4 排印手册 222
9.5 其他文档处理工具 225
第10章 结束语 228
附录A 编辑器概述 230
附录B hoc手册 239
附录C hoc清单 243