重磅推荐
【内容简介】
“Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,长期位居同类图书销售排行榜的前列,累计销量近10万册。丛书中部分图书荣获51CTO读书频道“受读者喜爱的原创IT技术图书奖”,还有多种图书的中文繁体字版权输出到了中国台湾地区出版发行。丛书中的多个品种被国内几十所培训机构和大中专院校选为教材。丛书的出版还得到了国内Linux领域知名的技术社区ChinaUnix的大力支持。读者在ChinaUnix社区的论坛上与社区中的Linux爱好者进行了广泛的交流,取得了良好的学习效果。2014年2月“Linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合了Linux技术的*发展,全部采用当前流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。  

 

  《Linux典藏大系:Shell从入门到精通》是获得了大量读者好评的“Linux典藏大系”中的Shell分册。Shell脚本程序具有简洁、高效的特点,多年以来,BashShell成为系统管理员和Linux程序员解决实际问题的得力工具。《Linux典藏大系:Shell从入门到精通》结合大量的实例,向读者详细介绍了这一工具的使用方法。《Linux典藏大系:Shell从入门到精通》附带1张光盘,内容为本书配套多媒体教学视频及实例源程序及其他学习资料。
  《Linux典藏大系:Shell从入门到精通》共15章,分为3篇。涵盖的主要内容包括Shell编程基础、Shell编程环境的搭建、Shell变量、条件测试和判断语句、循环结构、函数、数组、正则表达式、基本文本处理、流编辑、awk工具、文件操作、子Shell与进程处理、Shell脚本调试技术等,并在本书的第15章中给出了2个具体的综合实例。
  本书结构清晰,易教易学,实例丰富,可操作性强,对易混淆和实用性强的内容进行了重点提示和讲解。因此,本书非常适合Linux系统管理和开发的相关人员阅读,也可以作为高等学校教师和相关专业学生的教材,又可以作为各类培训班的培训教材。


超值、大容量DVD光盘

15小时配套教学视频

35小时Linux入门教学视频(赠送)

11小时Linux指令教学视频(赠送)

本书实例源文件


【编辑推荐】
Shell学习终极实战秘笈,ChinaUnix技术社区鼎力推荐,结合近300个实例和2个综合案例,全方位介绍Shell编程

  15小时配套教学视频+35小时Linux入门教学视频+11小时Linux指令教学视频+教学PPT

  内容全面:全面介绍了Shell编程技术,基本涵盖Shell编程的所有重要知识点

  循序渐进:遵循科学的讲解顺序,从基础知识开始,到Shell脚本调试技术,逐步深入

  讲解详细:注重分析和实战,每个知识点都结合具体示例讲解,并力求详尽和透彻

  实用性强:讲解时穿插了近300个应用示例,并对实现过程给出了详细的说明

  技巧性强:穿插了大量的开发经验和技巧,并对容易忽略的细节给出了专门的提示

  案例典型:*后的两个综合案例来源于作者的实际项目,具有很高的应用价值

Linux精品图书推荐(请点丛书链接查看)

《Linux典藏大系(套装全2册):Linux从入门到精通+Shell从入门到精通》

《Linux典藏大系(套装全4册):Linux从入门到精通+Linux系统管理与网络管理+Linux服务器架设指南+Shell从入门到精通》

《Linux从入门到精通(第2版)》 (累计14次印刷,畅销4万余册,入门)

《Linux系统管理与网络管理(第2版)》 (累计6刷,Linux管理员)

《Linux服务器架设指南(第2版)》 (资深专家14年经验总结)

《Linux Shell命令行及脚本编程实例详解》

《Linux指令范例速查手册(第2版)》 (易查、易用)

《Linux服务范例速查大全》(涵盖全面,运维)

《Linux命令、编辑器与Shell编程》《实战经典》

《UNIX从入门到精通》 (UNIX学习终极秘笈)



【前言】


