《UNIX Shell编程24学时教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)(S.维拉拉哈沃)Sriranga Veeraraghavan著;前导工作室译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:1999
  • ISBN:7111072650
  • 页数:293 页
图书介绍:

目录 1

第一部分 UNIX和Shell工具简介 1

第1学 时Shell基础 1

1.1 什么是命令 1

1.1.1 简单命令 2

1.1.2 复杂命令 2

1.1.3 复合命令 3

1.1.4 命令分隔符 3

1.2 什么是Shell 4

1.2.1 Shell提示符 4

1.2.2 Shell的类型 5

1.3 小结 8

1.4 问题 8

1.5 术语 8

第2学 时脚本基础 10

2.1 UNIX系统 10

2.2 Shell初始化 11

2.2.1 交互和非交互Shell 12

2.2.2 初始化文件的内容 13

2.2.3 使Shell脚本可执行 14

2.3.1 使用man命令 15

2.3 获取帮助 15

2.3.2 指南部分划分 16

2.4 小结 17

2.5 问题 17

2.6 术语 17

第3学 时文件操作 19

3.1 列文件名 19

3.1.1 隐藏文件 20

3.2 浏览文件内容 21

3.2.1 cat 21

3.1.2 选项组合 21

3.2.2 统计单词(wc) 22

3.3 操作文件 24

3.3.1 拷贝文件(cp) 24

3.3.2 重命名文件(mv) 25

3.3.3 删除文件(rm) 26

3.4 小结 26

3.5 问题 27

3.6 术语 27

4.1.1 文件名 28

第4学 时目录操作 28

4.1 目录树 28

4.1.2 路径名 29

4.2 改变目录 31

4.2.1 起始目录 31

4.2.2 改变目录 31

4.3 列文件和目录 32

4.3.1 列目录 32

4.3.2 列文件 33

4.4.1 创建目录 34

4.4 操作目录 34

4.4.2 拷贝文件和目录 35

4.4.3 移动文件和目录 36

4.4.4 删除目录 37

4.5 小结 38

4.6 问题 38

第5学 时文件属性操作 40

5.1 文件类型 40

5.1.1 判断文件类型 40

5.1.3 符号链 41

5.1.2 普通文件 41

5.1.4 设备文件 42

5.1.5 命名管道 43

5.2 所有者、组和权限 43

5.2.1 查看权限 44

5.2.2 改变文件和目录权限 45

5.2.3 改变所有者和组 47

5.3 小结 48

5.4 问题 49

6.1.1 前台进程 50

6.1 启动一个进程 50

第6学 时进程 50

6.1.2 后台进程 51

6.2 列出正在运行的进程 55

6.2.1 jobs命令 55

6.2.2 ps命令 55

6.3 杀死一个进程(kill命令) 57

6.4 父进程和子进程 58

6.4.1 任务ID和进程ID 58

6.4.2 SubShells 58

6.4.4 覆盖当前进程(exec命令) 59

6.4.3 进程权限 59

6.5 小结 60

6.6 问题 60

6.7 术语 60

第二部分 Shell编程 63

第7学 时变量 63

7.1 定义变量 63

7.1.1 变量名 63

7.1.2 访问值 64

7.1.3 数组变量 64

7.1.4 访问数组值 66

7.1.5 只读变量 67

7.2 删除变量 67

7.3 环境变量 67

7.3.1 导出环境变量 68

7.3.2 Shell变量 69

7.4 小结 69

7.5 问题 69

7.6 术语 70

8.1 文件名替换 71

8.1.1 使用*通配符 71

第8学 时替换 71

8.1.2 使用?通配符 73

8.1.3 匹配字符集 73

8.2 变量替换 74

8.2.1 替换缺省值 75

8.2.2 赋予一个缺省值 75

8.2.3 由于变量错误而导致中止 75

8.3 命令和算术替换 76

8.3.1 命令替换 76

8.5 问题 77

8.4 小结 77

8.3.2 算术替换 77

第9学 时引用 78

9.1 用反斜线引用 78

9.2 使用单撇号 79

9.3 使用双撇号 80

9.4 引用规则和环境 81

9.4.1 引用忽略了单词边界 81

9.4.2 命令中的组合引用 81

9.4.3 在单个参数中嵌入空格 81

9.4.5 为访问包含特殊字符的文件名而引用 82

9.4.4 引用换行符达到在下一 82

行续行的目的 82

9.4.6 引用正规表达式通配符 83

9.4.7 引用反斜线开启echo转义序列 83

9.4.8 为cpio和find命令引用通配符 84

9.5 小结 84

9.6 问题 85

9.7 术语 85

第10学 时流控制 87

10.1 if语句 87

10.1.1 一个if语句的实例 88

10.1.2 使用test 89

10.2 case语句 95

10.2.1 case语句的实例 95

10.2.2 使用模式(pattern) 96

10.3 小结 96

10.4 问题 97

第11学 时循环 98

11.1 while循环 98

11.1.1 while循环嵌套 99

11.1.2 until循环 101

11.2.1 for循环 102

11.2 for和select循环 102

11.2.2 select循环 103

11.3 循环控制 105

11.3.1 无限循环和break命令 105

11.3.2 continue命令 106

11.4 小结 107

11.5 问题 107

11.6 术语 107

12.1 特殊变量 109

第12学 时参数 109

12.1.1 使用$0 110

12.1.2 usage语句 110

12.2 选项和参数 111

12.2.1 一个处理参数的实例 111

12.2.2 使用basename命令 112

12.2.3 公用参数处理问题 112

12.3 Shell脚本中的选项分析 114

