展开全部

主编推荐语

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

内容简介

本书可分为五大部分:第一部分为第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知识。

目录

  • 版权信息
  • 前言
  • 第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重要命令汇总
展开全部

评分及书评

4.7
3个评分
  • 用户头像
    给这本书评了
    5.0

    互联网 + 的时代下企业的网站流量呈爆炸式增长,如果你是运维人员,很可能要面对几十台、几百台、上千台甚至上万台的服务器设备,而对于企业来说,如何提高 IT 运维的管理效率、降低成本也成了最大问题。要解决这个问题,必须在 Linux 运维工作中,做好运维服务的标准化、规范化、流程化和自动化,而这里面的前三项其实是在为最后一项 “IT 运维自动化” 做铺垫。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。