《跟老男孩学Linux运维:Shell编程实战.高清》

资深运维架构实战专家及教育培训界*专家十多年的运维实战经验总结,全面系统地讲解运维工作中Shell编程所需的知识点和Shell编程的各种企业级案例。

《跟老男孩学Linux运维:Shell编程实战.高清》

 

目录
前言 
第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章 forselect循环语句的应用实践 / 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 breakcontinueexitreturn的区别和对比 / 249 
    12.2 breakcontinueexit功能执行流程图 / 249 
    12.3 breakcontinueexitreturn命令的基础示例 / 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

获取方法:

获取密码:关注下方公众号,发送“24795

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/53775.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论