跟老男孩学Linux运维:Shell编程实战

跟老男孩学Linux运维:Shell编程实战

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

资深运维架构实战专家及教育培训界专家十多年的运维实战经验总结.

内容简介

本书可分为五大部分:第一部分为第1章~第4章,此部分着重介绍新手如何学好Shell编程。涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量的深入实践。第二部分为第5章~第8章,着重讲解变量的多种数值运算、条件测试与比较、if条件判断语句、Shell函数等相关的知识。第三部分为第9章~第13章,着重讲解case条件语句、while循环和until型循环、for循环和select循环、条件与循环控制及程序返回值、Shell数组等知识。第四部分为第14章~第16章,着重讲解Shell脚本开发规范与编码习惯、Shell脚本的调试知识和技巧、Shell脚本开发环境的配置调整和优化等。第五部分为第17章~第20章,着重讲解Linux信号及trap命令的企业应用实践、Expect自动化交互式程序的应用实践、贯穿全书技术的面试题和企业实战案例,以及子Shell知识。

作者简介

作者老男孩,北京老男孩教育创始人,畅销IT图书作者,51CTO金牌讲师及长期战略合作专家,大规模网站集群实战运维架构专家及教学培训专家,擅长大规模集群架构部署调优、虚拟化、云计算、大数据、MySQL数据库、Shell编程等技术,是IT界的Linux集群架构实战专家,著有《跟老男孩学Linux运维:Web集群实战》《跟老男孩学Linux运维:Shell编程实战》《跟老男孩学Linux运维:核心基础篇》等书。

章节目录

版权信息

前言

第1章 如何才能学好Shell编程

1.1 为什么要学习Shell编程

1.2 学好Shell编程所需的基础知识

1.3 如何才能学好Shell编程之“老鸟”经验谈

1.4 学完本书后可以达到何种Shell编程高度

第2章 Shell脚本初步入门

2.1 什么是Shell

2.2 什么是Shell脚本

2.3 Shell脚本在Linux运维工作中的地位

2.4 脚本语言的种类

2.4.1 Shell脚本语言的种类

2.4.2 其他常用的脚本语言种类

2.4.3 Shell脚本语言的优势

2.5 常用操作系统默认的Shell

2.6 Shell脚本的建立和执行

2.6.1 Shell脚本的建立

2.6.2 Shell脚本的执行

2.6.3 Shell脚本开发的基本规范及习惯

第3章 Shell变量的核心基础知识与实践

3.1 什么是Shell变量

3.2 环境变量

3.2.1 自定义环境变量

3.2.2 显示与取消环境变量

3.2.3 环境变量初始化与对应文件的生效顺序

3.3 普通变量

3.3.1 定义本地变量

3.3.2 变量定义及变量输出说明

3.4 变量定义技巧总结

第4章 Shell变量知识进阶与实践

4.1 Shell中特殊且重要的变量

4.1.1 Shell中的特殊位置参数变量

4.1.2 Shell进程中的特殊状态变量

4.2 bash Shell内置变量命令

4.3 Shell变量子串知识及实践

4.3.1 Shell变量子串介绍

4.3.2 Shell变量子串的实践

4.3.3 变量子串的生产场景应用案例

4.4 Shell特殊扩展变量的知识与实践

4.4.1 Shell特殊扩展变量介绍

4.4.2 Shell特殊扩展变量的实践

4.4.3 Shell特殊扩展变量的生产场景应用案例

第5章 变量的数值计算实践

5.1 算术运算符

5.2 双小括号“(())”数值运算命令

5.2.1 双小括号“(())”数值运算的基础语法

5.2.2 双小括号“(())”数值运算实践

5.3 let运算命令的用法

5.4 expr命令的用法

5.4.1 expr命令的基本用法示例

5.4.2 expr的企业级实战案例详解

5.5 bc命令的用法

5.6 awk实现计算

5.7 declare(同typeset)命令的用法

5.8 $[]符号的运算示例

5.9 基于Shell变量输入read命令的运算实践

5.9.1 read命令基础

5.9.2 以read命令读入及传参的综合企业案例

第6章 Shell脚本的条件测试与比较

6.1 Shell脚本的条件测试

6.1.1 条件测试方法综述

6.1.2 test条件测试的简单语法及示例

6.1.3 [](中括号)条件测试语法及示例

6.1.4 [[]]条件测试语法及示例

6.2 文件测试表达式

6.2.1 文件测试表达式的用法

6.2.2 文件测试表达式举例

6.2.3 特殊条件测试表达式案例

6.3 字符串测试表达式

6.3.1 字符串测试操作符

6.3.2 字符串测试生产案例

6.4 整数二元比较操作符

6.4.1 整数二元比较操作符介绍

6.4.2 整数变量测试实践示例

6.5 逻辑操作符

6.5.1 逻辑操作符介绍

6.5.2 逻辑操作符实践示例

6.5.3 逻辑操作符企业案例

