第1章 Shell介绍和脚本基础 1
1.1 登录到系统 2
1.2 交互地执行命令 8
1.3 自定义Shell 15
1.4 获取帮助 21
1.5 一个简单的Shell脚本 24
1.6 远程操作 33
1.7 小结 35
第2章 操作文件和目录 37
2.1 列出文件 38
2.2 查看并改变当前目录 42
2.3 查看文件内容 54
2.4 统计文件行数和字数 60
2.5 创建文件和目录 61
2.6 删除文件和目录 64
2.7 重命名文件和目录 68
2.8 移动文件和目录 69
2.9 建立文件和目录的符号链接 72
2.10 复制文件和目录 74
2.11 文件所有者与访问权限 78
2.12 小结 90
第3章 输入/输出重定向和管道 91
3.1 标准输出 92
3.2 标准输入 99
3.3 标准错误输出 101
3.4 管道 105
3.5 块语句的输出和重定向 110
3.6 Here Document 114
3.7 文件描述符 115
3.8 小结 120
第4章 进程 121
4.1 查看进程 122
4.2 前台进程和后台进程 130
4.3 终止进程运行 142
4.4 /proc/文件系统 146
4.5 小结 150
第5章 文本处理和字符串操作 152
5.1 常用的文本操作 153
5.2 其他操作 165
5.3 小结 169
第6章 变量 171
6.1 普通变量 172
6.2 数组变量 178
6.3 环境变量 184
6.4 Shell变量 188
6.5 特殊变量 192
6.6 小结 201
第7章 流程控制 203
7.1 if/else语句 204
7.2 case语句 210
7.3 while循环 214
7.4 until循环 216
7.5 for循环 219
7.6 select循环 222
7.7 循环嵌套 227
7.8 break语句 230
7.9 continue语句 232
7.10 小结 235
第8章 替换 236
8.1 变量替换的高级形式 237
8.2 文件名替换 243
8.3 命令替换 246
8.4 算术运算替换 249
8.5 小结 251
第9章 引用 252
9.1 使用反斜杠 253
9.2 使用单引号 259
9.3 使用双引号 263
9.4 引用的其他应用 267
9.5 小结 273
第10章 函数 274
10.1 定义和使用函数 275
10.2 检查函数定义和取消函数定义 277
10.3 参数和返回数据 279
10.4 变量的作用域 288
10.5 递归调用 292
10.6 函数库 295
10.7 小结 297
第11章 其他常用工具 299
11.1 使用find查找文件 300
11.2 xargs 309
11.3 其他查找文件的方法 311
11.4 判断文件的类型 313
11.5 数据备份 315
11.6 压缩文件 318
11.7 文件备份 326
11.8 下载工具 331
11.9 小结 333
第12章 处理信号 335
12.1 如何表达信号 336
12.2 如何处理信号 338
12.3 忽略信号 346
12.4 定时器 349
12.5 小结 354
第13章 使用sed处理文本 355
13.1 sed如何工作 356
13.2 选择要操作的行 366
13.3 重用匹配到的字符串 376
13.4 小结 378
第14章 使用awk处理文本 379
14.1 awk如何工作 380
14.2 使用变量 392
14.3 控制语句 405
14.4 使用函数 413
14.5 小结 418
第15章 grep和高级正则表达式 419
15.1 grep的基本用法 420
15.2 高级正则表达式 425
15.3 小结 441
第16章 Debug Shell脚本 442
16.1 分析报错信息 443
16.2 进入debug模式 445
16.3 在脚本中添加debug功能 454
16.4 使用trap命令 460
16.5 小结 463
参考文献 464