第1章概述 1
目录 1
第2章基础知识快速回顾 5
2-1 一些基本命令 6
2-1-1 显示时间和日期:date命令 6
2-1-2查看登录系统的用户:who命令 6
2-1-3 显示字符:echo命令 6
2-2文件操作 7
2-2-1列出文件清单:Is命令 7
2-2-4命令选项 8
2-2-显示文件内容:cat命令 8
2-2-3统计文件中的单词数:wc命令 8
2-2-5复制文件:cp命令 9
2-2-6文件重命名:mv命令 9
2-2-7删除文件:rm命令 10
2-3 目录操作 10
2-3-1宿主目录和路径名 11
2-3-显示工作目录:pwd命令 12
2-3-3改变当前工作目录:cd命令 12
2-3-4进一步讨论Is命令 15
2-3-5创建目录:mkdir命令 17
2-3-6在目录之间复制文件 17
2-3-7在目录之间移动文件 18
2-3-8链接文件:In命令 19
2-3-9删除目录:rmdir命令 22
2-4文件名替换 22
2-4-1 星号 22
2-4-2单字符匹配 24
2-5-1标准输入和标准输出 25
2-5标准输入/输出以及输入/输出重定向 25
2-5-2输出重定向 27
2-5-3输入重定向 29
2-6 管道 30
2-7标准错误 32
2-8有关命令的深入讨论 32
2-8-1 一行键入多条命令 32
2-8-2命令发送到后台 33
2-8-3 ps命令 33
2-9 命令小结 34
2-10练习 35
第3章什么是Shell 37
3-1 内核和实用程序 38
3-2 登录Shell 38
3-3向Shell键入命令 41
3-4 Shell的职责 43
3-4-1执行程序 43
3-4-2变量和文件名的替换 44
3-4-3 I/O重定向 45
3-4-6解释型程序设计语言 47
3-4-5环境控制 47
3-4-4管道线连接 47
第4章 工具 49
4-1 正规表达式 50
4-1-1 匹配任何字符:句点(.) 50
4-1-2匹配行首:^符号 51
4-1-3匹配文件尾:美元符号($) 51
4-1-4匹配字符组之一:[…]结构 53
4-1-5匹配零或若干个字符:星号(*) 55
4-1-6匹配精确数目的字符串:\{…\} 57
4-1-7保存匹配的字符串:\(…\) 59
4-2 cut 61
4-3 paste 65
4-3-1-d选项 66
4-3-2-s选项 67
4-4 sed 67
4-4-1 -n选项 69
4-4-2删除行 70
4-5 tr 71
4-5-1 -s选项 73
4-5-2 -d选项 74
4-6 grep 75
4-6-1 grep 与正规表达式 78
4-6-2-v选项 79
4-6-3-1选项 79
4-6-4-n选项 80
4-7 sort 80
4-7-1 -u选项 81
4-7-2 -r选项 81
4-7-3 -o选项 82
4-7-4 -n选项 82
4-7-5跳过字段 83
4-7-6 -t选项 84
4-7-7 其他选项 85
4-8 uniq 85
4-8-1 -d选项 86
4-8-2其他选项 87
4-9练习 88
第5章Shell编程初步 89
5-1 命令文件 90
5-2变量 93
5-2-1 显示变量的值 94
5-2-2空值 96
5-2-3文件名替换和变量 97
5-2-4$(Variable)结构 98
5-3 内部的整数算术运算 98
5-4练习 100
第6章 引用 101
6-1 单引号 102
6-2双引号 105
6-3 反斜杠 107
6-3-2双引号中的反斜杠 108
6-3-1用反斜杠续行 108
6-4 命令替换 109
6-4-1反引号 110
6-4-2$(…)结构 110
6-4-3 expr命令 114
6-5练习 115
第7章参数传递 117
7-1 $#变量 119
7-2$*变量 120
7-3在电话簿中查找某个人的程序 120
7-4 向电话簿中增加某人的程序 122
7-5从电话簿中去掉某个人的程序 123
7-6${n} 124
7-7 shift命令 125
7-8练习 126
第8章 判断 127
8-1退出状态 128
8-1-1 $?变量 128
8-2 test命令 131
8-2-1字符串操作符 131
8-2-2 test的另一种格式 135
8-2-3整数操作符 136
8-2-4文件操作符 137
8-2-5逻辑非操作符! 138
8-2-6逻辑与操作符-a 139
8-2-7小括号 139
8-2-8逻辑或操作符-o 139
8-3 else结构 140
8-4 exit命令 142
8-5 elif结构 143
8-6 case命令 148
8-6-1特殊模式匹配字符 149
8-6-2调试程序用的-x选项 151
8-6-3再回到case 154
8-7空命令 155
8-8&&和||结构 155
8-9练习 157
第9章循环 159
9-1 for命令 160
9-1-1 $@变量 162
9-1-2不带列表的for命令 164
9-2 while命令 165
9-3 until命令 167
9-4进一步讨论循环 171
9-4-1 中断循环 171
9-4-2跳过循环中的后续命令 173
9-4-3在后台执行循环 174
9-4-4循环中的输入/输出重定向 174
9-4-5通过管道向循环输入数据或接受循环的输出数据 175
9-4-6在单行中键入循环命令 175
9-5 Getopts命令 176
9-6练习 179
第10章数据的读入和显示 181
10-1 read命令 182
10-1-1复制文件的程序 182
10-1-2 echo中的特殊转义符 184
10-1-3 mycp的改进版本 184
10-1-4 mycp的最终版本 186
10-1-5菜单驱动的电话簿程序 189
10-1-6$$变量和临时文件 194
10-1-7 read的退出状态 195
10-2 printf命令 197
10-3练习 201
第11章环境 203
11-1局部变量 204
11-2导出变量 206
11-3 PS1和PS2 210
11-4 HOME,James 211
11-5 PATH 211
11-6当前目录 219
11-7-1命令 221
11-7再谈子 sbell 221
11-7-2 exec命令 224
11-7-3 (…)和{…;}结构 225
11-7-4给子 shell传递变量的另一种方法 228
11-8 profile文件 229
11-9 TERM变量 230
11-10 TZ变量 231
11-11 练习 231
第12章深入参数 233
12-1-1 ${parameter} 234
12-1-2${parameter:-value} 234
12-1 参数替换 234
12-1-3${parameter:=value} 235
12-1-4${parameter:?value} 236
12-1-5 ${parameter:+value} 236
12-2模式匹配结构 237
12-3$0变量 239
12-4 set命令 240
12-4-1 -x选项 240
12-4-2没有参数的set命令 241
12-4-3用set命令重新设置位置参数 241
12-4-4 -选项 243
12-4-5 set的其他选项 245
12-5 IFS变量 245
12-6 readonly命令 248
12-7 unset命令 248
12-8练习 249
第1 3章 杂项 251
13-1 eVal命令 252
13-2 wait命令 253
13-3 trap命令 254
13-3-2忽略信号 256
13-3-1 无参数trap 256
13-3-3复位陷阱 257
13-4深入I/O 257
13-4-1 <&-和>&- 258
13-4-2 内联输入重定向 258
13-4-3 shell档案文件 260
13-5函数 264
13-5-1去除函数定义 267
13-5-2 retum命令 267
13-6type命令 267
13-7练习 268
第14章再谈Rolo程序 269
14-1 设计思想 270
14-1-1 rolo 270
14-1-2 add……………………………………………………………………………………- 274
14-1-3 lu 275
14-1-4 displav 276
14-1-5 rem 277
14-1-6 change 278
14-1-7 listaH 280
14-2示例输出 281
14-3 练习 285
第15章shell的交互和非标准特性 287
15-1得到合适的shell 288
15-2 ENV文件 288
15-3命令行编辑 289
15-4命令历史记录 290
15-5 Vi行编辑模式 290
15-6 emacs行编辑模式 294
15-7-1 history命令 297
15-7访问历史记录的其他方式 297
15-7-2 fc命令 298
15-7-3 r命令 299
15-8 函数 300
15-8-1局部变量 300
15-8-2自动装载函数 300
15-9整数算术操作 301
15-9-1 整型类型 302
15-9-2不同进制的数字 303
15-10 alias命令 304
15-1 1 数组 306
15-12作业控制 312
15-13受限shell rsh 314
15-14其他杂项特性 316
15-14-1 cd命令的其他特性 316
15-14-2代字符替换 317
15-14-3搜索顺序 318
15-1 5兼容性总结 318
15-16练习 319
附录A shell总结 321
A-1 启动 322
A-2命令 322
A-3注释 322
A-4参数和变量 323
A-4-1 shell变量 323
A-4-2位置参数 323
A-4-3 特殊参数 323
A-4-4参数替换 324
A-5 命令重返 325
A-5-2 vi行编辑模式 326
A-5-1 fc命令 326
A-6引用 329
A-6-1代字符替换 329
A-6-2算术表达式 329
A-7文件名替换 330
A-8输入/输出重定向 331
A-9-2{…;}结构 332
A-9-3深入shell变量 332
A-10函数 332
A-9-1(…)结构 332
A-9导出变量和子shell执行 332
A-1 1作业控制 333
A-1 1-1 shell作业 333
A-11-2停止作业 333
A-12命令总结 334
A-12-1命令 334
A-12-2命令 334
A-12-3 alias命令 334
A-12-4 bg命令 335
A-12-5 break命令 335
A-12-6 case命令 335
A-12-7 cd 令 336
A-12-8 continue命令 337
A-12-9 echo命令 337
A-12-10 eval命令 338
A-12-11 exec命令 339
A-12-12 exit命令 339
A-12-13 expon命令 339
A-12-14 false命令 340
A-12-15 fc命令 340
A-12-17 for命令 341
A-1 2-16fg命令 341
A-12-18 getopts命令 342
A-1 2-19 hash命令 343
A-12-20 if命令 344
A-12-21 jobs命令 346
A-1 2-22 kill命令 346
A-12-23 newgrp命令 347
A-12-24 pwd命令 347
A-12-25 read命令 347
A-12-26 readonly命令 348
A-12-28 set命令 349
A-12-27 retum命令 349
A-12-29 shift命令 350
A-12-30 test命令 351
A-12-31 times命令 353
A-12-32 trap命令 353
A-12-33 true命令 354
A-12-34 type命令 354
A-12-35 umask命令 354
A-12-37 unset命令 355
A-12-38 until命令 355
A-12-36 unalias命令 355
A-12-39 wait命令 356
A-12-40 while命令 356
附录B补充信息 357
B-1联机文档 358
B-2 Web 上的文档 358
B-3书籍 359
B-3-1 O Reilly Associates 359
B-3-2 Sams and Que 359
B-3-3其他出版物 360