6.6 测试表达式test、[]、[[]]、(())的区别总结

第7章 if条件语句的知识与实践

7.1 if条件语句

7.1.1 if条件语句的语法

7.1.2 if条件语句多种条件表达式语法

7.1.3 单分支if条件语句实践

7.1.4 if条件语句的深入实践

7.2 if条件语句企业案例精讲

7.2.1 监控Web和数据库的企业案例

7.2.2 比较大小的经典拓展案例

7.2.3 判断字符串是否为数字的多种思路

7.2.4 判断字符串长度是否为0的多种思路

7.2.5 更多的生产场景实战案例

第8章 Shell函数的知识与实践

8.1 Shell函数的概念与作用介绍

8.2 Shell函数的语法

8.3 Shell函数的执行

8.4 Shell函数的基础实践

8.5 利用Shell函数开发企业级URL检测脚本

8.6 利用Shell函数开发一键优化系统脚本

8.7 利用Shell函数开发rsync服务启动脚本

第9章 case条件语句的应用实践

9.1 case条件语句的语法

9.2 case条件语句实践

9.3 实践:给输出的字符串加颜色

9.3.1 给输出的字符串加颜色的基础知识

9.3.2 结合case语句给输出的字符串加颜色

9.3.3 给输出的字符串加背景颜色

9.4 case语句企业级生产案例

9.5 case条件语句的Linux系统脚本范例

9.6 本章小结

第10章 while循环和until循环的应用实践

10.1 当型和直到型循环语法

10.1.1 while循环语句

10.1.2 until循环语句

10.2 当型和直到型循环的基本范例

10.3 让Shell脚本在后台运行的知识

10.4 企业生产实战:while循环语句实践

10.5 while循环按行读文件的方式总结

10.6 企业级生产高级实战案例

10.7 本章小结

第11章 for和select循环语句的应用实践

11.1 for循环语法结构

11.2 for循环语句的基础实践

11.3 for循环语句的企业级案例

11.4 for循环语句的企业高级实战案例

11.5 Linux系统产生随机数的6种方法

11.6 select循环语句介绍及语法

11.7 select循环语句案例

第12章 循环控制及状态返回值的应用实践

12.1 break、continue、exit、return的区别和对比

12.2 break、continue、exit功能执行流程图

12.3 break、continue、exit、return命令的基础示例

12.4 循环控制及状态返回值的企业级案例

第13章 Shell数组的应用实践

13.1 Shell数组介绍

13.1.1 为什么会产生Shell数组

13.1.2 什么是Shell数组

13.2 Shell数组的定义与增删改查

13.2.1 Shell数组的定义

13.2.2 Shell数组的打印及输出

13.3 Shell数组脚本开发实践

13.4 Shell数组的重要命令

13.5 Shell数组相关面试题及高级实战案例

13.6 合格运维人员必会的脚本列表

第14章 Shell脚本开发规范

14.1 Shell脚本基本规范

14.2 Shell脚本变量命名及引用变量规范

14.3 Shell函数的命名及函数定义规范

14.4 Shell脚本(模块)高级命名规范

14.5 Shell脚本的代码风格

14.5.1 代码框架

14.5.2 缩进规范

14.6 Shell脚本的变量及文件检查规范

第15章 Shell脚本的调试

15.1 常见Shell脚本错误范例

15.1.1 if条件语句缺少结尾关键字

15.1.2 循环语句缺少关键字

15.1.3 成对的符号落了单

15.1.4 中括号两端没空格

15.1.5 Shell语法调试小结

15.2 Shell脚本调试技巧

15.2.1 使用dos2unix命令处理在Windows下开发的脚本

15.2.2 使用echo命令调试

15.2.3 使用bash命令参数调试

15.2.4 使用set命令调试部分脚本内容

15.2.5 其他调试Shell脚本的工具

15.3 本章小结

第16章 Shell脚本开发环境的配置和优化实践

16.1 使用vim而不是vi编辑器

16.2 配置文件.vimrc的重要参数介绍

16.3 让配置文件.vimrc生效

16.4 使用vim编辑器进行编码测试

16.4.1 代码自动缩进功能

16.4.2 代码颜色高亮显示功能说明

16.5 vim配置文件的自动增加版权功能

16.6 vim配置文件的代码折叠功能

16.7 vim编辑器批量缩进及缩进调整技巧

16.8 其他vim配置文件功能说明

16.9 vim编辑器常用操作技巧

第17章 Linux信号及trap命令的企业应用实践

17.1 信号知识

17.1.1 信号介绍

17.1.2 信号列表

17.2 使用trap控制信号

17.3 Linux信号及trap命令的生产应用案例

第18章 Expect自动化交互式程序应用实践

18.1 Expect介绍

18.1.1 什么是Expect

18.1.2 为什么要使用Expect

18.2 安装Expect软件

18.3 小试牛刀:实现Expect自动交互功能

18.4 Expect程序自动交互的重要命令及实践

