当前: 首页 - 图书专区 - 跟老男孩学Linux运维:Shell编程实战
跟老男孩学Linux运维:Shell编程实战


  在线购买
老男孩 著
978-7-111-55607-7
89.00
417
2017年01月16日

计算机 > 操作系统 > Linux

420
简体中文
16

店面
Linux/Unix技术丛书








全书分为17章,第一部分前6章先介绍到底如何才能学好Shell编程,学好Shell编程需要具备哪些知识和条件,接下来从认识Shell开始,到Shell的开发习惯,变量及特殊变量知识及变量的数值计算,每个知识点都结合了大量的应用实践确保读者彻底学会并能够运用。
第二部分7-13章着重讲解企业中Shell编程的核心重点技术,条件判断与比较,if条件句,case语句,函数,for循环语句,while循环语句,条件与循环的控制,数组,同样,此部分给出了超大量的专业规范企业实战案例,确保读者彻底掌握Shell编程的企业级实战,而不仅仅像学习其他作者书籍一样,只会了语法,或者看会了写不出来。
第三部分 14-16章着重讲解了在Shell脚本编程中的调试技巧方法,Shell开发环境的配置和优化,Shell跳板机的企业案例实战,最后,给出数十个专业水准的企业级Shell案例脚本,让读者在学会开发Shell脚本的同时,也实现让自己一出手就是专业和规范的!
封底:
IT运维从手工作坊到脚本化、工具化再到系统化,最后从系统化到平台化、自动化、智能化,不断地演进,然而无论互联网自动化运维处于哪个阶段,Shell脚本和Python编程语言一直是工程师必备的技能。
老男孩具有丰富的一线实战经验,同时又有多年的培训经验支撑,领悟出一套独特的教学方法,已让诸多人受益。本书是“跟老男孩学Linux运维”系列中的一本,内容从实践的角度出发,涵盖初、中、高三个等级,是值得广大工程师阅读的好书。
——刘宇,@守住每一天,西山居运维架构师,
《Puppet实战》作者、《Puppet实战手册》与《Python进阶》的译者之一
这本书是老男孩老师继《跟老男孩学Linux运维:Web集群实战》之后的又一力作,学习Shell编程并不是轻而易举的事情,玩转编程更不是一朝一夕之功。这本书不论是对初学者还是提高者,都是最经典、最接地气的企业实践结晶,它不但讲解了编程技术,同时还会告诉你面对问题时应该如何权衡,非常适合对Linux感兴趣的伙伴阅读。对于初学者,这本书由浅入深的内容,可让你在学习Shell编程的征程上少走弯路;对于提高者来说,它将会系统地指导你更好地使用Shell来满足企业自动化运维的需求。相信在阅读本书之后你会对自动化运维有更新的认识,如果看书感觉不过瘾,你还可以亲身去体验一下老师的现场课程,一定会感受到他与众不同的气场,以及精彩的运维技术与企业实用的运维思想。
——肖海波 阿里云资深工程师
第一次听老男孩老师讲课是几年前,机缘巧合,当时授课的内容就是Shell编程,对于我来说,那次课带给我的只能用“冲击+惊喜”来形容。在我的学习经历中,遇到的教授知识的人很多,传授思想的人却很少,而既有思想又贴近实践的就更少了,至于除此之外还把课程讲的“你很难听不懂且欢乐不断”的就更是少之又少,而这些难得的授课品质完完全全地在那次课上展现出来了,现在想起来仍觉得当时很幸运,也是从那时起,我开始了追随老男孩老师的步伐。
如今,老男孩老师结合他多年的企业运维实践与多年的教学经验,将Shell的知识体系及相应运维思想总结成书,让人欣喜不已,其中还涉及很多生产上的常用案例,以及网上资料或其他书中提及甚少的内容。我相信无论是初学者还是有几年工作经验的人,经过认真研读和学习后,一定会有巨大的收获!
——犹金毅 教师研修网运维主管

