第一部分 基本UNIX系统 1
第一章 引言 2
第二章 UNIX系统的基本结构 4
2.1 UNIX系统的历史与特点 4
2.2 UNIX系统的层次结构 5
2.3 文件系统的基本结构 6
2.3.1 文件系统的内部结构 7
2.3.2 文件系统的外部结构 8
2.4.1 进入UNIX系统 10
2.4 UNIX系统的基本使用 10
2.4.2 使用UNIX的文件系统 11
2.5 习题 24
第三章 UNIX系统的shell 25
3.1 shell:UNIX系统的外壳 25
3.2 shell的基本功能 27
3.2.1 程序的运行 27
3.2.2 变量和文件名的替换 28
3.2.3 输入输出的改向 29
3.2.4 管道的连接 30
3.2.6 解释执行的程序设计语言 31
3.3 shell的基本作用 31
3.2.5 环境的控制 31
3.4 习题 35
第二部分 shell基本使用 37
第四章 shell基本命令 38
4.1 引言 38
4.2 基本概念 38
4.2.1 怎样建立shell 38
4.2.3 shell如何找命令 39
4.2.2 命令 39
4.3 shell常用命令 40
4.4 shell内部命令 52
4.5 习题 60
第五章 shell命令的集成 62
5.1 文件名扩展生成 62
5.2 管道、命令表和过滤器 63
5.3 输入输出改向 65
5.4 shell输入输出改向的深入课题 68
5.5 习题 72
第六章 变量与命令替换 73
6.1 shell变量 73
6.1.1 用户自定义变量 74
6.1.2 位置变量 75
6.1.3 环境变量 75
6.1.4 预定义的特殊变量 77
6.2 变量替换 79
6.3 命令表、命令组合和命令替换 82
6.3.1 命令表 82
6.3.2 命令组合 83
6.3.3 命令替换 84
6.4 引用 85
6.5 shell状态 87
6.5.1 改变当前工作目录 88
6.5.2 profile文件 88
6.5.3 执行状态标志 88
6.6 习题 89
第三部分 shell程序设计 90
7.1 简单条件和test命令 91
第七章 shell的控制结构 91
7.2.1 if的简单结构 100
7.2 if结构 100
7.2.2 if的完整结构 103
7.2.3 if的连用结构 105
7.3 case结构 108
7.4 for结构 115
7.5 while结构 120
7.6 until结构 122
7.7.1 break命令 126
7.7 循环体中的其它命令 126
7.7.2 continue命令 128
7.7.3 循环中的输入输出改向与管道 129
7.8 习题 131
第八章 shell的运行环境 133
8.1 局部变量 133
8.2 全局变量 135
8.2.1 全局变量的基本使用 135
8.2.2 shell的环境变量 140
8.2.3 全局变量与子shell的关系 147
8.3 exec命令与子shell的输入输出改向 150
8.4 shell程序的调试 153
8.4.1 shell程序的详细跟踪 153
8.4.2 shell程序的跟踪执行 155
8.4.3 非执行 156
8.4.4 shell的其它调试手段 157
8.4.5 shell程序调试举例 159
8.5 习题 160
9.1 函数的定义和使用 162
第九章 shell程序设计技巧 162
9.2 shell的递归调用 164
9.3 变量的处理 167
9.3.1 $0变量 168
9.3.2 set、shift命令与位置变量 169
9.4 shell程序间的同步机制 177
9.4.1 wait命令 177
9.4.2 trap命令 178
9.5 shell程序的动态构成 182
9.6.1 PATH路径的构成 184
9.6 shell程序的执行效率 184
9.6.2 文件的引用 185
9.6.3 shell的内部命令 186
9.6.4 timex命令 186
9.6.5 其它方面的考虑 187
9.7 习题 187
第四部分 其它shell 189
第十章 C shell 190
10.1 基本概念 190
10.2 变量 192
10.3 别名机制 195
10.4 输入/输出改向 196
10.5 创建后台和前台作业 196
10.6 内部命令 197
10.6.1 alias命令和unalias命令 197
10.6.2 time命令 197
10.6.3 其它内部命令 198
10.7 命令历史表 199
10.10 替换shell变量 201
10.9 预备知识 201
10.8 C shell程序设计 201
10.11 表达式 203
10.12 C shell的控制结构 205
10.13 作业控制 209
10.14 其它特性 209
10.15 在终端上使用循环 210
10.16 习题 211
11.1 运行korn shell 212
第十一章 korn shell简介 212
11.2 命令重录入 213
11.2.1 vi编辑方式 213
11.2.2 emacs行编辑方式 216
11.3 函数 219
11.4 内部整数运算 219
11.4.1 let命令 220
11.4.2 test命令 223
11.4.3 整数类型 223
11.5.1 substring命令 224
11.5 字符串操作 224
11.4.4 expr的简单替换 224
11.5.2 使用参数替换的substring命令 226
11.5.3 固定长度的串 228
11.6 alias命令 229
11.7 作业控制 231
11.8 其它特性 233
11.8.1 cd命令的新特性 234
11.8.2 ~替换 234
11.8.3 数组 235
11.9 习题 238
第五部分 shell程序设计实例 239
第十二章 shell程序设计实例 240
12.1 何时使用shell程序设计语言 240
12.2 shell过程的建立 241
12.3 shell过程的执行 241
12.4 shell过程例子 242
附录A shell语法一览表 263
附录B shell程序设计语言快速参考 266
附录C 习题参考答案 272