18.4.1 spawn命令

18.4.2 expect命令

18.4.3 send命令

18.4.4 exp_continue命令

18.4.5 send_user命令

18.4.6 exit命令

18.4.7 Expect常用命令总结

18.5 Expect程序变量

18.5.1 普通变量

18.5.2 特殊参数变量

18.6 Expect程序中的if条件语句

18.7 Expect中的关键字

18.7.1 eof关键字

18.7.2 timeout关键字

18.8 企业生产场景下的Expect案例

18.8.1 批量执行命令

18.8.2 批量发送文件

18.8.3 批量执行Shell脚本

18.8.4 自动化部署SSH密钥认证+ansible的项目实战

18.9 本章小节

第19章 企业Shell面试题及企业运维实战案例

19.1 企业Shell面试题案例

19.1.1 面试题1:批量生成随机字符文件名

19.1.2 面试题2:批量改名

19.1.3 面试题3:批量创建特殊要求用户

19.1.4 面试题4:扫描网络内存活主机

19.1.5 面试题5:解决DOS攻击

19.1.6 面试题6:MySQL数据库分库备份

19.1.7 面试题7:MySQL数据库分库分表备份

19.1.8 面试题8:筛选符合长度的单词

19.1.9 面试题9:MySQL主从复制异常监控

19.1.10 面试题10:比较整数大小

19.1.11 面试题11:菜单自动化软件部署

19.1.12 面试题12:Web及MySQL服务异常监测

19.1.13 面试题13:监控Memcached缓存服务

19.1.14 面试题14:开发脚本实现入侵检测与报警

19.1.15 面试题15:开发Rsync服务启动脚本

19.1.16 面试题16:开发MySQL多实例启动脚本

19.1.17 面试题17:开发学生实践抓阄脚本

19.1.18 面试题18:破解RANDOM随机数

19.1.19 面试题19:批量检查多个网站地址是否正常

19.1.20 面试题20:单词及字母去重排序

19.1.21 面试题21:开发脚本管理服务端LVS

19.1.22 面试题22:LVS节点健康检查及管理脚本

19.1.23 面试题23:LVS客户端配置脚本

19.1.24 面试题24:模拟keepalived软件高可用

19.1.25 面试题25:编写正(或长)方形图形

19.1.26 面试题26:编写等腰三角形图形字符

19.1.27 面试题27:编写直角梯形图形字符

19.1.28 面试题28:51CTO博文爬虫脚本

19.1.29 面试题29:Nginx负载节点状态监测

19.2 Shell经典程序案例:哄老婆和女孩的神器

19.2.1 功能简介

19.2.2 使用方法

19.2.3 girlLove工具内容模板

19.2.4 girlLove工具的Shell源码注释

19.2.5 girlLove最终结果展示

第20章 子Shell及Shell嵌套模式知识应用

20.1 子Shell的知识及实践说明

20.1.1 什么是子Shell

20.1.2 子Shell的常见产生途径及特点

20.2 子Shell在企业应用中的“坑”

20.2.1 使用管道与while循环时遭遇的“坑”

20.2.2 解决while循环遭遇的“坑”

20.3 Shell调用脚本的模式说明

20.3.1 fork模式调用脚本知识

20.3.2 exec模式调用脚本

20.3.3 source模式调用脚本

20.4 Shell调用脚本的3种不同实践方法

20.4.1 开发测试不同模式区别的Shell脚本

20.4.2 对比fork模式与source模式的区别

20.4.3 对比exec模式与source模式的区别

20.5 Shell调用脚本3种不同模式的应用场景

附录 Linux重要命令汇总

跟老男孩学Linux运维:Shell编程实战是2017年由机械工业出版社华章分社出版,作者老男孩。

得书感谢您对《跟老男孩学Linux运维:Shell编程实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
跟阿铭学Linux(第4版) 电子书
一部让你轻松入门Linux的学习教程。
人民邮电出版社Shell编程 电子书
从基础到精通全面介绍Linux Shell编程 畅销不衰的Linux经典入门图书 适用于各种常见版本的Linux Shell Linux管理人员的参考手册 丰富典型的实操案例 全程录像的视频讲解光盘
大数据定义智能运维 电子书
运维数据治理开山之作,企业基础平台数据资源建设必备图书。
Linux就该这么学 电子书
本书基于RHEL 7系统编写,面向零基础读者,从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。
Linux虚拟化数据中心实战 电子书
本书共8章,采用循序渐进的方式,帮助读者掌握Linux虚拟化架构的部署和使用,包括开源虚拟化平台介绍,实验环境搭建,部署使用KVM虚拟化,部署使用oVirt平台、OpenStack、Docker和Hadoop,以及认识SDN架构等内容。本书以实战操作为主,理论讲解为辅,通过讲解搭建各种物理环境的方法,详细介绍在生产环境中如何使用Linux部署虚拟化数据中心,可以迅速提高读者的实际动手能力和操作水平