前勒口:
老男孩的运维思想

相信自己,勤奋努力,不断总结!——老男孩老师个人成功逆袭的12字箴言。
当你还在做运维的时候,请以运维经理或总监的视角,看待当下的运维工作,思想高了,采取的行动就会不一样,最终的结果可能就是让自己从众多的竞争对手中胜出!
成功,不取决于你认识多少人,而是取决于有多少人认识你!做运维也是如此,很多时候,运维人员在工作中都需要其他人或部门配合,当更多人的认识你、认可你时,事情就容易得到解决!
要想成为真正牛气的人,就不能仅仅会运维和编码,而是要努力成为制定标准(规则)、流程、规范、方案的人(比如,架构师或总监)。

后勒口:
作者简介
老男孩,北京老男孩IT教育创始人,畅销IT图书作者,51CTO金牌讲师及长期战略合作专家,大规模网站集群实战运维专家及教学培训专家,擅长大规模集群架构部署调优、虚拟化、云计算、大数据、MySQL数据库、Shell编程等技术,是IT界顶尖的Linux集群架构实战专家,著有《跟老男孩学Linux运维:Web集群实战》、《跟老男孩学Linux运维:Shell编程实战》等书。
老男孩也是国内IT教育实战心理学运维思想体系第一人,其技术和运维思想影响了无数IT界的同伴。所教学生(一个班的学生人数曾经爆满至150人)平均就业工资及后期发展速度连续多年在国内同行业中处于领先地位。
老男孩授课注重理论结合企业真实场景,认真负责,思维严谨,重视对学生的运维思想、思维、规范、习惯、总结、表达沟通等学习能力的培养,累计受益人员数万。
为什么要写这本书
目前全球正处于互联网+的时代,越来越多的传统企业都在通过互联网提供产品和服务,比如,互联网+教育、互联网+金融、互联网+电商、互联网+出租车、互联网+保险等,可以看到,几乎所有的产品、服务都能在网上找到。而支撑互联网的幕后英雄其实就是Linux(包括移动互联网在内),掌握Linux运维技术已经成为每一个IT技术人员的必备技能!
互联网+的时代下企业的网站流量呈爆炸式增长,如果你是运维人员,很可能要面对几十台、几百台、上千台甚至上万台的服务器设备,而对于企业来说,如何提高IT运维的管理效率、降低成本也成了最大问题。要解决这个问题,必须在Linux运维工作中,做好运维服务的标准化、规范化、流程化和自动化,而这里面的前三项其实是在为最后一项“IT运维自动化”做铺垫。
要实现IT运维自动化就需要学会编程语言,目前Linux系统下最流行的运维自动化语言就是Shell和Python(Python相关图书,作者正在写作中)。在这两者之中,Shell又几乎是所有IT企业都必须使用的运维自动化编程语言,特别是在运维工作中的服务监控、业务快速部署、服务启动停止、数据备份及处理、日志分析等环节里,Shell必不可少。当然Python也是一门很好的自动化编程语言,它和Shell是互补的,Shell更适合系统底层,而Python则更适合处理复杂的业务逻辑,以及开发复杂的运维软件工具,实现通过Web访问等。
在长期的运维工作以及深度教学中,老男孩发现很多Linux入门人员很害怕Shell编程,觉得Shell不好掌握,甚至是已经工作的企业运维人员对Shell编程也是一知半解,不能熟练运用。而市面上的Shell图书大多如出一辙,理论多,实战少。因此在众多学员和网友的关注和提议下,老男孩决定写一本比较与众不同的偏重实战的Shell编程书籍,相信本书一定会让众多读者受益,提升个人在企业工作中的效率,达到加薪升职的目的。
本书是老男孩Linux运维实战系列的第二本书,第一本是《跟老男孩学习Linux运维:Web集群实践》(已由机械工业出版社出版),第三本是《跟老男孩学习Linux运维:三剑客命令实战》(预计书名),此书将在几个月后和大家见面。更多Linux运维实战系列的图书在持续写作中,敬请期待。
读者对象
热衷于IT运维自动化的人员
Linux系统管理员和运维工程师
互联网网站开发及数据库管理人员
网络管理员和项目实施工程师
Linux相关售前售后技术工程师
开设Linux相关课程的大中专院校
对Linux及Shell编程感兴趣的人员
如何阅读本书
本书是一本较完整的Shell编程实战型图书,并非大而全,但处处可以体现实战二字,大多内容取于企业实战,并结合老男孩十几年的运维工作和教学工作进行了梳理。本书从脉络上可分为五大部分:
第一部分为Shell编程基础篇(第1章~第4章),着重介绍新手如何学好Shell编程,涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量的深入实践。读者学完此部分,将会具备一个学好Shell编程的坚实基础。
第二部分为初中级的实战知识和技能篇(第5章~第8章),着重讲解变量的多种数值运算、条件测试与比较、if条件判断语句、Shell函数等相关的知识,并给出了企业实战技巧和案例。本部分是学好Shell编程的重中之重,读者必须掌握。
第三部分为Shell中高级实战知识和技能篇(第9章~第13章),着重讲解case条件语句、while循环和until型循环、for循环和select循环、条件与循环控制及状态返回值、Shell数组等知识,以及相应的实战技巧和案例。本部分同样是学好Shell编程的重中之重,读者必须掌握。
第四部分为高效Shell编程必备知识篇(第14章~第16章),着重讲解Shell脚本开发规范与编码习惯、Shell脚本的调试知识和技巧、Shell脚本开发环境的配置调整和优化等。
第五部分为Shell特殊应用及企业面试、实战案例篇(第17章~第19章),着重讲解Linux信号及trap命令的企业应用实践、Expect自动化交互式程序的应用实践,以及能体现全书所讲技术的面试题和企业实战案例,让真正的Shell全自动化运维成为可能。
最后一章补充讲解了大家易感困惑的子Shell知识及应用实践内容。
勘误和支持
由于作者所授的培训课程排期很紧,课程较多,全书内容基本上都是利用早晨和夜里的时间完成写作的。限于作者的水平和能力,加之编写的时间仓促,书中难免有疏漏和不当之处,恳请读者批评指正。你可以将书中的错误发布在专门为本书准备的博客地址评论处(http://oldboy.blog.51cto.com/2561410/1865956或微博http://weibo.com/oldboy8)。同时不管你遇到何种问题,都可以加入我为本书提供的QQ交流群204041129(验证信息:Shell书籍),我将尽力为你提供最满意的解答。书中所需的工具及源文件也将发布在的博客网站上(书中大部分章节结尾都给出了相关网址及二维码),我也会将相应功能的更新及时发布出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱oldboy@oldboyedu.com,很期待能够听到你们的真挚反馈。
致谢
感谢犹金毅、何清等为本书贡献第20章的重要底稿内容及对本书的写作给予的支持。
感谢孔令飞为本书第19章贡献有趣的girlLove案例内容及对本书的写作给予的支持。
感谢老男孩IT教育的每一位在校学员,是你们自觉努力的学习,使得我有较多的时间持续写作,特别是运维30-31期150位学员参与了本书的校稿。感谢你们对老男孩老师的支持。
感谢老男孩IT教育里每一个班级的助教、班主任、班长及班干部,感谢你们替我分担老男孩IT教育众多学员的答疑、辅导、批改作业及班级管理工作。
感谢我的同事——老男孩教育Python学院的Alex老师、武老师,云计算与自动化架构班的赵班长老师,Linux+Python高薪运维班的李泳谊、张耀等老师,以及其他未提及名字的众多老师,正是你们辛勤努力的工作,让我得以有时间完成此书。
一如既往地感谢中网志腾的郭威总经理和数码创天的王斐总经理及梁露女士,感谢你们提供优质的DELL服务器资源,使得本书得以高效顺利地完成!
感谢森华易腾的陆锦云女士及其同事,感谢你们提供的优质IDC机房带宽支持,使得本书得以顺利完成!
感谢机械工业出版社华章公司的编辑杨绣国,感谢你的支持、包容和鼓励,正是你的鼓励和帮助引导我顺利完成全部书稿。
感谢没有提及名字的所有学生、网友以及关注老男孩的每一位友人、朋友。
最后要感谢我的父母、家人,正是你们的支持和体谅,让我有无限信心和力量去写作,并最终完成此书!
谨以此书,献给支持老男孩IT教育的每一位朋友、学员及众多热爱Linux运维技术的朋友。

老男孩老师
北京,2016年11月
前  言
第1章 如何才能学好Shell编程 / 1
1.1 为什么要学习Shell编程 / 1
1.2 学好Shell编程所需的基础知识 / 1
1.3 如何才能学好Shell编程之“老鸟”经验谈 / 3
1.4 学完本书后可以达到何种Shell编程高度 / 5
第2章 Shell脚本初步入门 / 6
2.1 什么是Shell / 6
2.2 什么是Shell脚本 / 7
2.3 Shell脚本在Linux运维工作中的地位 / 8
2.4 脚本语言的种类 / 9
2.4.1 Shell脚本语言的种类 / 9
2.4.2 其他常用的脚本语言种类 / 10
2.4.3 Shell脚本语言的优势 / 11
2.5 常用操作系统默认的Shell / 11
2.6 Shell脚本的建立和执行 / 12
2.6.1 Shell脚本的建立 / 12
2.6.2 Shell脚本的执行 / 15
2.6.3 Shell脚本开发的基本规范及习惯 / 19
第3章 Shell变量的核心基础知识与实践 / 22
3.1 什么是Shell变量 / 22
3.2 环境变量 / 23
3.2.1 自定义环境变量 / 26
3.2.2 显示与取消环境变量 / 28
3.2.3 环境变量初始化与对应文件的生效顺序 / 30
3.3 普通变量 / 31
3.3.1 定义本地变量 / 31
3.3.2 变量定义及变量输出说明 / 35
3.4 变量定义技巧总结 / 40
第4章 Shell变量知识进阶与实践 / 41
4.1 Shell中特殊且重要的变量 / 41
4.1.1 Shell中的特殊位置参数变量 / 41
4.1.2 Shell进程中的特殊状态变量 / 47
4.2 bash Shell内置变量命令 / 52
4.3 Shell变量子串知识及实践 / 55
4.3.1 Shell变量子串介绍 / 55
4.3.2 Shell变量子串的实践 / 56
4.3.3 变量子串的生产场景应用案例 / 59
4.4 Shell特殊扩展变量的知识与实践 / 60
4.4.1 Shell特殊扩展变量介绍 / 60
4.4.2 Shell特殊扩展变量的实践 / 61
4.4.3 Shell特殊扩展变量的生产场景应用案例 / 63
第5章 变量的数值计算实践 / 65
5.1 算术运算符 / 65
5.2 双小括号“(())”数值运算命令 / 66
5.2.1 双小括号“(())”数值运算的基础语法 / 66
5.2.2 双小括号“(())”数值运算实践 / 66
5.3 let运算命令的用法 / 73
5.4 expr命令的用法 / 75
5.4.1 expr命令的基本用法示例 / 75
5.4.2 expr的企业级实战案例详解 / 76
5.5 bc命令的用法 / 81
5.6 awk实现计算 / 83
5.7 declare(同typeset)命令的用法 / 83
5.8 $[]符号的运算示例 / 83
5.9 基于Shell变量输入read命令的运算实践 / 84
5.9.1 read命令基础 / 84
5.9.2 以read命令读入及传参的综合企业案例 / 87
第6章 Shell脚本的条件测试与比较 / 92
6.1 Shell脚本的条件测试 / 92
6.1.1 条件测试方法综述 / 92
6.1.2 test条件测试的简单语法及示例 / 93
6.1.3 [](中括号)条件测试语法及示例 / 94
6.1.4 [[]]条件测试语法及示例 / 95
6.2 文件测试表达式 / 97
6.2.1 文件测试表达式的用法 / 97
6.2.2 文件测试表达式举例 / 97
6.2.3 特殊条件测试表达式案例 / 101
6.3 字符串测试表达式 / 102
6.3.1 字符串测试操作符 / 102
6.3.2 字符串测试生产案例 / 104
6.4 整数二元比较操作符 / 105
6.4.1 整数二元比较操作符介绍 / 105
6.4.2 整数变量测试实践示例 / 107
6.5 逻辑操作符 / 108
6.5.1 逻辑操作符介绍 / 108
6.5.2 逻辑操作符实践示例 / 110
6.5.3 逻辑操作符企业案例 / 112
6.6 测试表达式test、[]、[[]]、(())的区别总结 / 120
第7章 if条件语句的知识与实践 / 121
7.1 if条件语句 / 121
7.1.1 if条件语句的语法 / 121
7.1.2 if条件语句多种条件表达式语法 / 125
7.1.3 单分支if条件语句实践 / 126
7.1.4 if条件语句的深入实践 / 130
7.2 if条件语句企业案例精讲 / 132
7.2.1 监控Web和数据库的企业案例 / 132
7.2.2 比较大小的经典拓展案例 / 142
7.2.3 判断字符串是否为数字的多种思路 / 143
7.2.4 判断字符串长度是否为0的多种思路 / 145
7.2.5 更多的生产场景实战案例 / 145
第8章 Shell函数的知识与实践 / 151
8.1 Shell函数的概念与作用介绍 / 151
8.2 Shell函数的语法 / 152
8.3 Shell函数的执行 / 152
8.4 Shell函数的基础实践 / 153
8.5 利用Shell函数开发企业级URL检测脚本 / 155
8.6 利用Shell函数开发一键优化系统脚本 / 158
8.7 利用Shell函数开发rsync服务启动脚本 / 166
第9章 case条件语句的应用实践 / 169
9.1 case条件语句的语法 / 169
9.2 case条件语句实践 / 171
9.3 实践:给输出的字符串加颜色 / 176
9.3.1 给输出的字符串加颜色的基础知识 / 176
9.3.2 结合case语句给输出的字符串加颜色 / 177
9.3.3 给输出的字符串加背景颜色 / 180
9.4 case语句企业级生产案例 / 181
9.5 case条件语句的Linux系统脚本范例 / 187
9.6 本章小结 / 191
第10章 while循环和until循环的应用实践 / 192
10.1 当型和直到型循环语法 / 192
10.1.1 while循环语句 / 192
10.1.2 until循环语句 / 193
10.2 当型和直到型循环的基本范例 / 194
10.3 让Shell脚本在后台运行的知识 / 195
10.4 企业生产实战:while循环语句实践 / 206
10.5 while循环按行读文件的方式总结 / 210
10.6 企业级生产高级实战案例 / 211
10.7 本章小结 / 215
第11章 for和select循环语句的应用实践 / 217
11.1 for循环语法结构 / 217
11.2 for循环语句的基础实践 / 219
11.3 for循环语句的企业级案例 / 222
11.4 for循环语句的企业高级实战案例 / 230
11.5 Linux系统产生随机数的6种方法 / 239
11.6 select循环语句介绍及语法 / 241
11.7 select循环语句案例 / 242
第12章 循环控制及状态返回值的应用实践 / 249
12.1 break、continue、exit、return的区别和对比 / 249
12.2 break、continue、exit功能执行流程图 / 249
12.3 break、continue、exit、return命令的基础示例 / 251
12.4 循环控制及状态返回值的企业级案例 / 253
第13章 Shell数组的应用实践 / 260
13.1 Shell数组介绍 / 260
13.1.1 为什么会产生Shell数组 / 260
13.1.2 什么是Shell数组 / 260
13.2 Shell数组的定义与增删改查 / 261
13.2.1 Shell数组的定义 / 261
13.2.2 Shell数组的打印及输出 / 262
13.3 Shell数组脚本开发实践 / 265
13.4 Shell数组的重要命令 / 267
13.5 Shell数组相关面试题及高级实战案例 / 268
13.6 合格运维人员必会的脚本列表 / 277
第14章 Shell脚本开发规范 / 279
14.1 Shell脚本基本规范 / 279
14.2 Shell脚本变量命名及引用变量规范 / 281
14.3 Shell函数的命名及函数定义规范 / 282
14.4 Shell脚本(模块)高级命名规范 / 283
14.5 Shell脚本的代码风格 / 283
14.5.1 代码框架 / 283
14.5.2 缩进规范 / 284
14.6 Shell脚本的变量及文件检查规范 / 285
第15章 Shell脚本的调试 / 286
15.1 常见Shell脚本错误范例 / 286
15.1.1 if条件语句缺少结尾关键字 / 286
15.1.2 循环语句缺少关键字 / 287
15.1.3 成对的符号落了单 / 287
15.1.4 中括号两端没空格 / 288
15.1.5 Shell语法调试小结 / 289
15.2 Shell脚本调试技巧 / 289
15.2.1 使用dos2unix命令处理在Windows下开发的脚本 / 289
15.2.2 使用echo命令调试 / 290
15.2.3 使用bash命令参数调试 / 291
15.2.4 使用set命令调试部分脚本内容 / 294
15.2.5 其他调试Shell脚本的工具 / 296
15.3 本章小结 / 296
第16章 Shell脚本开发环境的配置和优化实践 / 297
16.1 使用vim而不是vi编辑器 / 297
16.2 配置文件.vimrc的重要参数介绍 / 298
16.3 让配置文件.vimrc生效 / 304
16.4 使用vim编辑器进行编码测试 / 304
16.4.1 代码自动缩进功能 / 304
16.4.2 代码颜色高亮显示功能说明 / 304
16.5 vim配置文件的自动增加版权功能 / 305
16.6 vim配置文件的代码折叠功能 / 305
16.7 vim编辑器批量缩进及缩进调整技巧 / 305
16.8 其他vim配置文件功能说明 / 307
16.9 vim编辑器常用操作技巧 / 307
第17章 Linux信号及trap命令的企业应用实践 / 310
17.1 信号知识 / 310
17.1.1 信号介绍 / 310
17.1.2 信号列表 / 310
17.2 使用trap控制信号 / 311
17.3 Linux信号及trap命令的生产应用案例 / 313
第18章 Expect自动化交互式程序应用实践 / 317
18.1 Expect介绍 / 317
18.1.1 什么是Expect / 317
18.1.2 为什么要使用Expect / 317
18.2 安装Expect软件 / 318
18.3 小试牛刀:实现Expect自动交互功能 / 318
18.4 Expect程序自动交互的重要命令及实践 / 319
18.4.1 spawn命令 / 320
18.4.2 expect命令 / 320
18.4.3 send命令 / 323
18.4.4 exp_continue命令 / 324
18.4.5 send_user命令 / 324
18.4.6 exit命令 / 325
18.4.7 Expect常用命令总结 / 325
18.5 Expect程序变量 / 326
18.5.1 普通变量 / 326
18.5.2 特殊参数变量 / 326
18.6 Expect程序中的if条件语句 / 327
18.7 Expect中的关键字 / 329
18.7.1 eof关键字 / 329
18.7.2 timeout关键字 / 329
18.8 企业生产场景下的Expect案例 / 330
18.8.1 批量执行命令 / 330
18.8.2 批量发送文件 / 332
18.8.3 批量执行Shell脚本 / 334
18.8.4 自动化部署SSH密钥认证+ansible的项目实战 / 337
18.9 本章小节 / 339
第19章 企业Shell面试题及企业运维实战案例 / 340
19.1 企业Shell面试题案例 / 340
19.1.1 面试题1:批量生成随机字符文件名 / 340
19.1.2 面试题2:批量改名 / 341
19.1.3 面试题3:批量创建特殊要求用户 / 342
19.1.4 面试题4:扫描网络内存活主机 / 342
19.1.5 面试题5:解决DOS攻击 / 343
19.1.6 面试题6:MySQL数据库分库备份 / 344
19.1.7 面试题7:MySQL数据库分库分表备份 / 344
19.1.8 面试题8:筛选符合长度的单词 / 344
19.1.9 面试题9:MySQL主从复制异常监控 / 344
19.1.10 面试题10:比较整数大小 / 344
19.1.11 面试题11:菜单自动化软件部署 / 344
19.1.12 面试题12:Web及MySQL服务异常监测 / 345
19.1.13 面试题13:监控Memcached缓存服务 / 345
19.1.14 面试题14:开发脚本实现入侵检测与报警 / 346
19.1.15 面试题15:开发Rsync服务启动脚本 / 349
19.1.16 面试题16:开发MySQL多实例启动脚本 / 349
19.1.17 面试题17:开发学生实践抓阄脚本 / 351
19.1.18 面试题18:破解RANDOM随机数 / 353
19.1.19 面试题19:批量检查多个网站地址是否正常 / 354
19.1.20 面试题20:单词及字母去重排序 / 355
19.1.21 面试题21:开发脚本管理服务端LVS / 357
19.1.22 面试题22:LVS节点健康检查及管理脚本 / 359
19.1.23 面试题23:LVS客户端配置脚本 / 360
19.1.24 面试题24:模拟keepalived软件高可用 / 361
19.1.25 面试题25:编写正(或长)方形图形 / 362
19.1.26 面试题26:编写等腰三角形图形字符 / 363
19.1.27 面试题27:编写直角梯形图形字符 / 364
19.1.28 面试题28:51CTO博文爬虫脚本 / 365
19.1.29 面试题29:Nginx负载节点状态监测 / 366
19.2 Shell经典程序案例:哄老婆和女孩的神器 / 369
19.2.1 功能简介 / 369
19.2.2 使用方法 / 369
19.2.3 girlLove工具内容模板 / 370
19.2.4 girlLove工具的Shell源码注释 / 371
19.2.5 girlLove最终结果展示 / 376
第20章 子Shell及Shell嵌套模式知识应用 / 377
20.1 子Shell的知识及实践说明 / 377
20.1.1 什么是子Shell / 377
20.1.2 子Shell的常见产生途径及特点 / 378
20.2 子Shell在企业应用中的“坑” / 383
20.2.1 使用管道与while循环时遭遇的“坑” / 383
20.2.2 解决while循环遭遇的“坑” / 385
20.3 Shell调用脚本的模式说明 / 386
20.3.1 fork模式调用脚本知识 / 386
21.3.2 exec模式调用脚本 / 386
21.3.3 source模式调用脚本 / 387
20.4 Shell调用脚本的3种不同实践方法 / 387
20.4.1 开发测试不同模式区别的Shell脚本 / 387
20.4.2 对比fork模式与source模式的区别 / 390
20.4.3 对比exec模式与source模式的区别 / 391
20.5 Shell调用脚本3种不同模式的应用场景 / 391
附 录 Linux重要命令汇总 / 393
计算机\程序设计
读者书评
发表评论



高级搜索
Docker技术入门与实战 第2版
Linux内核API完全参考手册 第2版
Linux运维最佳实践


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才