标题：Linux Shell编程从初学到精通
基本信息
作者： 伍之昂    
丛书名： 华清远见系列图书 
出版社：电子工业出版社 
ISBN：9787121123054
上架时间：2011-2-21
出版日期：2011 年2月
开本：16开
页码：1
版次：1-1
内容简介
shell是用户与内核进行交互操作的一种接口，是linux最重要的软件之一。目前最流行的shell称为bash shell，bash shell脚本编程以其简洁、高效而著称，多年来成为linux程序员和系统管理员解决实际问题的利器。
《linux shell编程从初学到精通》结合大量的示例，系统、全面地介绍了bash shell脚本编程的语法、命令、技巧、调试等内容，在书中还有很多练习可以引导读者思考，力求使读者掌握linux bash shell编程的所有特性。本书结构清晰、易教易学、实例丰富、可操作性强、学以致用，对易混淆和实用性强的内容进行了重点提示和讲解，并配有光盘，光盘中提供书中出现的所有脚本文件、各章的讲解ppt，以及各章的讲解录像。
《linux shell编程从初学到精通》面向广大工程技术工作者，既可作为高等学校教师和相关专业学生的教材，又可作为各类培训班的培训教程。 
目录
《linux shell编程从初学到精通》 
第1章 shell脚本编程概述 1 
1.1 linux和shell概述 2 
1.1.1 linux简介 2 
1.1.2 shell简介 3 
1.2 shell脚本编程的优势 5 
1.3 第一个shell脚本例子 6 
1.3.1 shell脚本的基本元素 6 
1.3.2 执行shell脚本 7 
1.4 本章小结 8 
第2章 linux文件系统和文本编辑器 9 
2.1 用户和用户组管理 10 
2.1.1 用户管理常用命令 10 
2.1.2 用户组管理常用命令 14 
2.2 文件和目录操作 16 
2.2.1 文件操作常用命令 17 
2.2.2 目录操作常用命令 21 
2.2.3 文件和目录权限管理 25 
2.2.4 查找文件命令——find 28 
2.3 文本编辑器 31 
.2.3.1 vi编辑器 31 
2.3.2 gedit编辑器 35 
2.4 本章小结 36 
2.5 上机提议 37 
第3章 正则表达式 39 
3.1 正则表达式基础 40 
3.2 正则表达式的扩展 43 
3.3 通配 44 
3.4 grep命令 46 
3.4.1 grep命令基本用法 47 
3.4.2 grep和正则表达式结合使用的一组例子 53 
3.4.3 grep命令族简介 57 
3.5 本章小结 58 
3.6 上机提议 58 
第4章 sed命令和awk编程 60 
4.1 sed命令基本用法 61 
4.2 sed编程的一组例子 63 
4.2.1 sed命令选项的一组例子 63 
4.2.2 sed文本定位的一组例子 66 
4.2.3 sed基本编辑命令的一组例子 68 
4.2.4 sed高级编辑命令的一组例子 76 
4.3 awk编程 79 
4.3.1 awk编程模型 80 
4.3.2 awk调用方法 80 
4.4 awk编程的一组例子 81 
4.4.1 awk模式匹配 81 
4.4.2 记录和域 82 
4.4.3 关系和布尔运算符 84 
4.4.4 表达式 86 
4.4.5 系统变量 88 
4.4.6 格式化输出 89 
4.4.7 内置字符串函数 91 
4.4.8 向awk脚本传递参数 93 
4.4.9 条件语句和循环语句 94 
4.4.10 数组 95 
4.5 本章小结 99 
4.6 上机提议 99 
第5章 文件的排序、合并和分割 101 
5.1 sort命令 102 
5.1.1 sort命令的基本用法 102 
5.1.2 sort和awk的联合用法 106 
5.2 uniq命令 108 
5.3 join命令 111 
5.4 cut命令 114 
5.5 paste命令 115 
5.6 split命令 117 
5.7 tr命令 119 
5.8 tar命令 122 
5.9 本章小结 125 
5.10 上机提议 126 
第6章 变量和引用 128 
6.1 变量 129 
6.1.1 变量替换和赋值 129 
6.1.2 无类型的shell脚本 
变量 132 
6.1.3 环境变量 133 
6.1.4 位置参数 140 
6.2 引用 141 
6.2.1 全引用和部分引用 142 
6.2.2 命令替换 143 
6.2.3 转义 146 
6.3 本章小结 149 
6.4 上机提议 150 
第7章 退出、测试、判断及操作符 152 
7.1 退出状态 153 
7.2 测试 154 
7.2.1 测试结构 154 
7.2.2 整数比较运算符 154 
7.2.3 字符串运算符 156 
7.2.4 文件操作符 157 
7.2.5 逻辑运算符 159 
7.3 判断 161 
7.3.1 简单if结构 162 
7.3.2 exit命令 163 
7.3.3 if/else结构 164 
7.3.4 if/else语句嵌套 166 
7.3.5 if/elif/else结构 169 
7.3.6 case结构 172 
7.4 运算符 174 
7.4.1 算术运算符 175 
7.4.2 位运算符 176 
7.4.3 自增自减运算符 178 
7.4.4 数字常量 178 
7.5 本章小结 180 
7.6 上机提议 180 
第8章 循环与结构化命令 182 
8.1 for循环 183 
8.1.1 列表for循环 183 
8.1.2 不带列表for循环 187 
8.1.3 类c风格的for循环 188 
8.2 while循环 191 
8.2.1 计数器控制的while循环 191 
8.2.2 结束标记控制的while循环 193 
8.2.3 标志控制的while循环 195 
8.2.4 命令行控制的while循环 196 
8.3 until循环 198 
8.4 嵌套循环 199 
8.5 循环控制符 203 
8.5.1 break循环控制符 203 
8.5.2 continue循环控制符 206 
8.6 select结构 208 
8.7 本章小结 210 
8.8 上机提议 210 
第9章 变量的高级用法 212 
9.1 内部变量 213 
9.2 字符串处理 221 
9.3 有类型变量 227 
9.4 间接变量引用 230 
9.5 bash数学运算 232 
9.5.1 expr命令 232 
9.5.2 bc运算器 234 
9.6 本章小结 235 
9.7 上机提议 236 
第10章 i/o重定向 238 
10.1 管道 239 
10.1.1 管道简介 239 
10.1.2 cat和more命令 240 
10.1.3 sed命令与管道 242 
10.1.4 awk命令与管道 244 
10.2 i/o重定向 246 
10.2.1 文件标识符 246 
10.2.2 i/o重定向符号及其用法 248 
10.2.3 exec命令的用法 252 
10.2.4 代码块重定向 255 
10.3 命令行处理 258 
10.3.1 命令行处理流程 258 
10.3.2 eval命令 261 
10.4 本章小结 264 
10.5 上机提议 264 
第11章　linux/unix shell类型与区别 266 
11.1 linux/unix shell起源与分类 267 
11.2 dash简介 268 
11.3 tcsh简介 270 
11.4 korn shell简介 275 
11.5 本章小结 280 
第12章　子shell与进程处理 281 
12.1 子shell 282 
12.1.1 内建命令 282 
12.1.2 圆括号结构 285 
12.2 shell的限制模式 290 
12.3 进程处理 292 
12.3.1 进程和作业 294 
12.3.2 作业控制 295 
12.3.3 信号 299 
12.3.4 trap命令 302 
12.4 本章小结 305 
12.5 上机提议 305 
第13章　函数 307 
13.1 函数的定义和基本知识 308 
13.2 向函数传递参数 311 
13.3 函数返回值 314 
13.4 函数调用 315 
13.4.1 脚本放置多个函数 316 
13.4.2 函数相互调用 317 
13.4.3 一个函数调用多个函数 319 
13.5 局部变量和全局变量 320 
13.6 函数递归 321 
13.6.1 使用局部变量的递归 322 
13.6.2 不使用局部变量的递归 323 
13.7 本章小结 325 
13.8 上机提议 326 
第14章　别名、列表及数组 328 
14.1 别名 329 
14.2 列表 332 
14.3 数组 334 
14.3.1 数组的基本用法 335 
14.3.2 数组的特殊用法 339 
14.3.3 用数组实现简单的数据结构 343 
14.4 本章小结 349 
14.5 上机提议 349 
第15章 一些混杂的主题 352 
15.1 脚本编写风格 353 
15.1.1 缩进 353 
15.1.2 {}的格式 355 
15.1.3 空格和空行的用法 355 
15.1.4 判断和循环的编程风格 356 
15.1.5 命名规范 357 
15.1.6 注释风格 358 
15.2 脚本优化 359 
15.2.1 简化脚本 359 
15.2.2 保持脚本的灵活性 361 
15.2.3 给用户足够的提示 362 
15.3 linux中的特殊命令 364 
15.3.1 shift命令 364 
15.3.2 getopts命令 367 
15.4 交互式和非交互式shell脚本 369 
15.4.1 非交互式shell脚本 369 
15.4.2 交互式shell脚本 371 
15.5 /dev文件系统 372 
15.5.1 /dev文件系统基础知识 372 
15.5.2 /dev/zero伪设备 374 
15.5.3 /dev/null伪设备 375 
15.6 /proc文件系统 376 
15.6.1 使用/proc/sys优化系统参数 378 
15.6.2 查看运行中的进程信息 379 
15.6.3 查看文件系统信息 380 
15.6.4 查看网络信息 380 
15.7 shell包装 381 
15.8 带颜色的脚本 383 
15.9 linux脚本安全 389 
15.9.1 使用shc工具加密shell脚本 390 
15.9.2 linux shell脚本编写的病毒 391 
15.9.3 linux shell中的木马 392 
15.10 本章小结 392 
15.11 上机提议 393 
第16章 shell脚本调试技术 395 
16.1 shell脚本调试概述 396 
16.2 shell脚本调试技术 398 
16.2.1 使用trap命令 398 
16.2.2 使用tee命令 401 
16.2.3 调试钩子 403 
16.2.4 使用shell选项 404 
16.3 本章小结 409 
16.4 上机提议 409 
第17章 bash shell编程范例 412 
17.1 将文本文件转化为html 
文件 413 
17.2 查找文本中n个出现频率最高的单词 417 
17.3 伪随机数的产生和应用 419 
17.4 crontab的设置和应用 423 
17.5 使用mysql数据库 426 
17.5.1 mysql基础 426 
17.5.2 shell脚本使用mysql 427 
17.6 linux服务器性能监控系统 432 
17.6.1 ganglia简介及安装 432 
17.6.2 提取服务器性能参数名称及数据 435 
17.6.3 动态更新服务器监控数据 441 
17.7 本章小结 443 
17.8 上机提议 443 
附录 445 
附录a posix标准简介 446 
附录b 常用ascii码对照表 447 
附录c linux信号及其意义 452 
附录d bash内建变量索引 453 
附录e bash内建命令索引 455 
参考文献 458