前言 1
第一部分 新手的Shell程序设计 2
第一章 Shell的威力 3
1.1 为什么要用Shell? 3
1.2 Shell有什么东西适合我? 4
1.3 Shell的简单性 5
1.4 UNIX Shell 5
1.4.1 Bourne Shell 6
1.4.2 C Shell 7
1.4.3 Korn Shell 7
1.4.4 选择Shell 7
1.5 何时使用Shell 7
1.6 高生产率和Shell 8
第二章 Shell基础 9
2.1 UNIX是什么? 9
2.2 UNIX文件 9
2.3 过滤程序 11
2.4 输入/输出重定向 12
2.5 C Shell中的重定向 15
2.6 管道 16
2.6.1 命名管道 18
2.7 小结 18
2.8 练习 18
第三章 Shell命令 20
3.1 命令语法 20
3.2 文件和目录命令 22
3.2.1 目录命令 23
3.2.2 文件命令 24
3.2.3 元字符 25
3.2.4 文件分离命令 26
3.3 选择命令 27
3.3.1 行命令 28
3.3.2 列命令 29
3.4 组合和排序命令 30
3.4.1 paste 30
3.4.2 排序 32
3.4.3 合并 33
3.5 变换和翻译 34
3.6 编辑器 36
3.6.1 ed 36
3.6.2 vi,se,emacs和其他编辑器 36
3.7 打印 37
3.7.1 面向屏幕显示 37
3.7.2 面向纸的显示 37
3.8 安全性 39
3.9 内部命令 40
3.10 Shell如何找到命令 42
3.11 小结 44
3.12 练习 45
第四章 Shell控制结构 46
4.1 Shell变量 47
4.2 测试 48
4.3 expr 50
4.4 顺序控制结构 50
4.5 IF-THEN-ELSE 51
4.6 CASE和SWITCH 52
4.7 循环命令 55
4.7.1 for和foreach 55
4.7.2 while和until 56
4.7.3 xargs,repeat和find 59
4.7.4 经验方法 60
4.8 trap 60
4.9 小结 62
4.10 练习 62
第五章 Shell程序设计 63
5.1 Shell的交互用法 63
5.1.1 Shell的建立 63
5.1.2 交互地使用Shell 65
5.1.3 直接插入过程 66
5.1.4 循环过程 66
5.1.5 历史(history) 68
5.1.6 前台和后台过程 69
5.1.7 Shell交互小结 70
5.2 何时创建Shell程序 71
5.3 创建Shell程序 71
5.3.1 经验规则 72
5.3.2 选择项和参量表 72
5.3.3 变量 76
5.3.4 内部命令 78
5.4 Shell程序设计 80
5.5 测试Shell程序 83
5.6 小结 84
5.7 练习 85
第二部分 用户Shell程序设计 86
第六章 个人计算机Shell程序设计 87
6.1 MS-DOS 87
6.1.1 MS-DOS命令 87
6.1.2 BAT文件 89
6.1.3 控制结构 90
6.1.4 MS-DOS Shell 91
6.2 UNIX工作站 91
6.3 小结 92
6.4 练习 92
第七章 用户友好界面 93
7.1 创建主模拟程序 93
7.2 小结 95
7.3 练习 95
第八章 用户Shell程序设计 96
8.1 Shell关系数据库 97
8.1.1 关系数据库设计 98
8.2 屏幕处理 102
8.2.1 屏幕输入 102
8.2.2 屏幕输出 107
8.2.3 屏幕查询 108
8.3 数据库更新 110
8.4 数据选择 114
8.5 报告 118
8.6 系统接口 119
8.6.1 数的处理 121
8.7 小结 124
8.8 练习 124
第九章 处理用户文档 125
9.1 宏包 126
9.2 输入过滤程序 126
9.2.1 eqn 127
9.2.2 tbl 127
9.2.3 gath 128
9.3 文档的终端预观 129
9.3.1 视频显示终端 130
9.3.2 打印机 131
9.4 输出过滤程序 132
9.5 综合 132
9.6 文档的缓冲 134
9.7 其他文档过滤程序 135
9.8 其他命令 135
9.8.1 文档分析 137
9.9 小结 139
9.10 练习 139
第三部分 资深用户的Shell程序设计 140
第十章 Shell创新者 141
10.1 系统集成 142
10.2 战略信息系统 144
10.3 快速建立原型 147
10.4 不可想像的系统 150
10.5 小结 151
10.6 练习 151
第十一章 Shell工具师 152
11.1 开发和维护工具 154
11.2 Shell工具 155
11.3 移植性和和产率 157
11.4 C语言程序设计 158
11.5 编译 160
11.6 测试和调试 164
11.7 修改控制和配置管理 166
11.8 小结 170
11.9 练习 171
第十二章 精通Shell 172
12.1 可靠性 172
12.1.1 缺省动作 172
12.1.2 错误处理 174
12.2 可维护性 175
12.3 可再用性 178
12.4 效率 178
12.5 移植性 181
12.6 可用性 181
12.6.1 联机帮助 181
12.6.2 文档 183
12.7 小结 183
12.8 练习 183
第十三章 Shell过滤程序构造程序 185
13.1 LEX源结构 185
13.2 LEX过滤程序 186
13.3 Shell质量分析器 189
13.4 Shell程序美化器 192
13.5 其他lex例程 192
13.6 与语法分析器一起使用lex 193
13.7 小结 196
13.8 练习 196
第十四章 UNIX系统管理员 197
14.1 管理职责 197
14.2 管理目录和文件 198
14.3 日常管理 200
14.3.1 增加、修改或删除用户 201
14.3.2 增加、修改或删除软件 202
14.3.3 cron 203
14.3.4 启动 204
14.3.5 关机 204
14.4 例行维护 204
14.5 诊断和改错 205
14.5.1 监视系统使用情况 205
14.6 保证系统安全 206
14.6.1 有限制的Shell 207
14.7 提供用户帮助 207
14.7.1 帮助 208
14.8 小结 208
14.9 练习 208
附录 209
附录A 可再用的Shell代码 209
附录B C语言原型 210
附录C makefile原型 212