人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

bash shell脚本编程经典实例*2二版

119.30
运费: ¥ 0.00-20.00
bash shell脚本编程经典实例*2二版  商品图0
bash shell脚本编程经典实例*2二版  商品缩略图0

商品详情

书名:bash shell脚本编程经典实例(*2版)  
定价:159.0  
ISBN:9787115553782  
作者:卡尔·阿尔宾等  
版次:第1版  
出版时间:2021-01  

内容提要:  
bash是Linux下常用的shell。用户可以通过bash,以命令的形式操控Linux系统。作为一本bash用法速查手册,本书主要内容包括:标准输出和输入以及执行命令;shell变量、shell逻辑和算术;中级shell工具和*级脚本;使用find、locate和slocate查找文件;处理日期和时间;编写安全的shell脚本;配置和自定义bash。*2版更新到Git,每个实例均包含一个或多个示例脚本,并讨论了解决方案的工作原理。  



作者简介:  
卡尔·阿尔宾(Carl Albing),计算机科学博士,美国海军学院计算机科学系客座教授,曾就职于各种规模的公司,拥有丰富的软件经验。 JP·沃森(JP Vossen),20世纪80年代初开始与计算机打交道,90年代末开始专注于信息安全工作,曾供稿于《信息安全杂志》和SearchSecurity网站等媒体。 【译者介绍】 门佳,GNU/Linux深度用户,喜欢溯本求源,挖掘技术背后的来龙去脉,对程序语言设计理论、编译技术、操作系统设计与实现、Web开发等领域均有涉猎,译著包括《TCP Sockets编程》《精通JavaScript(*2版)》《Linux命令行与shell脚本编程大全(第3版)》《Linux Shell脚本攻略》《shell脚本实战(*2版)》等。  

