UNIX Linux OS X中的Shell编程 第4版图书
人气:12

UNIX Linux OS X中的Shell编程 第4版

经典Shell编程图书的全新升级版本 专注于Shell编程 涵盖Shell编程的细枝末节 引导读者跳开Shell编程陷阱和误区
  • 所属分类:图书 >计算机/网络>操作系统/系统开发>LINUX  
  • 作者:[美][斯蒂芬] G. [寇肯]([Stephen] G. [Kochan])、[帕特里克] [伍德]([Patrick] [Wood])
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787115470416
  • 出版社:人民邮电出版社
  • 出版时间:2017-12
  • 印刷时间:2017-11-01
  • 版次:1
  • 开本:16开
  • 页数:331
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

《UNIX Linux OS X中的Shell编程 第4版》是经典图书Unix Shell Programming时隔15年之后的全新升级版本,讲解了如何在POSIX标准Shell环境中开发程序,以充分发挥UNIX和类UNIX操作系统的潜在功能。 《UNIX Linux OS X中的Shell编程 第4版》共分为14章,其内容涵盖了Linux UNIX的基础知识,Shell的概念、工作原理和运行机制,编写Shell程序时使用的一些工具,Shell中的脚本与变量,在Shell中如何解释引用,传递参数,条件语句,循环,数据的读取及打印,Shell环境,交互式以及非标准Shell的特性等。《UNIX Linux OS X中的Shell编程 第4版》后面的两个附录还提供了POSIX标准Shell的特性汇总信息,以及有助于进一步学习掌握Shell编程的资源。 《UNIX Linux OS X中的Shell编程 第4版》坚持以“实例教学”为理念,旨在鼓励读者动手实践,从而彻底掌握Shell编程。本书实例丰富,内容易懂,特别适合有志于掌握Shell编程的Linux UNIX初级用户阅读。

编辑推荐

本书是Unix Shell Programming经典畅销图书的全新升级版本,遵循了上一版的写作手法,并以POSIX标准Shell为平台,讲解了在Shell编程环境中编写程序的方法,以充分利用UNIX和类UNIX操作系统的潜在性能。 本书首先快速回顾了UNIX的各种实用工具,然后讲解了在Shell环境中编写、调试Shell脚本,以及理解其工作方式的所有内容。本书囊括了Shell的所有主要特性,包含了大量实用案例,旨在让你针对特定的应用轻松开发Shell脚本。本书还讲解了Korn和Bash Shell的主要特性。 本书内容: 充分利用UNIX系统中提供的各种实用工具 编写强大的Shell脚本 使用Shell内置的决策和循环结构 使用Shell强大的引用机制 充分使用Shell内置的历史和命令编辑功能 在UNIX命令中使用正则表达式 使用Korn和Bash Shell的特殊特性 识别不同Shell语言版本之间的主要差异 自定义UNIX系统的响应方式 设置Shell环境 使用函数 调试脚本

作者简介

Stephen Kochan是多本UNIX和C语言畅销书的作者与合著者,其中包括Programming in C、Programming in Objective-C、Topics in C Programming和Exploring the Unix System。他之前是AT&T贝尔实验室的软件顾问,负责开发和讲授UNIX和C语言编程相关的课程。 Patrick Wood是Electronics for Imaging公司(坐落于新泽西)的CTO(首席技术官)。他之前曾经是贝尔实验室的一名技术人员,并在1985年遇到了Kochan先生。随后他们俩共同创建了Pipeline Associates, Inc. 公司,提供UNIX咨询服务,当时他是公司的副总裁。他们共同写作了Exploring the Unix System、Unix System Security、Topics in C Programming和Unix Shell Programming等图书。

目录

第1章 基础概述 1

1.1 基础命令 1

1.1.1 显示日期和时间:date命令 1

1.1.2 找出已登录人员:who命令 1

1.1.3 回显字符:echo命令 2

1.2 使用文件 2

1.2.1 列举文件:ls命令 3

1.2.2 显示文件内容:cat命令 3

1.2.3 统计文件中单词数量:wc命令 3

1.2.4 命令选项 3

1.2.5 复制文件:cp命令 4