12.5 问题 118

12.4 小结 118

第13学 时输入/输出 119

13.1 输出 119

13.1.1 向终端输出 119

13.1.2 输出重定向 125

13.2 输入 127

13.2.1 输入重定向 127

13.2.2 读取用户输入 128

13.3 文件描述符 129

13.2.3 管道 129

13.3.1 将文件和文件描述符关联起来 130

13.3.2 输入/输出重定向通用的格式 130

13.4 小结 133

13.5 问题 133

13.6 术语 134

第14学 时函数 135

14.1 创建和使用函数 135

14.1.1 激活一个函数 135

14.1.2 函数举例 136

14.2.1 在文件系统间移动 138

14.2 在函数间共享数据以及共享数据的一个示例 138

14.2.2 实现dirs 139

14.2.3 实现pushd 139

14.2.4 实现popd 140

14.3 小结 142

14.4 问题 142

第15学 时文本过滤器 143

15.1 head和tail命令 143

15.1.1 head命令 143

15.1.2 tail命令 144

15.2 使用grep 145

15.2.1 查找单词 145

15.2.2 从STDIN(标准输入)中读入 146

15.2.3 行号 147

15.2.4 只列出文件名 147

15.3 统计单词的总数 148

15.3.1 tr命令 148

15.3.2 sort命令 150

15.3.3 uniq命令 150

15.3.4 为数字排序 151

15.3.5 tr命令中字符分类的使用 152

15.4 小结 154

15.5 问题 154

第16学 时使用正规表达式过滤文本 155

16.1 awk和sed基础 155

16.1.1 激活语法 155

16.1.2 基本操作 155

16.1.3 正规表达式 156

16.2 使用sed 160

16.2.2 删除行 161

16.2.1 打印行 161

16.2.3 执行替换 162

16.2.4 使用多个sed命令 164

16.2.5 在管道中使用sed 164

16.3 小结 165

16.4 问题 165

第17学 时使用awk过滤文本 167

17.1 什么是awk 167

17.1.1 基本语法 167

17.1.2 域编辑 168

17.1.3 执行“模式——特定”行为 169

17.1.4 比较操作符 170

17.1.5 使用STDIN作为输入 172

17.2 利用awk的特点 172

17.2.1 变量 172

17.2.2 流控制 178

17.3 小结 181

17.4 问题 181

17.5 术语 183

18.1 eval命令 184

第18学 时各种工具 184

18.2 “:”命令 185

18.3 type命令 185

18.4 sleep命令 186

18.5 find命令 187

18.5.1 find:开始目录 187

18.5.2 find:-name选项 188

18.5.3 find:type选项 189

18.5.4 find:-mtime,-atime,-ctime 189

18.5.8 find:-print动作 190

18.5.7 find:否定选项 190

18.5.6 find:组合选项 190

18.5.5 find:-size选项 190

18.5.9 find:-exec动作 191

18.6 xargs 191

18.7 expr命令 192

18.8 bc命令 193

18.9 remsh/rsh/rcmd/remote(远程Shell) 194

18.1 0小结 195

18.1 1问题 195

18.1 2术语 196

第三部分 高级主题 197

第19学 时信号处理 197

19.1 信号代表什么 197

19.1.1 获得一个信号列表 197

19.1.2 缺省动作 198

19.1.3 传递信号 198

19.2 处理信号 199

19.2.1 trap命令 200

19.2.2 清除临时文件 200

19.2.3 忽略信号 201

19.2.4 建立一个计时器 202

19.3 小结 204

19.4 问题 204

第20学 时调试 205

20.1 启动调试 205

20.2 语法检查 207

20.2.1 为什么应该使用语法检查 207

20.2.2 使用verbose模式 208

20.3 Shell跟踪 209

20.3.1 使用Shell跟踪发现语法缺陷 210

20.3.2 使用Shell跟踪找出逻辑缺陷 212

20.3.3 使用调试陷阱 213

20.4 小结 215

20.5 问题 215

第21学 时使用函数解决问题 216

21.1 创建一个函数库 216

21.1.1 创建库 216

21.1.2 从一个库中包含函数 217

21.1.3 命名习惯 217

21.2.1 显示信息 218

21.2 有用的函数 218

21.2.2 询问一个问题 219

21.2.3 检查磁盘空间 223

21.2.4 通过名字获得进程ID 225

21.2.5 获得一个用户ID 226

21.2.6 完整函数库 227

21.3 小结 231

21.4 问题 231

21.5 术语 231

22.1 移动目录 232

第22学 时使用Shell脚本解决问题 232

22.1.1 使用tar 233

221.2 mvdir.sh 233

22.1.3 mvdir.sh概述 235

22.1.4 示例 236

22.2 维护一个地址簿 237

22.2.1 显示信息 238

22.2.2 增加信息 239

22.2.3 删除信息 242

22.4 问题 245

22.3 小结 245

22.5 术语 247

第23学 时脚本可移植性 248

23.1 判断UNIX版本 248

23.1.1 BSD和SystemV 248

23.1.2 使用uname 249

23.1.3 使用函数判断UNIX版本 250

23.2 提高可移植性的技巧 251

23.2.1 条件执行 252

23.2.2 抽取 253

23.5 术语 255

23.3 小结 255

23.4 问题 255

第24学 时Shell编程疑难解答 256

24.1 有关Shell和命令的问题 256

24.2 有关变量和参数的问题 258

24.3 有关文件和目录的问题 259

24.4 小结 262

第四部分 附录 263

附录A 命令快速参考 263

附录B 词汇表 273

附录C 习题答案 279