【作者简介】
 张春晓,毕业于广州暨南大学,计算机软件与理论硕士。现任职于暨南大学,长期从事UNIX及Linux系统维护,已达11年之久,对Shell编程有深入的研究。作者热衷于UNIX的严谨与简洁,又痴迷于Linux的自由与开放,整日与UNIX及Linux为伴,从中获益匪浅。著有《UNIX从入门到精通》
【目录】

第1篇 认识Shell编程
第1章 Shell入门基础(教学视频:66分钟)
1.1 为什么学习和使用Shell编程
1.2 什么是Shel
1.2.1 Shell的起源
1.2.2 Shell的功能
1.2.3 Shell的分类
1.3 作为程序设计语言的Shell
1.3.1 交互式程序
1.3.2 创建脚本
1.3.3 把脚本设置为可执行
1.4 向脚本传递参数
1.4.1 Shell脚本的参数
1.4.2 参数扩展
1.5 个Shell程序:Hello,BashShell!
1.5.1 Shell脚本的基本元素
1.5.2 指定命令解读器
1.5.3 Shell脚本中的注释和风格
1.5.4 如何执行Shell程序
1.5.5 Shell程序的退出状态
1.6 小结
第2章 Shell编程环境的搭建(教学视频:49分钟)
2.1 在不同的操作系统上搭建Shell编程环境
2.1.1 在Windows上搭建Shell编程环境
2.1.2 在Linux上搭建Shell编程环境
2.1.3 在FreeBSD上搭建Shell编程环境
2.2 编辑器的选择
2.2.1 图形化编辑器
2.2.2 vi(vim)编辑器
2.3 系统环境的搭建
2.3.1 Shell配置文件
2.3.2 命令别名
2.4 小结
第2篇 Shell编程基础
第3章 变量和引用(教学视频:62分钟)
3.1 深入认识变量
3.1.1 什么是变量
3.1.2 变量的命名
3.1.3 变量的类型
3.1.4 变量的定义
3.1.5 变量和引号
3.1.6 变量的作用域
3.1.7 系统变量
3.1.8 环境变量
3.2 变量赋值和清空
3.2.1 变量赋值
3.2.2 引用变量的值
3.2.3 清除变量
3.3 引用和替换
3.3.1 引用
3.3.2 全引用
3.3.3 部分引用
3.3.4 命令替换
3.3.5 转义
3.4 小结
第4章 条件测试和判断语句(教学视频:77分钟)
4.1 条件测试
4.1.1 条件测试的基本语法
4.1.2 字符串测试
4.1.3 整数测试
4.1.4 文件测试
4.1.5 逻辑操作符
4.2 条件判断语句
4.2.1 使用简单的if语句进行条件判断
4.2.2 使用ifelse语句进行流程控制
4.2.3 使用ifelif语句进行多条件判断
4.2.4 使用exit语句退出程序
4.3 多条件判断语句case
4.3.1 多条件判断语句case的基本语法
4.3.2 利用case语句处理选项参数
4.3.3 利用case语句处理用户输入
4.4 运算符
4.4.1 算术运算符
4.4.2 位运算符
4.4.3 自增/自减运算符
4.4.4 数字常量的进制
4.5 小结
第5章 循环结构(教学视频:61分钟)
5.1 步进循环语句for
5.1.1 带列表的for循环语句
5.1.2 不带列表的for循环语句
5.1.3 类C风格的for循环语句
5.1.4 使用for循环语句处理数组
5.2 until循环语句
5.2.1 until语句的基本语法
5.2.2 利用until语句批量增加用户
5.3 while循环语句
5.3.1 while语句的基本语法
5.3.2 通过计数器控制while循环结构
5.3.3 通过结束标记控制while循环结构
5.3.4 理解while语句与until语句的区别
5.4 嵌套循环
5.5 利用break和continue语句控制循环
5.5.1 利用break语句控制循环
5.5.2 利用continue语句控制循环
5.5.3 分析break语句和continue语句的区别
5.6 小结
第6章 函数(教学视频:60分钟)
6.1 函数
6.1.1 什么是函数
6.1.2 函数的定义
6.1.3 函数的调用
6.1.4 函数链接
6.1.5 函数的返回值
6.1.6 函数和别名
6.1.7 再议全局变量和局部变量
6.2 函数参数
6.2.1 含有参数的函数的调用方法
6.2.2 获取函数参数的个数
6.2.3 通过位置变量接收参数值
6.2.4 移动位置参数
6.2.5 通过getopts接收函数参数
6.2.6 间接参数传递
6.2.7 通过全局变量传递数据
6.2.8 传递数组参数
6.3 函数库文件
6.3.1 函数库文件的定义
6.3.2 函数库文件的调用
6.4 递归函数
6.5 小结
第7章 数组(教学视频:52分钟)
7.1 定义数组
7.1.1 通过指定元素值来定义数组
7.1.2 通过declare语句定义数组
7.1.3 通过元素值集合定义数组
7.1.4 通过键值对定义数组
7.1.5 数组和普通变量
7.2 数组的赋值
7.2.1 按索引为元素赋值
7.2.2 通过集合为数组赋值
7.2.3 在数组末尾追加新元素
7.2.4 通过循环为数组元素赋值
7.3 访问数组
7.3.1 访问第1个数组元素
7.3.2 通过下标访问数组元素
7.3.3 计算数组的长度
7.3.4 通过循环遍历数组元素
7.3.5 引用所有的数组元素
7.3.6 以切片方式获取部分数组元素
7.3.7 数组元素的替换
7.4 删除数组
7.4.1 删除指定数组元素
7.4.2 删除整个数组
7.5 数组的其他操作
7.5.1 复制数组
7.5.2 连接数组
7.5.3 加载文件内容到数组
7.6 小结
第8章 正则表达式(教学视频:57分钟)
8.1 什么是正则表达式
8.1.1 为什么使用正则表达式
8.1.2 如何学习正则表达式
8.1.3 如何实践正则表达式
8.2 正则表达式基础
8.2.1 正则表达式的原理
8.2.2 基本正则表达式
8.2.3 扩展正则表达式
8.2.4 Perl正则表达式
8.2.5 正则表达式字符集
8.3 正则表达式应用
8.3.1 匹配单个字符
8.3.2 匹配多个字符
8.3.3 匹配字符串的开头或者结尾
8.3.4 运算符优先级
8.3.5 子表达式
8.3.6 通配符
8.4 grep命令
8.4.1 grep命令的基本语法
8.4.2 grep命令族简介
8.5 小结
第9章 基本文本处理(教学视频:100分钟)
9.1 使用echo命令输出文本
9.1.1 显示普通字符串
9.1.2 显示转义字符
9.1.3 显示变量
9.1.4 换行和不换行
9.1.5 显示命令执行结果
9.1.6 echo命令执行结果的重定向
9.2 文本的格式化输出
9.2.1 使用UNIX制表符
9.2.2 使用fold命令格式化行
9.2.3 使用fmt命令格式化段落
9.2.4 使用rev命令反转字符顺序
9.2.5 使用pr命令格式化文本页
9.3 使用sort命令对文本排序
9.3.1 sort命令的基本用法
9.3.2 使用单个关键字排序
9.3.3 根据指定的列排序
9.3.4 根据关键字降序排序
9.3.5 数值列的排序
9.3.6 自定义列分隔符
9.3.7 删除重复的行
9.3.8 根据多个关键字排序
9.3.9 使用sort命令合并文件
9.4 文本的统计
9.4.1 输出含有行号的文本行
9.4.2 统计行数
9.4.3 统计单词数和字符数
9.5 使用cut命令选取文本列
9.5.1 cut命令及其语法
9.5.2 选择指定的文本列
9.5.3 选择指定数量的字符
9.5.4 排除不包含列分隔符的行
9.6 使用paste命令拼接文本列
9.6.1 paste命令及其语法
9.6.2 自定义列分隔符
9.6.3 拼接指定的文本列
9.7 使用join命令联接文本列
9.7.1 join命令及其语法
9.7.2 指定联接关键字列
9.7.3 内联接文本文件
9.7.4 左联接文本文件
9.7.5 右联接文本文件
9.7.6 全联接文本文件
9.7.7 自定义输出列
9.8 使用tr命令替换文件内容
9.8.1 tr命令及其语法
9.8.2 去除重复出现的字符
9.8.3 删除空行
9.8.4 大小写转换
9.8.5 删除指定字符
9.9 小结
第10章 流编辑(教学视频:52分钟)
10.1 sed命令及其语法
10.1.1 sed命令以及语法
10.1.2 sed命令的工作方式
10.1.3 使用行号定位文本行
10.1.4 使用正则表达式定位文本行
10.2 sed命令的常用操作
10.2.1 sed编辑命令基本语法
10.2.2 选择文本
10.2.3 替换文本
10.2.4 删除文本
10.2.5 追加文本
10.2.6 插入文本
10.3 组合命令
10.3.1 使用-e选项执行多个子命令
10.3.2 使用分号执行多个子命令
10.3.3 对一个地址使用多个子命令
10.3.4 sed脚本文件
10.4 小结
第11章 文本处理利器awk命令(教学视频:78分钟)
11.1 awk入门
11.3 变量
11.5 函数
11.6 数组
11.7 流程控制
11.8 awk程序的格式化输出
11.9 awk的程序与Shell的交互
11.10 小结
第12章 文件的操作(教学视频:74分钟)
12.1 文件
12.2 查找文件
12.3 比较文件
12.4 文件描述符
12.5 重定向
12.6 小结
第13章 子Shell与进程处理(教学视频:49分钟)
13.1 子Shell
13.2 进程处理
13.3 小结
第3篇 Shell编程实战
第14章 Shell脚本调试技术(教学视频:33分钟)
14.1 Shell脚本中的常见错误
14.2 Shell脚本调试技术
14.3 小结
第15章 利用Shell脚本解决实际问题(教学视频:33分钟)
15.1 编写系统服务脚本
15.2 通过脚本管理Apache服务器日志
15.3 小结