目录:  
前言 xv  
第 1 章 bash入门 1  
1.1 为什么是bash 2  
1.2 bash shell 3  
1.3 提示符揭秘 3  
1.4 显示当前位置 4  
1.5 查找并运行命令 5  
1.6 获取文件的相关信息 7  
1.7 显示当前目录下的所有隐藏(点号)文件 9  
1.8 使用shell引用 12  
1.9 使用或替换内建命令与外部命令 13  
1.10 确定是否处于交互模式 15  
1.11 将bash安装为默认shell 15  
1.12 持续更新bash 17  
1.13 获取Linux版的bash 18  
1.14 获取xBSD版的bash 19  
1.15 获取macOS版的bash 20  
1.16 获取Unix版的bash 20  
1.17 获取Windows版的bash 22  
1.18 不获取bash的情况下使用bash 24  
1.19 更多的bash文档 25  
第 2 章 标准输出 28  
2.1 输出到终端/终端窗口 29  
2.2 保留输出中的空白字符 30  
2.3 在输出中加入更多格式控制 31  
2.4 消除输出中的换行符 32  
2.5 保存命令输出 33  
2.6 将输出保存到其他文件 34  
2.7 保存ls命令的输出 34  
2.8 将输出和错误消息发送到不同文件 36  
2.9 将输出和错误消息发送到同一文件 36  
2.10 追加输出 38  
2.11 仅使用文件的起始或结尾部分 38  
2.12 跳过文件标题 39  
2.13 丢弃输出 40  
2.14 保存或分组多个命令的输出 40  
2.15 将输出作为输入,连接两个程序 42  
2.16 将输出作为输入,同时保留其副本 43  
2.17 以输出为参数连接两个程序 44  
2.18 在一行中多次重定向 46  
2.19 重定向不起作用时保存输出 47  
2.20 交换STDERR和STDOUT 49  
2.21 避免意外覆盖文件 50  
2.22 有意覆盖文件 51  
第 3 章 标准输入 53  
3.1 从文件获取输入 53  
3.2 将数据与脚本存放在一起 54  
3.3 避免here-document中的怪异行为 55  
3.4 缩进here-document 57  
3.5 获取用户输入 58  
3.6 获取yes或no 59  
3.7 选择选项列表 61  
3.8 提示输入密码 62  
第 4 章 执行命令 64  
4.1 运行程序 64  
4.2 依次执行多个命令 66  
4.3 同时执行多个命令 67  
4.4 了解命令是否成功运行 68  
4.5 仅当一个命令运行成功后才执行下一个命令 70  
4.6 减少if语句的数量 71  
4.7 无人值守下运行耗时作业 72  
4.8 出现故障时显示错误消息 73  
4.9 执行变量中的命令 74  
4.10 执行目录中的所有脚本 75  
第 5 章 脚本编程基础:shell变量 76  
5.1 记录脚本 77  
5.2 在shell脚本中嵌入文档 78  
5.3 提高脚本可读性 80  
5.4 将变量名与周围的文本分开 82  
5.5 导出变量 82  
5.6 查看所有的变量值 84  
5.7 在shell脚本中使用参数 85  
5.8 遍历传入脚本的参数 86  
5.9 处理包含空格的参数 87  
5.10 处理包含空格的参数列表 89  
5.11 统计参数数量 91  
5.12 丢弃参数 92  
5.13 获取默认值 94  
5.14 设置默认值 94  
5.15 使用空值作为有效的默认值 95  
5.16 不只使用字符串常量作为默认值 96  
5.17 对不存在的参数输出错误消息 97  
5.18 修改部分字符串 99  
5.19 获得某个数的*对值 101  
5.20 用bash实现basename 102  
5.21 用bash实现dirname 103  
5.22 选取CSV的替换值 103  
5.23 使用数组变量 104  
5.24 转换大小写 105  
5.25 转换为驼峰命名法 106  
第 6 章 shell逻辑与算术 107  
6.1 在shell脚本中执行算术操作 107  
6.2 条件分支 109  
6.3 测试文件特性 113  
6.4 测试多个特性 115  
6.5 测试字符串特性 116  
6.6 测试等量关系 117  
6.7 用模式匹配进行测试 119  
6.8 用正则表达式测试 120  
6.9 用重定向改变脚本行为 122  
6.10 循环一段时间 123  
6.11 在循环中使用read 125  
6.12 循环若干次 127  
6.13 在循环中使用浮点值 128  
6.14 多路分支 128  
6.15 解析命令行参数 130  
6.16 创建简单的菜单 133  
6.17 修改简单菜单的提示符 134  
6.18 创建简单的RPN计算器 136  
6.19 创建命令行计算器 138  
第 7 章 中级shell工具 140  
7.1 在文件中查找字符串 141  
7.2 只显示包含搜索结果的文件名 142  
7.3 了解搜索是否成功 143  
7.4 不区分大小写搜索 144  
7.5 在管道中进行搜索 145  
7.6 缩减搜索结果 146  
7.7 搜索更复杂的模式 147  
7.8 搜索SSN 148  
7.9 搜索压缩文件 149  
7.10 保留部分输出 150  
7.11 仅保留部分输入行 151  
7.12 颠倒每行的单词 152  
7.13 汇总数字列表 153  
7.14 用awk统计字符串出现次数 154  
7.15 用bash统计字符串出现次数 156  
7.16 用便捷的直方图展示数据 157  
7.17 用bash轻松实现直方图 159  
7.18 显示匹配短语之后的文本段落 160  
第 8 章 中级shell工具(续) 162  
8.1 输出排序 162  
8.2 数字排序 163  
8.3 IP 地址排序 164  
8.4 提取部分输出 167  
8.5 删除重复行 168  
8.6 压缩文件 169  
8.7 解压文件 171  
8.8 检查tar归档文件中不重复的目录 172  
8.9 转换字符 173  
8.10 将大写字母转换为小写字母 173  
8.11 将DOS文件转换为Linux格式 174  
8.12 删除智能引号 175  
8.13 统计文件的行数、单词数或字符数 176  
8.14 重新编排段落 177  
8.15 你不知道的less 178  
第 9 章 查找文件:find、locate、slocate 180  
9.1 查找所有的MP3文件 180  
9.2 处理文件名中的怪异字符 182  
9.3 提升已找到文件的处理速度 183  
9.4 跟随符号链接查找文件 183  
9.5 查找文件时不区分大小写 184  
9.6 按日期查找文件 185  
9.7 按类型查找文件 185  
9.8 按大小查找文件 186  
9.9 按内容查找文件 187  
9.10 快速查找现有文件及其内容 188  
9.11 在可能的位置上查找文件 189  
第 10 章 脚本编程的附加特性 193  
10.1 脚本“守护进程化” 193  
10.2 代码重用 194  
10.3 在脚本中使用配置文件 196  
10.4 定义函数 197  
10.5 使用函数:参数和返回值 198  
10.6 中断陷阱 200  
10.7 用别名重新定义命令 204  
10.8 避开别名和函数 206  
10.9 计算已过去的时间 207  
10.10 编写包装器 209  
第 11 章 处理日期和时间 214  
11.1 格式化日期显示 214  
11.2 提供默认日期 216  
11.3 自动生成日期范围 217  
11.4 将日期和时间转换为纪元秒 220  
11.5 将纪元秒转换为日期和时间 221  
11.6 用Perl获得昨天或明天的日期 222  
11.7 日期与时间运算 222  
11.8 处理时区、夏令时和闰年 224  
11.9 用date和cron在第N天运行脚本 225  
11.10 输出带有日期的日志 226  
第 12 章 帮助*终用户完成任务的shell脚本 228  
12.1 输出连字符 228  
12.2 浏览相册 230  
12.3 填装MP3播放器 235  
12.4 刻录CD 239  
12.5 比较文档 241  
第 13 章 与解析相关的任务 245  
13.1 解析shell脚本参数 245  
13.2 解析参数时使用自定义错误消息 248  
13.3 解析HTML 250  
13.4 将输出解析到数组 251  
13.5 用函数调用解析输出 252  
13.6 用read语句解析文本 254  
13.7 用read将输入解析到数组 255  
13.8 读取整个文件 255  
13.9 正确书写复数形式 257  
13.10 一次提取一个字符 258  
13.11 清理svn源代码树 259  
13.12 用MySQL设置数据库 260  
13.13 提取数据中的特定字段 261  
13.14 更新数据文件中的特定字段 264  
13.15 修剪空白字符 269  
13.16 压缩空白字符 269  
13.17 处理固定长度记录 271  
13.18 处理没有换行的文件 273  
13.19 将数据文件转换为CSV 275  
13.20 解析CSV数据文件 276  
第 14 章 编写安全的shell脚本 277  
14.1 避开常见的安全问题 278  
14.2 避免解释器欺骗 279  
14.3 设置安全的$PATH 280  
14.4 清除所有的别名 282  
14.5 清除命令散列 283  
14.6 防止核心转储 283  
14.7 设置安全的$IFS 284  
14.8 设置安全的umask 285  
14.9 在$PATH中查找人皆可写的目录 286  
14.10 将当前目录加入$PATH 288  
14.11 使用安全的临时文件 289  
14.12 验证输入 293  
14.13 设置权限 294  
14.14 密码被泄露到进程列表 296  
14.15 编写setuid或setgid脚本 297  
14.16 限制访客 298  
14.17 使用chroot囚牢 300  
14.18 以非root用户身份运行 301  
14.19 更安全地使用sudo 301  
14.20 在脚本中使用密码 303  
14.21 使用无密码的SSH 304  
14.22 限制SSH命令 311  
14.23 断开非活跃会话 314  
第 15 章 *级脚本编程 315  
15.1 以可移植的方式查找bash 316  
15.2 设置兼容POSIX工具的$PATH 317  
15.3 开发可移植的shell脚本 318  
15.4 用虚拟机测试脚本 320  
15.5 使用可移植的循环 321  
15.6 使用可移植的echo 323  
15.7 仅在必要时分割输出 325  
15.8 以十六进制形式查看输出 327  
15.9 使用bash的网络重定向 328  
15.10 查找自己的IP地址 329  
15.11 从另一台机器获取输入 333  
15.12 在脚本运行期间重定向输出 335  
15.13 解决“Argument list too long”错误 335  
15.14 向syslog记录脚本日志 337  
15.15 正确地使用logger 338  
15.16 在脚本中发送电子邮件 339  
15.17 用阶段自动化进程 343  
15.18 一心二用 345  
15.19 在多个主机上执行SSH命令 347  
第 16 章 bash的配置与自定义 349  
16.1 bash启动选项 349  
16.2 自定义提示符 350  
16.3 在程序运行前出现的提示符 357  
16.4 *久修改$PATH 359  
16.5 临时修改$PATH 360  
16.6 设置$CDPATH 364  
16.7 当找不到命令时 366  
16.8 缩短或修改命令名称 367  
16.9 调整shell行为及环境 368  
16.10 用.inputrc调整readline的行为 369  
16.11 通过添加~/bin来存放个人工具 370  
16.12 使用辅助提示符:$PS2、$PS3、$PS4 371  
16.13 在会话间同步shell历史记录 373  
16.14 设置shell的历史选项 374  
16.15 创建更好的cd命令 376  
16.16 一次性创建并切换到新目录 378  
16.17 直达底部 379  
16.18 用可装载的内建命令为bash添加新特性 380  
16.19 改善可编程补全 385  
16.20 正确使用初始化文件 389  
16.21 创建自包含的可移植rc文件 392  
16.22 自定义配置入门 394  
第 17 章 内务及管理任务 407  
17.1 批量重命名文件 407  
17.2 在Linux中使用GUN Texinfo和info 409  
17.3 批量解压ZIP文件 410  
17.4 用screen恢复断开的会话 411  
17.5 共享单个bash会话 413  
17.6 记录整个会话或批量作业 414  
17.7 注销时清除屏幕 415  
17.8 获取用于数据恢复的文件元数据 416  
17.9 为多个文件创建索引 417  
17.10 使用diff和patch 418  
17.11 统计文件间存在多少差异 421  
17.12 删除或重命名名称中包含特殊字符的文件 423  
17.13 将数据追加到文件开头 424  
17.14 就地编辑文件 427  
17.15 将sudo应用于一组命令 429  
17.16 查找仅出现在一个文件中的行 431  
17.17 保留*近的N个对象 433  
17.18 写入循环日志 436  
17.19 循环备份 438  
17.20 搜索不包含grep进程自身在内的ps输出 440  
17.21 确定某个进程是否正在运行 441  
17.22 为输出添加前缀或后缀 443  
17.23 对行进行编号 444  
17.24 生成序列 446  
17.25 模拟DOS的pause命令 448  
17.26 为数值添加逗号 449  
第 18 章 写得少,干得快 451  
18.1 在任意目录之间快速移动 451  
18.2 重复上一个命令 453  
18.3 执行类似命令 454  
18.4 快速替换 455  
18.5 参数重用 456  
18.6 名称补全 457  
18.7 安全第 一 458  
18.8 修改多个命令 459  
第 19 章 窍门与陷阱:新手常见错误 461  
19.1 忘记设置可执行权限 461  
19.2 修复“No such file or directory”错误 462  
19.3 忘记当前目录不在$PATH中 463  
19.4 将脚本命名为test 465  
19.5 试图修改已导出的变量 465  
19.6 赋值时忘记加引号 467  
19.7 忘记模式匹配的结果是按字母顺序排列的 468  
19.8 忘记管道会产生子shell 469  
19.9 使终端恢复正常 471  
19.10 用空变量删除文件 472  
19.11 printf的怪异行为 473  
19.12 测试bash脚本语法 475  
19.13 调试脚本 475  
19.14 使用函数时避免出现“command not found”错误 477  
19.15 混淆了shell通配符和正则表达式 478  
附录A 参考 481  
附录B bash自带的示例 513  
附录C 命令行处理 523  
附录D 修订控制 528  
附录E 从源代码构建bash 552  
关于作者 557  
关于封面 557  

人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信公众号认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

bash shell脚本编程经典实例*2二版

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:renyoushe
人民邮电出版社官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