1.2.6 文件重命名:mv命令 4

1.2.7 删除文件:rm命令 5

1.3 使用目录 5

1.3.1 主目录和路径名 6

1.3.2 显示工作目录:pwd命令 7

1.3.3 更改目录:cd命令 7

1.3.4 ls命令的更多用法 10

1.3.5 创建目录:mkdir命令 12

1.3.6 在目录之间复制文件 12

1.3.7 在目录间移动文件 13

1.3.8 文件链接:ln命令 14

1.3.9 删除目录:rmdir命令 17

1.4 文件名替换 18

1.4.1 星号 18

1.4.2 匹配单个字符 20

1.5 文件名中不易察觉的部分 21

1.5.1 文件名中的空格 21

1.5.2 其他怪异的字符 22

1.6 标准输入 输出和I O重定向 22

1.6.1 标准输入和标准输出 22

1.6.2 输出重定向 24

1.6.3 输入重定向 26

1.7 管道 27

1.8 标准错误 29

1.9 命令后话 29

1.9.1 在一行中输入多个命令 29

1.9.2 向后台发送命令 30

1.9.3 ps命令 30

1.10 命令总结 31

第2章 什么是Shell 33

2.1 内核和实用工具 33

2.2 登录Shell 34

2.3 在Shell中输入命令 37

2.4 Shell的职责 38

2.4.1 程序执行 39

2.4.2 变量及文件名替换 40

2.4.3 I O重定向 41

2.4.4 管道 42

2.4.5 环境控制 42

2.4.6 解释型编程语言 43

第3章 常备工具 44

3.1 正则表达式 44

3.1.1 匹配任意字符:点号(.) 44

3.1.2 匹配行首:脱字符(^) 46

3.1.3 匹配行尾:美元符号($) 46

3.1.4 匹配字符组:[...] 47

3.1.5 匹配零个或多个字符:星号() 50

3.1.6 匹配固定次数的子模式:\{...\} 52

3.1.7 保存已匹配的字符:\(...\) 54

3.2 cut 57

3.3 paste 61

3.3.1 -d选项 62

3.3.2 -s选项 62

3.4 sed 63

3.4.1 -n选项 64

3.4.2 删除行 65

3.5 tr 66

3.5.1 -s选项 69

3.5.2 -d选项 69

3.6 grep 70

3.6.1 正则表达式与grep 73

3.6.2 -v选项 74

3.6.3 -l选项 74

3.6.4 -n选项 75

3.7 sort 76

3.7.1 -u选项 76

3.7.2 -r选项 77

3.7.3 -o选项 77

3.7.4 -n选项 78

3.7.5 跳过某些字段 78

3.7.6 -t选项 79

3.7.7 其他选项 80

3.8 uniq 80

3.8.1 -d选项 81

3.8.2 其他选项 82

第4章 脚本与变量 83

4.1 命令文件 83

4.2 变量 86

4.2.1 显示变量值 87

4.2.2 未定义变量的值为空 89

4.2.3 文件名替换与变量 91

4.2.4 ${variable}结构 92

4.3 内建的整数算术操作 92

第5章 引用 95

5.1 单引号 95

5.2 双引号 98

5.3 反斜线 101

5.3.1 使用反斜线续行 102

5.3.2 双引号中的反斜线 102

5.4 命令替换 103

5.4.1 反引号 104

5.4.2 $(...)结构 104

5.5 expr命令 108

第6章 传递参数 111

6.1 变量$# 112

6.2 变量$ 113

6.3 在电话簿中查找联系人 113

6.4 向电话簿中添加联系人 115

6.5 从电话簿中删除联系人 116

6.6 shift命令 118

第7章 条件语句 120

7.1 退出状态 120

7.2 变量$ 121

7.3 test命令 124

7.3.1 字符串操作符 124

7.3.2 test的另一种格式 128

7.3.3 整数操作符 129

7.3.4 文件操作符 130

7.3.5 逻辑否定操作符! 131

7.3.6 逻辑“与”操作符-a 131

7.3.7 括号 132

7.3.8 逻辑“或”操作符-o 132

7.4 else 133

