书籍详情

Bash Cookbook 中文版

Bash Cookbook 中文版

作者:[加] 罗恩·布拉什(Ron Brash) 著,王林生 译

出版社:人民邮电出版社

出版时间:2020-03-01

ISBN:9787115527011

定价:¥59.00

购买这本书可以去
内容简介
  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用户的必修功课之一。
作者简介
  罗恩·布拉什(Ron Brash)是一家公司的CTO和联合创始人。他创立的公司是一家成功的技术咨询公司,提供了众多领域的服务,不过主要集中在自由开源软件(Free Open Source Software,FOSS)和Linux方面。7年多来,罗恩一直从事嵌入式系统的研究,为工控系统和数据采集与监控系统(Supervisory Control And Data Acquisition,SCADA)网络提供了安全性和网络连通性,在这些系统之上运行的都是经过优化的嵌入式Linux。罗恩会定期参加FOSS和社区活动,并在恰当的时机反馈意见,除此之外,他还举办小型研讨会,因为他非常乐于分享知识。加内什·奈克(Ganesh Naik)同时身兼作者、顾问以及嵌入式Android、嵌入式Linux、物联网和ML相关产品开发的企业培训师。他在IT领域拥有20多年的经验和项目成就。曾在印度空间研究组织(Indian Space Research Organization)、英特尔、通用电气、三星、摩托罗拉、槟城技能开发中心(Penang Skills Development Center)以及新加坡和印度的多家公司担任企业培训师。他创办了一家名为Levana Technologies的公司,并从事咨询和培训活动。
