第1章 UNIX/Linux Shell简介 2
什么是Shell 2
Shell的启动 2
细说Shell的历史 3
三种主要的Shell与其分身 4
Shell的使用 7
Shell的功用 7
命令行的语法分析 8
系统启动和登录Shell 8
命令的种类 9
处理程序和Shell 10
与建立处理程序相关的系统调用 10
环境信息与继承 14
文件的存取权限与属性设置 15
文件建立时的掩码(Mask) 20
改变许可权的指令——chmod 21
认识信号 29
命令文件实例:比较三种Shells 30
由命令文件(Script)执行命令 30
C shell (TCsh)命令文件 31
Bourne shell (Bash)命令文件 32
Korn shell命令文件 34
第2章 认识UNIX/Linux规则表达式 38
前言 38
规则表达式(regular expressions) 38
简介 38
规则表达式下的特殊字符(metacharacter) 38
规则表达式的组合使用 39
第3章 Grep一族 42
前言 42
详述Grep命令家族 42
标准grep命令 43
grep所返回的终止值 44
grep使用实例 46
在grep中使用管道(pipe) 49
grep的选项 49
egrep 命令(扩充功能的grep版本) 53
fgrep命令(Fixed Grep或Fast Grep) 55
rgrep命令(Recursive grep) 55
第4章 数据流编辑器——Sed 58
sed简介 58
身在何处 58
命令与选项 59
错误信息和终止状态 60
实例探究 62
打印信息:P命令 63
删除:d命令 63
移山倒海:s命令 65
指定范围:逗号 67
在行列间编辑:e命令 68
读取文件:r命令 68
写入文件:w命令 69
附加信息:a命令 69
移到下一行:n命令 70
插入信息:j命令 70
转换:y命令 71
退出:q命令 71
保有和取得:h和g命令 72
保有和交换:h和x命令 74
Sed命令文件 (Sed Scripting) 74
Sed命令文件的实例 75
Awk的格式 80
Awk的版本 80
Awk这个名称的由来 80
认识Awk 80
第5章 另一个强有力的Unix/Linux工具程序:Awk 80
由文件输入 81
通过管道接受命令的输出 82
Print命令 82
OFMT变量 84
使输出美观--Printf函数 84
文件内的Awk命令 86
记录 88
记录(Record)和域(Field) 88
域 89
域分隔符号 90
样式(Pattern)和动作 (Action) 91
样式 91
动作 92
规则表达式 92
匹配运算符(~) 94
在命令文件内使用Awk命令 94
比较表达式 95
关系运算符 95
条件规则表达式 97
计算 97
复合样式 98
范围样式(Range Pattern) 99
一个数据确认程序 99
数值和字符串常量 101
awk的用户自定义变量 101
变量 101
BEGIN样式 104
End样式 105
转向(Redirection)和管道 (Pipe) 105
输出转向 105
输入转向(Getline) 106
管道 108
关闭文件和管道 109
系统启动 112
第6章 使用Bourne Shell与BASH 112
简介 112
执行环境 113
shell的提示符号(Prompt) 117
命令行 120
特殊字符/通配符(Metacharacter/Wildcard) 124
文件名替换(Substitution) 124
工作控制(仅Bash提供) 128
命令与文件名的自动完成功能(仅Bash提供) 129
变量(Variable) 130
设置环境变量 132
设置只读变量 132
以echo命令打印出变量的值 139
变量展开编辑子(Variable Expansion Modifiers) 140
由变量延伸的子字符串与其他的特殊变量 144
引号 147
单引号 149
双引号 150
命令替换 150
命令历史记录(仅Bash提供) 151
Bourne shell与Bash的数学运算 152
整数运算和expr命令 152
数组(仅Bash支持) 154
函数简介 155
定义函数 155
其他常用的命令 157
标准I/O和转向 157
列出和取消函数的设置 157
管道 161
Here文件和转向输入 163
Set命令和选项 164
第7章 Bourne Shell与BASH程序设计 168
简介 168
建立Shell命令文件的步骤 168
读取用户的输入 170
浮点数的运算 174
位置参数和命令行参数 175
条件性结构和流程控制 178
test命令 179
if命令 180
文件测试 189
以here文件和case命令来建立菜单 193
循环命令 194
for循环 195
while命令 198
until命令 200
Select 命令与菜单建构(仅Bash支持) 201
其他与循环相关的命令 202
I/O转向和子shell 208
函数 214
重设函数 215
汇出(export)函数 215
函数参数和返回值 215
拦截(Trapping)信号 218
函数和Source(或dot)命令 218
重设信号 219
忽略信号 220
除错 222
用Getopts处理命令行选项 224
Eval命令和语法分析命令行 230
第8章 Korn Shell的使用 234
简介 234
执行初始化文件 234
提示符号 238
查找路径 240
命令行 241
退出状态(exit status) 242
在后台执行命令 244
命令行历史 244
在命令行进行编辑 247
别名 251
工作控制 254
文件名替换(通配符) 255
Korn shell的通配符 255
Ksh新增的通配符 256
变量 257
显示变量的值 263
变量的属性(Variable Attributes) 269
位置参数(Positional Parameters) 270
引号的使用 271
命令的替换 273
定义函数 275
函数(Functions) 275
标准I/O和转向 279
管道(Pipes) 279
Here文件和转向输入 280
与时间相关的命令和变量 281
Time命令 281
Tmout变量 281
第9章 Korn Shell程序设计 284
如何编辑Shell的命令文件 284
注解 284
命令文件的命名与储存 284
读进用户输入的信息 285
执行运算 288
整数类型 288
列出整数 290
位置参数和命令行参数 292
检查退出状态和变量$? 296
新的Test命令类型 297
条件结构(Conditional Constructs)和流程控制 297
查核条件——if命令 301
Korn Shell的兼容性 303
Let命令和整数测试 305
if/else命令 305
if/elif/else命令 306
exit命令 308
null命令 310
多途决策—case命令 311
case命令和here文件 312
循环命令 313
for命令 314
while命令 317
until命令 318
选择命令和菜单 319
循环命令 321
shift命令 321
break命令 323
continue命令 324
I/O转向和循环 326
exec命令循环 328
IFS和循环 330
数组 330
函数 332
声明函数 333
汇出函数(Exported Functions) 334
自动载入函数(Autoloaded Functions) 335
Typeset命令和函数选项 335
Trapping信号 337
重设信号 338
忽略信号 338
共作处理程序(Coprocesses) 342
Shell程序的除错 343
用Getops处理命令行选项(Command—Line Options) 345
有使用限制的Ksh 347
C shell与TCsh的启动 350
目前的TCsh是哪个版本 350
简介 350
第10章 C shell与TC shell 350
查找路径 351
命令行 355
重复执行命令 357
命令行历史 357
编辑命令行 362
命令自动完成功能(仅TCsh 提供) 362
操控目录堆栈(仅TCsh 提供) 364
拼写检查(仅TCsh 提供) 366
别名(Alias) 366
工作控制 367
工作排程 369
通配符(Metacharacters) 370
文件名的替换 370
展开通配符 370
将输入转向 371
转向和管道 371
关闭通配符 371
Here文件 372
将输出转向 374
把输出附加到已存在的文件 375
转向输出和错误 375
区分输出和错误 377
noclobber变量 378
变量 378
数组 380
局部变量(Local variable) 380
环境变量 380
shift命令和数组 382
从字符串建立数组 383
特殊变量与编辑器(modifiers) 383
路径名变量修正子 384
命令替换 385
引号 386
注解 390
第11章 以C shell或TC shell来设计程序 390
建立Shell命令文件的步骤 390
使命令文件可以执行 391
读取用户的输入 391
数值运算 392
命令文件如何查错 394
命令行参数 397
位置参数和argv数组 398
流程控制和条件式结构 399
foreagh循环 413
循环 413
while循环 415
repeat命令 417
shift命令 417
break命令 418
continue命令 420
中断处理 420
储存命令文件 421