7.5 exit命令 135

7.6 elif 137

7.7 case命令 141

7.7.1 特殊的模式匹配字符 142

7.7.2 调试选项-x 144

7.7.3 再谈case 147

7.8 空命令: 148

7.9 &&和|| 149

第8章 循环 151

8.1 for命令 151

8.1.1 $@变量 154

8.1.2 不使用列表的for命令 155

8.2 while命令 156

8.3 until命令 158

8.4 再谈循环 162

8.4.1 跳出循环 162

8.4.2 跳过循环中余下的命令 163

8.4.3 在后台执行循环 164

8.4.4 循环上的I O重定向 165

8.4.5 将数据导入及导出循环 166

8.4.6 单行循环 166

8.5 getopts命令 167

第9章 数据的读取及打印 171

9.1 read命令 171

9.1.1 文件复制程序 171

9.1.2 特殊的echo转义字符 173

9.1.3 mycp的改进版本 174

9.1.4 mycp的最终版本 175

9.1.5 菜单驱动的电话簿程序 179

9.1.6 变量$$与临时文件 183

9.1.7 read的退出状态 184

9.2 printf命令 187

第10章 环境 192

10.1 局部变量 192

10.2 导出变量 194

10.3 PS1和PS2 198

10.4 HOME 199

10.5 PATH 199

10.6 当前目录 206

10.7 再谈子Shell 208

10.7.1 .命令 209

10.7.2 exec命令 212

10.7.3 (...)和{ ...; } 212

10.7.4 另一种将变量传给子Shell的方法 215

10.8 .profile文件 216

10.9 TERM变量 217

10.10 TZ变量 218

第11章 再谈参数 219

11.1 参数替换 219

11.1.1 ${parameter} 219

11.1.2 ${parameter:-value} 220

11.1.3 ${parameter:=value} 220

11.1.4 ${parameter: value} 221

11.1.5 ${parameter: value} 222

11.1.6 模式匹配 222

11.1.7 ${#variable} 224

11.2 $0变量 224

11.3 set命令 225

11.3.1 -x选项 225

11.3.2 无参数的set 226

11.3.3 使用set为位置参数重新赋值 227

11.3.4 --选项 228

11.3.5 set的其他选项 230

11.4 IFS变量 230

11.5 readonly命令 233

11.6 unset命令 234

第12章 拓展内容 235

12.1 eval命令 235

12.2 wait命令 237

12.3 $!变量 237

12.4 trap命令 238

12.4.1 不使用参数的trap 239

12.4.2 忽略信号 240

12.4.3 重置信号 240

12.5 再谈I O 241

12.5.1 &- 242

12.5.2 行内输入重定向 242

12.5.3 Shell归档文件 244

12.6 函数 247

12.6.1 删除函数 250

12.6.2 return命令 250

12.7 type命令 250

第13章 再谈rolo 251

13.1 数据格式化考量 251

13.2 rolo 252

13.3 add 254

13.4 lu 255

13.5 display 256

13.6 rem 257

13.7 change 259

13.8 listall 260

13.9 样例输出 261

第14章 交互式与非标准Shell特性 265

14.1 使用正确的Shell 265

14.2 ENV文件 266

14.3 命令行编辑 267

14.4 命令历史 267

14.5 vi行编辑模式 268

14.6 emacs行编辑模式 272

14.7 访问历史记录的其他方法 275

14.7.1 history命令 275

14.7.2 fc命令 276

14.7.3 r命令 277

14.8 函数 278

14.8.1 局部变量 278

14.8.2 自动载入函数 278

14.9 整数算术 278

14.9.1 整数类型 279

14.9.2 不同基数的数字 280

14.10 alias命令 282

14.11 数组 284

14.12 作业控制 289

14.13 其他特性 292

14.13.1 cd命令的其他特性 292

14.13.2 波浪符替换 292

14.13.3 搜索次序 293

14.14 兼容性总结 294

附录A Shell总结 295

附录B 更多的相关信息 329

媒体评论

“学习Shell脚本编程的jue佳图书……经典!名不虚传!” ——Dr. Dobb's Jounral

免责声明

更多相关图书
在线咨询