资源名称:Linux Shell编程从初学到精通(第2版)

内容简介:

Shell 是用户与内核进行交互操作的一种接口,是Linux 最重要的软件之一,目前最流行的Shell 称为bash Shell。bash Shell 脚本编程以其简洁、高效而著称,多年来成为Linux 程序员和系统管理员解决实际问题的利器。

《Linux Shell编程从初学到精通(第2版)》结合大量的示例,系统、全面地介绍了bash Shell 脚本编程的语法、命令、技巧、调试等内容,在书中还有很多练习可以引导读者思考,力求使读者掌握Linux bash Shell 编程的所有特性。本书结构清晰、易教易学、实例丰富、可操作性强、学以致用,对易混淆和实用性强的内容进行了重点提示和讲解,并配有光盘,光盘中提供书中出现的所有脚本文件、各章的讲解PPT,以及各章的讲解录像。

《Linux Shell编程从初学到精通(第2版)》面向广大工程技术工作者,既可作为高等学校的教师和相关专业学生的教材,又可作为各类培训班的培训教程。

资源目录:

第1章 Shell脚本编程概述1

1.1 Linux和Shell概述2

1.1.1 Linux简介2

1.1.2 Shell简介5

1.1.3 Shell的种类和版本7

1.2 Shell脚本编程的优势7

1.3 第一个Shell脚本例子8

1.3.1 Shell脚本的基本元素8

1.3.2 执行Shell脚本10

1.4 本章小结11

第2章 Linux文件系统和文本编辑器12

2.1 用户和用户组管理13

2.1.1 用户管理常用命令13

2.1.2 用户组管理常用命令17

2.2 文件和目录操作19

2.2.1 文件操作常用命令20

2.2.2 目录操作常用命令25

2.2.3 文件和目录权限管理28

2.2.4 查找文件命令——find32

2.3 文本编辑器34

2.3.1 vim编辑器34

2.3.2 Gedit编辑器40

2.4 本章小结41

2.5 上机提议41

第3章 正则表达式43

3.1 正则表达式基础44

3.2 正则表达式的扩展47

3.3 通配48

3.4 grep命令50

3.4.1 grep命令基本用法51

3.4.2 grep和正则表达式结合使用的一组例子57

3.4.3 grep命令族简介61

3.5 本章小结62

3.6 上机提议63

第4章 sed命令和awk编程64

4.1 sed命令基本用法65

4.2 sed命令的一组示例67

4.2.1 sed命令选项的一组例子67

4.2.2 sed文本定位的一组例子70

4.2.3 sed基本编辑命令的一组例子72

4.2.4 sed高级编辑命令的一组例子80

4.3 awk编程83

4.3.1 awk编程模型84

4.3.2 awk调用方法85

4.4 awk编程的一组例子85

4.4.1 awk模式匹配85

4.4.2 记录和域86

4.4.3 关系和布尔运算符89

4.4.4 表达式91

4.4.5 系统变量92

4.4.6 格式化输出94

4.4.7 内置字符串函数95

4.4.8 向awk脚本传递参数97

4.4.9 条件语句和循环语句99

4.4.10 数组99

4.5 本章小结103

4.6 上机提议103

第5章 文件的排序、合并和分割105

5.1 sort命令106

5.1.1 sort命令的基本用法106

5.1.2 sort和awk的联合用法110

5.2 uniq命令112

5.3 join命令115

5.4 cut命令118

5.5 paste命令119

5.6 split命令122

5.7 tr命令124

5.8 tar命令127

5.9 本章小结130

5.10 上机提议130

第6章 变量和引用133

6.1 变量134

6.1.1 变量替换和赋值134

6.1.2 无类型的Shell脚本变量137

6.1.3 环境变量138

6.1.4 位置参数145

6.2 引用147

6.2.1 全引用和部分引用147

6.2.2 命令替换149

6.2.3 转义151

6.3 本章小结155

6.4 上机提议155

第7章 退出、测试、判断及操作符157

7.1 退出状态158

7.2 测试159

7.2.1 测试结构159

7.2.2 整数比较运算符159

7.2.3 字符串运算符161

7.2.4 文件操作符162

7.2.5 逻辑运算符164

7.3 判断166

7.3.1 简单if结构167

7.3.2 exit命令168

7.3.3 if/else结构169

7.3.4 if/else语句嵌套171

7.3.5 if/elif/else结构174

7.3.6 case结构177

7.4 运算符179

7.4.1 算术运算符180

7.4.2 位运算符181

7.4.3 自增自减运算符183

7.4.4 数字常量183

7.5 本章小结185

7.6 上机提议185

第8章 循环与结构化命令187

8.1 for循环188

8.1.1 列表for循环188

8.1.2 不带列表for循环192

8.1.3 类C风格的for循环193

8.2 while循环196

8.2.1 计数器控制的while循环196

8.2.2 结束标记控制的while循环198

8.2.3 标志控制的while循环200