【书摘与插画】


【免费在线读】

【前言】

随着互联网技术的发展,Linux已经逐步成为主流的服务器操作系统。在Linux系统中,Shell是用户与系统内核之间进行交互的接口,是整个Linux系统中非常重要的一个组成部分。Shell脚本编程成为一个优秀的系统管理员和Linux开发者必须掌握的技术之一。BashShell已经成为绝大部分Linux系统默认的Shell程序,本书旨在系统介绍Shell编程的相关知识和技巧。

  在Shell发展的几十年中,出现了许多介绍Shell编程的书籍。但是,大多数相关书籍的内容比较陈旧,其内容并没有随着技术的发展而得到补充。另外,许多书籍要么偏重理论,缺乏实践性;要么泛泛而论,缺乏深入的阐述。本书由有着十几年实践经验的一线技术员编写,以实用性为主旨。从基本的Shell编程环境的搭建和变量开始,一直到Shell脚本的调试技术,由浅入深,系统地介绍了Shell编程各个方面的知识点。后通过2个具体的综合实例,向读者介绍了如何使用Shell脚本来解决实际问题。

   关于“Linux典藏大系”

  “Linux典藏大系”是清华大学出版社自2010年1月以来陆续推出的一个图书系列,截止2013年,已经出版了10余个品种。该系列图书涵盖了Linux技术的方方面面,可以满足各个层次和各个领域的读者学习Linux技术的需求。该系列图书自出版以来获得了广大读者的好评,已经成为Linux图书市场上耀眼的明星品牌之一。其销量在同类图书中也名列前茅,其中一些图书还获得了“51CTO读书频道”颁发的“受读者喜爱的原创IT技术图书奖”。该系列图书在出版过程中也得到了国内Linux领域知名的技术社区ChinaUnix(简称CU)的大力支持和帮助,读者在CU社区中就图书的内容与活跃在CU社区中的Linux技术爱好者进行广泛交流,取得了良好的学习效果。

  本书有何特色

  1.视频讲解,高效学习

  为了帮助读者更加高效、直观地学习,作者为本书每章的重点内容专门录制了对应的配套多媒体教学视频。这些视频和本书实例源文件一起收录于配书光盘中。

  2.内容全面,系统性强

  本书非常全面地讨论了Shell编程各个方面,基本上涵盖了与Shell编程有关的所有重要的知识点。

  3.深入浅出,循序渐进

  对于绝大部分的初学者来说,Shell编程是一件非常困难的事情。为了能够适应初学者的学习习惯,本书从基本的基础知识开始讲起,一直到后的Shell脚本调试技术。在介绍某个知识点的时候,本书也尽量从简单的内容开始,逐步深入,避免使初学者产生畏惧的心理。

  4.由一线技术人员编写,重实践,实用性强

  本书以当前为流行的BashShell为基础,针对Shell编程中容易遇到的问题,依次展开论述。无论是初学者,还是具有一定经验的Linux开发和维护人员,都可以从中获得有用的知识。

  5.重点突出,脉络清晰

  对于比较重要的知识点,本书都进行了非常深入的探讨和代码演示,使读者不仅知其然,更要知其所以然,只有这样,才能达到融会贯通的境界。

  6.项目案例典型,实战行强,有较高的应用价值

  本书后一篇提供了2个综合案例。这些案例来源于作者所开发的实际项目,具有很高的应用价值和参考性。而且这些案例分别使用不同的框架组合实现,便于读者融会贯通地理解本书中所介绍的技术。这些案例稍加修改,便可用于实际项目开发中。

  本书内容及知识体系

  第1篇认识Shell编程(第1~2章)

  本篇主要介绍了Shell入门的基础和Shell编程环境的搭建。主要包括什么是Shell、为什么要学习Shell编程、简单的Shell程序的组成、如何在不同的操作系统上面搭建Shell编程环境,以及编辑器的选择等。

  第2篇Shell编程基础(第3~13章)

  本篇主要介绍了Shell编程所涉及的所有重要的知识点。主要包括Shell变量、条件测试和判断语句、循环结构、函数、数组、正则表达式、基本文本处理、流编辑、awk工具、文件操作,以及子Shell与进程处理等。

  第3篇Shell编程实战(第14~15章)

  本篇主要介绍了Shell脚本的调试技术及2个综合实例。主要包括Shell编程常见问题、4种常用的Shell脚本调试技术。综合实例包括系统服务脚本,以及Apache日志管理脚本的编写方法。

  适合阅读本书的读者

  *需要全面学习Shell编程技术的人员;

  *广大Linux程序员;

  *Linux系统管理员;

  *网站管理工程师;

  *希望提高Linux系统管理和开发水平的人员;

  *专业培训机构的学员;

  *Linux下的所有编程人员;

  *需要一本案头查询手册的人员。

  阅读本书的建议

  *没有Linux编程基础的读者,建议从第1章顺次阅读并演练每一个实例。

  *拥有一定Linux编程基础的读者,可以根据实际情况有重点地选择阅读各个章节及实例。

  *对于每一个知识点和实例,先自己思考一下实现的思路,然后再阅读,学习效果会更好。

  *Shell编程非常需要大量的实际操作,并且每项功能都会有多种实现方法。所以读者可以在阅读本书知识点以及实例的基础上,对本书的实例进行改编,以其他的方式实现实例的功能。这样理解起来就更加容易,也会更加深刻。

  您在阅读本书的过程中若有疑问,请发E-mail和我们联系。

  编著


返回顶部