Bash Cookbook 中文版

作者
罗恩·布拉什(Ron Brash) [加]加内什·奈克(Ganesh Na
丛书名
出版社
人民邮电出版社
ISBN
9787115527011
简要
简介
内容简介书籍计算机书籍 Bash(Bourne-Again SHell)是为GNU计划编写的UNIX shell,现在是绝大多数Linux发行版和macOS X的默认shell。虽然各种操作系统的GUI界面已经非常完善,但是shell编程仍然起着不可忽视的作用。 本书将侧重点放在Ubuntu环境下的Bash用法上,通过8章内容,循序渐进地介绍了Bash脚本的编写技巧。本书涉及Bash相关的基础知识、文本与文件处理、理解并掌控文件系统等内容。 对Linux/UNIX系统管理员和运维人员来讲,shell也是他们每天都要打交道的一款功能强大的工具。因此,深入地了解和熟练地掌握shell编程,是每一个Linux/UNIX/OS X用户的必修功课之一。
目录
第 1章 Bash速成\t1


1.1 Bash和CLI基础知识入门\t2


1.2 基本变量的创建和使用\t6


1.3 Bash隐藏变量和保留字\t9


1.4 使用if、else、elseif进行条件


逻辑判断\t11


1.4.1 评估数值\t12


1.4.2 评估字符串\t13


1.4.3 嵌套if语句\t14


1.5 case/switch语句和循环结构\t14


1.5.1 基本的case语句\t15


1.5.2 基本循环\t16


1.6 使用函数和参数\t17


1.7 包含源文件\t19


1.8 检索返回码和输出\t20


1.9 使用管道连接多个命令以及输入/


输出重定向\t23


1.10 获取程序输入参数\t26


1.11 获取命令相关的额外信息\t28


1.12 小结\t29





第 2章 文本与文件处理\t30


2.1 简介\t30


2.2 基本的字符串和文件搜索\t32


2.2.1 准备工作\t32


2.2.2 实战演练\t33


2.2.3 工作原理\t34


2.3 使用通配符和正则表达式\t36


2.3.1 准备工作\t37


2.3.2 实战演练\t38


2.3.3 工作原理\t39


2.4 脚本中的数学运算\t43


2.4.1 准备工作\t44


2.4.2 实战演练\t45


2.4.3 工作原理\t47


2.5 用Bash提取/更改/排序/删除/


搜索字符串\t49


2.5.1 准备工作\t50


2.5.2 实战演练\t50


2.5.3 工作原理\t54


2.6 使用sed和awk删除/


替换子串\t57


2.6.1 准备工作\t57


2.6.2 实战演练\t58


2.6.3 工作原理\t60


2.7 使用echo和printf格式化数据/


输出\t62


2.7.1 准备工作\t63


2.7.2 实战演练\t63


2.7.3 工作原理\t65


2.8 脚本国际化\t66


2.8.1 准备工作\t67


2.8.2 实战演练\t68


2.8.3 工作原理\t70


2.9 根据文件内容统计并减少重复\t73


2.9.1 准备工作\t74


2.9.2 实战演练\t74


2.9.3 工作原理\t74


2.10 在条件逻辑中使用文件属性\t76


2.10.1 准备工作\t77


2.10.2 实战演练\t77


2.10.3 工作原理\t78


2.11 读取被分隔的数据并更改输出


格式\t81


2.11.1 准备工作\t82


2.11.2 实战演练\t83


2.11.3 工作原理\t84


第3章 精通文件系统\t86


3.1 简介\t86


3.2 多角度浏览文件—head、tail、


less和more\t87


3.2.1 准备工作\t87


3.2.2 实战演练\t87


3.2.3 工作原理\t88


3.3 按照名称或扩展名搜索文件\t90


3.3.1 准备工作\t92


3.3.2 实战演练\t92


3.3.3 工作原理\t93


3.4 用diff命令比较文件


差异并修补\t95


3.4.1 准备工作\t96


3.4.2 实战演练\t96


3.4.3 工作原理\t97


3.5 创建并有效地使用符号链接\t99


3.5.1 实战演练\t100


3.5.2 工作原理\t101


3.6 爬取文件系统并打印树\t102


3.6.1 准备工作\t102


3.6.2 实战演练\t102


3.6.3 工作原理\t104


3.7 查找并删除重复的文件或


\t104


3.7.1 准备工作\t105


3.7.2 实战演练\t106


3.7.3 工作原理\t107


3.8 在任意位置合并和切分文件\t108


3.8.1 准备工作\t109


3.8.2 实战演练\t109


3.8.3 工作原理\t111


3.9 生成各种大小的数据集和随机


文件\t112


3.9.1 准备工作\t113


3.9.2 实战演练\t113


3.9.3 工作原理\t115


第4章 像守护进程一样的脚本\t116


4.1 简介\t116


4.2 使用循环或递归持续运行


程序\t117


4.2.1 准备工作\t117


4.2.2 实战演练\t118


4.2.3 工作原理\t119


4.3 在注销后保持程序/脚本继续


运行\t120


4.3.1 准备工作\t120


4.3.2 实战演练\t121


4.3.3 工作原理\t122


4.4 调用特权命令\t123


4.4.1 准备工作\t124


4.4.2 实战演练\t125


4.4.3 工作原理\t126


4.5 净化用户输出并获得可复现的


结果\t126


4.5.1 准备工作\t127


4.5.2 实战演练\t127


4.5.3 工作原理\t130


4.6 使用select创建简单的多级


菜单\t131


4.6.1 准备工作\t131


4.6.2 实战演练\t132


4.6.3 工作原理\t133


4.7 生成并捕获信号\t133


4.7.1 准备工作\t134


4.7.2 实战演练\t134


4.7.3 工作原理\t135


4.8 在脚本中使用临时文件和锁


文件\t135


4.8.1 准备工作\t136


4.8.2 实战演练\t136


4.8.3 工作原理\t137


4.9 利用超时等待命令完成\t137


4.9.1 准备工作\t138


4.9.2 实战演练\t138


4.9.3 工作原理\t139


4.10 创建FIFO和并行进程\t141


4.10.1 准备工作\t141


4.10.2 实战演练\t141


4.10.3 工作原理\t142


4.11 在系统启动时执行脚本\t143


4.11.1 准备工作\t144


4.11.2 实战演练\t146


4.11.3 工作原理\t147


第5章 系统管理脚本\t148


5.1 简介\t148


5.2 收集和汇总系统信息\t149


5.2.1 准备工作\t149


5.2.2 实战演练\t149


5.2.3 工作原理\t150


5.3 收集网络信息和诊断网络


连通性\t152


5.3.1 准备工作\t152


5.3.2 实战演练\t153


5.3.3 工作原理\t153


5.4 配置基本的网络连接\t154


5.4.1 准备工作\t154


5.4.2 实战演练\t154


5.4.3 工作原理\t154


5.5 监视和文件\t155


5.5.1 准备工作\t155


5.5.2 实战演练\t155


5.5.3 工作原理\t155


5.6 文件的压缩和归档\t155


5.6.1 准备工作\t156


5.6.2 实战演练\t156


5.6.3 工作原理\t157


5.7 日志文件轮替\t157


5.7.1 准备工作\t158


5.7.2 实战演练\t158


5.7.3 工作原理\t159


5.8 使用iptables设置Linux


防火墙\t160


5.8.1 准备工作\t160


5.8.2 实战演练\t160


5.8.3 工作原理\t161


5.9 从远程或本地访问SQL


数据库\t161


5.9.1 准备工作\t161


5.9.2 实战演练\t161


5.9.3 工作原理\t163


5.10 创建SSH密钥,实现无密码


远程访问\t163


5.10.1 准备工作\t163


5.10.2 实战演练\t163


5.11 创建和配置用于任务调度的


cron作业\t164


5.11.1 实战演练\t164


5.11.2 工作原理\t165


5.12 系统化地创建用户和组\t166


5.12.1 实战演练\t166


5.12.2 工作原理\t166


第6章 高级用户专用脚本\t167


6.1 简介\t167


6.1.1 创建syslog条目并生成


警报\t168


6.1.2 实战演练\t168


6.1.3 工作原理\t169


6.2 使用dd备份和擦除磁盘及


分区\t169


6.2.1 准备工作\t169


6.2.2 实战演练\t169


6.2.3 工作原理\t170


6.3 在命令行中创建图形化界面\t170


6.3.1 准备工作\t170


6.3.2 实战演练\t170


6.3.3 工作原理\t171


6.4 检查文件完整性\t172


6.4.1 准备工作\t172


6.4.2 实战演练\t172


6.4.3 工作原理\t173


6.5 挂载网络文件系统\t174


6.5.1 准备工作\t174


6.5.2 实战演练\t174


6.5.3 工作原理\t174


6.6 在命令行中浏览Web页面\t175


6.6.1 准备工作\t175


6.6.2 实战演练\t175


6.6.3 工作原理\t175


6.7 捕获网络流量\t176


6.7.1 准备工作\t176


6.7.2 实战演练\t176


6.7.3 工作原理\t177


6.8 查找可执行文件的依赖关系\t177


6.8.1 准备工作\t177


6.8.2 实战演练\t177


6.8.3 工作原理\t178


6.9 获取不同时区的时间\t178


6.9.1 准备工作\t178


6.9.2 实战演练\t178


6.9.3 工作原理\t179


6.10 在脚本中加密/解密文件\t179


6.10.1 准备工作\t179


6.10.2 实战演练\t179


6.10.3 工作原理\t179


第7章 Bash致胜之道\t180


7.1 简介\t180


7.2 创建一个简易实用的HTTP


服务器\t181


7.2.1 准备工作\t181


7.2.2 实战演练\t181


7.2.3 工作原理\t182


7.3 解析RSS feed\t182


7.3.1 准备工作\t182


7.3.2 实战演练\t182


7.3.3 工作原理\t182


7.4 爬取Web页面\t182


7.4.1 准备工作\t183


7.4.2 实战演练\t183


7.4.3 工作原理\t183


7.5 制作简单的IRC聊天机器人\t183


7.5.1 准备工作\t183


7.5.2 实战演练\t183


7.5.3 工作原理\t184


7.6 阻止SSH访问已失效的IP


地址\t184


7.6.1 准备工作\t184


7.6.2 实战演练\t185


7.6.3 工作原理\t185


7.7 使用Bash播放和管理音频


文件\t185


7.7.1 准备工作\t185


7.7.2 实战演练\t186


7.7.3 工作原理\t186


7.8 搭建简单的NAT和DMZ


防火墙\t186


7.8.1 准备工作\t186


7.8.2 实战演练\t186


7.8.3 工作原理\t187


7.9 解析GitHub项目并生成


报告\t187


7.9.1 准备工作\t187


7.9.2 实战演练\t187


7.9.3 工作原理\t188


7.10 创建初级的远程增量\t188


7.10.1 准备工作\t188


7.10.2 实战演练\t188


7.10.3 工作原理\t188


7.11 使用Bash脚本监视udev


输入\t189


7.11.1 准备工作\t189


7.11.2 实战演练\t189


7.11.3 工作原理\t189


7.12 使用Bash监视并优化电池


容量\t190


7.12.1 准备工作\t190


7.12.2 实战演练\t190


7.12.3 工作原理\t191


7.13 使用chroot和受限shell保护


脚本安全\t191


7.13.1 准备工作\t191


7.13.2 实战演练\t191


7.13.3 工作原理\t192


第8章 高级脚本技术\t193


8.1 简介\t193


8.2 计算脚本的运行时间\t194


8.2.1 准备工作\t194


8.2.2 实战演练\t194


8.2.3 工作原理\t194


8.3 编写单行条件语句和循环


语句\t194


8.3.1 准备工作\t194


8.3.2 实战演练\t194


8.3.3 工作原理\t195


8.4 避免出现“command not found”


警告/错误\t195


8.4.1 准备工作\t195


8.4.2 实战演练\t195


8.4.3 工作原理\t196


8.5 创建可与脚本配合使用的配置


文件\t196


8.5.1 准备工作\t197


8.5.2 实战演练\t197


8.5.3 工作原理\t197


8.6 更改命令行配色\t198


8.6.1 准备工作\t198


8.6.2 实战演练\t198


8.6.3 工作原理\t199


8.7 创建命令别名\t200


8.7.1 准备工作\t200


8.7.2 实战演练\t200


8.7.3 工作原理\t200


8.8 向原始终端设备回显输出\t200


8.8.1 准备工作\t201


8.8.2 实战演练\t201


8.8.3 工作原理\t201


8.9 为Bash脚本创建简单的前端


GUI\t201


8.9.1 准备工作\t202


8.9.2 实战演练\t202


8.9.3 工作原理\t204


8.10 编译并安装自制的Bash shell


脚本\t204


8.10.1 准备工作\t204


8.10.2 实战演练\t204


8.10.3 工作原理\t205


8.11 录制终端会话\t205


8.11.1 准备工作\t205


8.11.2 实战演练\t205


8.11.3 工作原理\t205


8.12 编写高质量脚本\t205


8.12.1 准备工作\t206


8.12.2 实战演练\t206


8.12.3 工作原理\t206





有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4