8.2.4 命令行控制的while循环202

8.3 until循环203

8.4 嵌套循环204

8.5 循环控制符208

8.5.1 break循环控制符208

8.5.2 continue循环控制符211

8.6 select结构213

8.7 本章小结215

8.8 上机提议215

第9章 变量的高级用法217

9.1 内部变量218

9.2 字符串处理226

9.3 有类型变量232

9.4 间接变量引用235

9.5 bash数学运算237

9.5.1 expr命令238

9.5.2 bc运算器239

9.6 本章小结241

9.7 上机提议241

第10章 I/O重定向243

10.1 管道244

10.1.1 管道简介244

10.1.2 cat和more命令245

10.1.3 sed命令与管道249

10.1.4 awk命令与管道250

10.2 I/O重定向253

10.2.1 文件标识符253

10.2.2 I/O重定向符号及其用法255

10.2.3 exec命令的用法259

10.2.4 代码块重定向262

10.3 命令行处理265

10.3.1 命令行处理流程266

10.3.2 eval命令268

10.4 本章小结271

10.5 上机提议271

第11章 Linux/UNIX Shell类型与区别273

11.1 Linux/UNIX Shell起源与分类274

11.2 dash简介275

11.3 tcsh简介277

11.4 Korn Shell简介282

11.5 本章小结287

第12章 子Shell与进程处理288

12.1 子Shell289

12.1.1 内建命令289

12.1.2 圆括号结构292

12.2 Shell的限制模式297

12.3 进程处理299

12.3.1 进程和作业301

12.3.2 作业控制302

12.3.3 信号307

12.3.4 trap命令309

12.4 本章小结312

12.5 上机提议312

第13章 函数314

13.1 函数的定义和基本知识315

13.2 向函数传递参数318

13.3 函数返回值321

13.4 函数调用322

13.4.1 脚本放置多个函数322

13.4.2 函数相互调用324

13.4.3 一个函数调用多个函数325

13.5 局部变量和全局变量327

13.6 函数递归328

13.6.1 使用局部变量的递归329

13.6.2 不使用局部变量的递归330

13.7 本章小结332

13.8 上机提议333

第14章 别名、列表及数组335

14.1 别名336

14.2 列表339

14.3 数组342

14.3.1 数组的基本用法342

14.3.2 数组的特殊用法346

14.3.3 用数组实现简单的数据结构350

14.4 本章小结356

14.5 上机提议356

第15章 一些混杂的主题359

15.1 脚本编写风格360

15.1.1 缩进360

15.1.2 {}的格式362

15.1.3 空格和空行的用法362

15.1.4 判断和循环的编程风格363

15.1.5 命名规范364

15.1.6 注释风格365

15.2 脚本优化366

15.2.1 简化脚本366

15.2.2 保持脚本的灵活性368

15.2.3 给用户足够的提示369

15.3 Linux中的特殊命令371

15.3.1 shift命令371

15.3.2 getopts命令374

15.4 交互式和非交互式Shell脚本376

15.4.1 非交互式Shell脚本376

15.4.2 交互式Shell脚本378

15.5 /dev文件系统379

15.5.1 /dev文件系统基础知识380

15.5.2 /dev/zero伪设备381

15.5.3 /dev/null伪设备383

15.6 /proc文件系统384

15.6.1 使用/proc/sys优化系统参数386

15.6.2 查看运行中的进程信息387

15.6.3 查看文件系统信息388

15.6.4 查看网络信息389

15.7 Shell包装390

15.8 带颜色的脚本392

15.9 Linux脚本安全398

15.9.1 使用shc工具加密Shell脚本398

15.9.2 Linux Shell脚本编写的病毒399

15.9.3 Linux Shell中的木马400

15.10 本章小结401

15.1 上机提议401

第16章 Shell脚本调试技术403

16.1 Shell脚本调试概述404

16.2 Shell脚本调试技术406

16.2.1 使用trap命令406

16.2.2 使用tee命令409

16.2.3 调试钩子411

16.2.4 使用Shell选项412

16.3 本章小结417

16.4 上机提议417

第17章 bash Shell编程范例420

17.1 将文本文件转化为HTML文件421

17.2 查找文本中n个出现频率最高的单词425

17.3 伪随机数的产生和应用427

17.4 crontab的设置和应用431

17.5 使用MySQL数据库434

17.5.1 MySQL基础434

17.5.2 Shell脚本使用MySQL437

17.6 Linux服务器性能监控系统442

17.6.1 Ganglia简介及安装443

17.6.2 提取服务器性能参数名称及数据448

17.6.3 动态更新服务器监控数据455

17.7 本章小结457

17.8 上机提议457

附录459

附录A POSIX标准简介460

附录B 常用ASCII码对照表461

附录C Linux信号及其意义466

附录D bash内建变量索引467

附录E bash内建命令索引469

参考文献472

资源截图:

Linux Shell编程从初学到精通(第2版)