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

图书作者: 伍之昂 丛书名称:华清远见系列图书 出版日期:2015年1月

编辑推荐理由

推荐评分:5.0分

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇总

数十所嵌入式专业大学院校教学现状调研

侧重实践及案例分析并辅以代码加以讲解

图书简介

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 查找文件命令——find 32
  • 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 子Shell 289
  • 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脚本使用MySQL 437
  • 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