目录
第 1章 Bash速成 1
1.1 Bash和CLI基础知识入门 2
1.2 基本变量的创建和使用 6
1.3 Bash隐藏变量和保留字 9
1.4 使用if、else、elseif进行条件
逻辑判断 11
1.4.1 评估数值 12
1.4.2 评估字符串 13
1.4.3 嵌套if语句 14
1.5 case/switch语句和循环结构 14
1.5.1 基本的case语句 15
1.5.2 基本循环 16
1.6 使用函数和参数 17
1.7 包含源文件 19
1.8 检索返回码和输出 20
1.9 使用管道连接多个命令以及输入/
输出重定向 23
1.10 获取程序输入参数 26
1.11 获取命令相关的额外信息 28
1.12 小结 29
第 2章 文本与文件处理 30
2.1 简介 30
2.2 基本的字符串和文件搜索 32
2.2.1 准备工作 32
2.2.2 实战演练 33
2.2.3 工作原理 34
2.3 使用通配符和正则表达式 36
2.3.1 准备工作 37
2.3.2 实战演练 38
2.3.3 工作原理 39
2.4 脚本中的数学运算 43
2.4.1 准备工作 44
2.4.2 实战演练 45
2.4.3 工作原理 47
2.5 用Bash提取/更改/排序/删除/
搜索字符串 49
2.5.1 准备工作 50
2.5.2 实战演练 50
2.5.3 工作原理 54
2.6 使用sed和awk删除/
替换子串 57
2.6.1 准备工作 57
2.6.2 实战演练 58
2.6.3 工作原理 60
2.7 使用echo和printf格式化数据/
输出 62
2.7.1 准备工作 63
2.7.2 实战演练 63
2.7.3 工作原理 65
2.8 脚本国际化 66
2.8.1 准备工作 67
2.8.2 实战演练 68
2.8.3 工作原理 70
2.9 根据文件内容统计并减少重复 73
2.9.1 准备工作 74
2.9.2 实战演练 74
2.9.3 工作原理 74
2.10 在条件逻辑中使用文件属性 76
2.10.1 准备工作 77
2.10.2 实战演练 77
2.10.3 工作原理 78
2.11 读取被分隔的数据并更改输出
格式 81
2.11.1 准备工作 82
2.11.2 实战演练 83
2.11.3 工作原理 84
第3章 精通文件系统 86
3.1 简介 86
3.2 多角度浏览文件—head、tail、
less和more 87
3.2.1 准备工作 87
3.2.2 实战演练 87
3.2.3 工作原理 88
3.3 按照名称或扩展名搜索文件 90
3.3.1 准备工作 92
3.3.2 实战演练 92
3.3.3 工作原理 93
3.4 用diff命令比较文件
差异并修补 95
3.4.1 准备工作 96
3.4.2 实战演练 96
3.4.3 工作原理 97
3.5 创建并有效地使用符号链接 99
3.5.1 实战演练 100
3.5.2 工作原理 101
3.6 爬取文件系统并打印目录树 102
3.6.1 准备工作 102
3.6.2 实战演练 102
3.6.3 工作原理 104
3.7 查找并删除重复的文件或
目录 104
3.7.1 准备工作 105
3.7.2 实战演练 106
3.7.3 工作原理 107
3.8 在任意位置合并和切分文件 108
3.8.1 准备工作 109
3.8.2 实战演练 109
3.8.3 工作原理 111
3.9 生成各种大小的数据集和随机
文件 112
3.9.1 准备工作 113
3.9.2 实战演练 113
3.9.3 工作原理 115
第4章 像守护进程一样的脚本 116
4.1 简介 116
4.2 使用循环或递归持续运行
程序 117
4.2.1 准备工作 117
4.2.2 实战演练 118
4.2.3 工作原理 119
4.3 在注销后保持程序/脚本继续
运行 120
4.3.1 准备工作 120
4.3.2 实战演练 121
4.3.3 工作原理 122
4.4 调用特权命令 123
4.4.1 准备工作 124
4.4.2 实战演练 125
4.4.3 工作原理 126
4.5 净化用户输出并获得可复现的
结果 126
4.5.1 准备工作 127
4.5.2 实战演练 127
4.5.3 工作原理 130
4.6 使用select创建简单的多级
菜单 131
4.6.1 准备工作 131
4.6.2 实战演练 132
4.6.3 工作原理 133
4.7 生成并捕获信号 133
4.7.1 准备工作 134
4.7.2 实战演练 134
4.7.3 工作原理 135
4.8 在脚本中使用临时文件和锁
文件 135
4.8.1 准备工作 136
4.8.2 实战演练 136
4.8.3 工作原理 137
4.9 利用超时等待命令完成 137
4.9.1 准备工作 138
4.9.2 实战演练 138
4.9.3 工作原理 139
4.10 创建FIFO和并行进程 141
4.10.1 准备工作 141
4.10.2 实战演练 141
4.10.3 工作原理 142
4.11 在系统启动时执行脚本 143
4.11.1 准备工作 144
4.11.2 实战演练 146
4.11.3 工作原理 147
第5章 系统管理脚本 148
5.1 简介 148
5.2 收集和汇总系统信息 149
5.2.1 准备工作 149
5.2.2 实战演练 149
5.2.3 工作原理 150
5.3 收集网络信息和诊断网络
连通性 152
5.3.1 准备工作 152
5.3.2 实战演练 153
5.3.3 工作原理 153
5.4 配置基本的网络连接 154
5.4.1 准备工作 154
5.4.2 实战演练 154
5.4.3 工作原理 154
5.5 监视目录和文件 155
5.5.1 准备工作 155
5.5.2 实战演练 155
5.5.3 工作原理 155
5.6 文件的压缩和归档 155
5.6.1 准备工作 156
5.6.2 实战演练 156
5.6.3 工作原理 157
5.7 日志文件轮替 157
5.7.1 准备工作 158
5.7.2 实战演练 158
5.7.3 工作原理 159
5.8 使用iptables设置Linux
防火墙 160
5.8.1 准备工作 160
5.8.2 实战演练 160
5.8.3 工作原理 161
5.9 从远程或本地访问SQL
数据库 161
5.9.1 准备工作 161
5.9.2 实战演练 161
5.9.3 工作原理 163
5.10 创建SSH密钥,实现无密码
远程访问 163
5.10.1 准备工作 163
5.10.2 实战演练 163
5.11 创建和配置用于任务调度的
cron作业 164
5.11.1 实战演练 164
5.11.2 工作原理 165
5.12 系统化地创建用户和组 166
5.12.1 实战演练 166
5.12.2 工作原理 166
第6章 高级用户专用脚本 167
6.1 简介 167
6.1.1 创建syslog条目并生成
警报 168
6.1.2 实战演练 168
6.1.3 工作原理 169
6.2 使用dd备份和擦除磁盘及
分区 169
6.2.1 准备工作 169
6.2.2 实战演练 169
6.2.3 工作原理 170
6.3 在命令行中创建图形化界面 170
6.3.1 准备工作 170
6.3.2 实战演练 170
6.3.3 工作原理 171
6.4 检查文件完整性 172
6.4.1 准备工作 172
6.4.2 实战演练 172
6.4.3 工作原理 173
6.5 挂载网络文件系统 174
6.5.1 准备工作 174
6.5.2 实战演练 174
6.5.3 工作原理 174
6.6 在命令行中浏览Web页面 175
6.6.1 准备工作 175
6.6.2 实战演练 175
6.6.3 工作原理 175
6.7 捕获网络流量 176
6.7.1 准备工作 176
6.7.2 实战演练 176
6.7.3 工作原理 177
6.8 查找可执行文件的依赖关系 177
6.8.1 准备工作 177
6.8.2 实战演练 177
6.8.3 工作原理 178
6.9 获取不同时区的时间 178
6.9.1 准备工作 178
6.9.2 实战演练 178
6.9.3 工作原理 179
6.10 在脚本中加密/解密文件 179
6.10.1 准备工作 179
6.10.2 实战演练 179
6.10.3 工作原理 179
第7章 Bash致胜之道 180
7.1 简介 180
7.2 创建一个简易实用的HTTP
服务器 181
7.2.1 准备工作 181
7.2.2 实战演练 181
7.2.3 工作原理 182
7.3 解析RSS feed 182
7.3.1 准备工作 182
7.3.2 实战演练 182
7.3.3 工作原理 182
7.4 爬取Web页面 182
7.4.1 准备工作 183
7.4.2 实战演练 183
7.4.3 工作原理 183
7.5 制作简单的IRC聊天机器人 183
7.5.1 准备工作 183
7.5.2 实战演练 183
7.5.3 工作原理 184
7.6 阻止SSH访问已失效的IP
地址 184
7.6.1 准备工作 184
7.6.2 实战演练 185
7.6.3 工作原理 185
7.7 使用Bash播放和管理音频
文件 185
7.7.1 准备工作 185
7.7.2 实战演练 186
7.7.3 工作原理 186
7.8 搭建简单的NAT和DMZ
防火墙 186
7.8.1 准备工作 186
7.8.2 实战演练 186
7.8.3 工作原理 187
7.9 解析GitHub项目并生成
报告 187
7.9.1 准备工作 187
7.9.2 实战演练 187
7.9.3 工作原理 188
7.10 创建初级的远程增量 188
7.10.1 准备工作 188
7.10.2 实战演练 188
7.10.3 工作原理 188
7.11 使用Bash脚本监视udev
输入 189
7.11.1 准备工作 189
7.11.2 实战演练 189
7.11.3 工作原理 189
7.12 使用Bash监视并优化电池
容量 190
7.12.1 准备工作 190
7.12.2 实战演练 190
7.12.3 工作原理 191
7.13 使用chroot和受限shell保护
脚本安全 191
7.13.1 准备工作 191
7.13.2 实战演练 191
7.13.3 工作原理 192
第8章 高级脚本技术 193
8.1 简介 193
8.2 计算脚本的运行时间 194
8.2.1 准备工作 194
8.2.2 实战演练 194
8.2.3 工作原理 194
8.3 编写单行条件语句和循环
语句 194
8.3.1 准备工作 194
8.3.2 实战演练 194
8.3.3 工作原理 195
8.4 避免出现“command not found”
警告/错误 195
8.4.1 准备工作 195
8.4.2 实战演练 195
8.4.3 工作原理 196
8.5 创建可与脚本配合使用的配置
文件 196
8.5.1 准备工作 197
8.5.2 实战演练 197
8.5.3 工作原理 197
8.6 更改命令行配色 198
8.6.1 准备工作 198
8.6.2 实战演练 198
8.6.3 工作原理 199
8.7 创建命令别名 200
8.7.1 准备工作 200
8.7.2 实战演练 200
8.7.3 工作原理 200
8.8 向原始终端设备回显输出 200
8.8.1 准备工作 201
8.8.2 实战演练 201
8.8.3 工作原理 201
8.9 为Bash脚本创建简单的前端
GUI 201
8.9.1 准备工作 202
8.9.2 实战演练 202
8.9.3 工作原理 204
8.10 编译并安装自制的Bash shell
脚本 204
8.10.1 准备工作 204
8.10.2 实战演练 204
8.10.3 工作原理 205
8.11 录制终端会话 205
8.11.1 准备工作 205
8.11.2 实战演练 205
8.11.3 工作原理 205
8.12 编写高质量脚本 205
8.12.1 准备工作 206
8.12.2 实战演练 206
8.12.3 工作原理 206
猜您喜欢

读书导航