目录
第1章 从这里开始,起飞了 1
1.1 脚本文件的书写格式 1
1.2 脚本文件的各种执行方式 3
1.3 如何在脚本文件中实现数据的输入与输出 6
1.4 输入与输出的重定向 17
1.5 各种引号的正确使用姿势 24
1.6 千变万化的变量 28
1.7 数据过滤与正则表达式 33
1.8 各式各样的算术运算 40
第2章 人工智能,很人工、很智能的脚本 46
2.1 智能化脚本的基础之测试 46
2.2 字符串的判断与比较 47
2.3 整数的判断与比较 49
2.4 文件属性的判断与比较 51
2.5 探究[[]]和[]的区别 55
2.6 实战案例:系统性能监控脚本 60
2.7 实战案例:单分支if语句 62
2.8 实战案例:双分支if语句 68
2.9 实战案例:如何监控HTTP服务状态 72
2.10 实战案例:多分支if语句 81
2.11 实战案例:简单、高效的case语句 87
2.12 实战案例:编写Nginx启动脚本 92
2.13 揭秘模式匹配与通配符、扩展通配符 94
2.14 Shell小游戏之石头剪刀布 100
第3章 根本停不下来的循环和中断控制 104
3.1 玩转for循环语句 104
3.2 实战案例:猴子吃香蕉的问题 114
3.3 实战案例:进化版HTTP状态监控脚本 116
3.4 神奇的循环嵌套 117
3.5 非常重要的IFS 124
3.6 实战案例:while循环 130
3.7 Shell小游戏之猜随机数字 134
3.8 实战案例:如何通过read命令读取文件中的数据 136
3.9 until和select循环 140
3.10 中断与退出控制 143
3.11 Shell小游戏之机选双色球 149
第4章 请开始你的表演,数组、Subshell与函数 152
4.1 强悍的数组 152
4.2 实战案例:斐波那契数列 157
4.3 实战案例:网站日志分析脚本 159
4.4 常犯错误的SubShell 164
4.5 启动进程的若干种方式 172
4.6 非常实用的函数功能 176
4.7 变量的作用域与return返回值 179
4.8 实战案例:多进程的ping脚本 185
4.9 控制进程数量的核心技术——文件描述符和命名管道 187
4.10 实战案例:一键源码部署LNMP的脚本 197
4.11 递归函数 204
4.12 排序算法之冒泡排序 206
4.13 排序算法之快速排序 209
4.14 排序算法之插入排序 213
4.15 排序算法之计数排序 215
4.16 Shell小游戏之单词拼接puzzle 218
第5章 一大波脚本技巧正向你走来 221
5.1 Shell八大扩展功能之花括号 221
5.2 Shell八大扩展功能之波浪号 223
5.3 Shell八大扩展功能之变量替换 224
5.4 Shell八大扩展功能之命令替换 234
5.5 Shell八大扩展功能之算术替换 234
5.6 Shell八大扩展功能之进程替换 236
5.7 Shell八大扩展功能之单词切割 238
5.8 Shell八大扩展功能之路径替换 239
5.9 实战案例:生成随机密码的若干种方式 240
5.10 Shell解释器的属性与初始化命令行终端 247
5.11 trap信号捕获 257
5.12 实战案例:电子时钟 259
5.13 Shell小游戏之抓住小老鼠算你赢 263
5.14 实战案例:脚本排错技巧 267
5.15 实战案例:Shell版本的进度条功能 270
5.16 再谈参数传递之xargs 276
5.17 使用shift移动位置参数 280
5.18 实战案例:Nginx日志切割脚本 281
第6章 上古神兵利器sed 285
6.1 sed基本指令 285
6.2 sed高级指令 305
6.3 实战案例:自动化配置vsftpd脚本 318
6.4 实战案例:自动化配置DHCP脚本 325
6.5 实战案例:自动化克隆KVM虚拟机脚本 329
6.6 实战案例:通过libguestfs管理KVM虚拟机脚本 337
6.7 实战案例:自动化配置SSH安全策略脚本 343
6.8 实战案例:基于GRUB配置文件修改内核启动参数脚本 345
6.9 实战案例:网络爬虫脚本 348
6.10 Shell小游戏之点名抽奖器 354
第7章 不可思议的编程语言awk 356
7.1 awk基础语法 356
7.2 awk条件判断 374
7.3 awk数组与循环 379
7.4 awk函数 388
7.5 实战案例:awk版网站日志分析 398
7.6 实战案例:监控网络连接状态 403
7.7 实战案例:获取SSH暴力破解攻击黑名单列表 412
7.8 实战案例:性能监控脚本 418
7.9 实战案例:数据库监控脚本 420
7.10 实战案例:awk版网络爬虫 429
作者介绍
丁明一达内集团云计算教学研发总监、开源技术推广者;红帽认证架构师(RHCA)、红帽认证高级讲师(RHCI);曾任职于中国电信、鹏博士等多家IT企业,并创办多个企业,十余年IT行业经验;精通Linux系统、Shell脚本编程、各大云计算产品、Docker容器技术、分布式存储技术,拥有丰富的虚拟化技术使用经验,对企业集群存储环境及高性能、高可用架构有深入的研究,著有畅销图书《Linux运维之道》。
关联推荐
Linux运维、云计算行业相关人士