展开全部

主编推荐语

Linux下常用bash手册:输入输出、变量、逻辑、脚本,查找文件、时间处理、安全编写、定制。

内容简介

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

目录

  • 版权信息
  • O'Reilly Media, Inc. 介绍
  • 业界评论
  • 前言
  • 目标读者
  • 关于本书
  • GNU软件
  • 关于代码示例
  • 无谓的cat
  • 关于Perl
  • 更多资源
  • 排版约定
  • 使用示例代码
  • O'Reilly在线学习平台(O'Reilly Online Learning)
  • 联系我们
  • 致谢
  • 审稿人
  • O'Reilly
  • 作者的话
  • 更多信息
  • 第1章 bash入门
  • 1.1 为什么是bash
  • 1.2 bash shell
  • 1.3 提示符揭秘
  • 1.3.1 问题
  • 1.3.2 解决方案
  • 1.3.3 讨论
  • 1.3.4 参考
  • 1.4 显示当前位置
  • 1.4.1 问题
  • 1.4.2 解决方案
  • 1.4.3 讨论
  • 1.4.4 参考
  • 1.5 查找并运行命令
  • 1.5.1 问题
  • 1.5.2 解决方案
  • 1.5.3 讨论
  • 1.5.4 参考
  • 1.6 获取文件的相关信息
  • 1.6.1 问题
  • 1.6.2 解决方案
  • 1.6.3 讨论
  • 1.6.4 参考
  • 1.7 显示当前目录下的所有隐藏(点号)文件
  • 1.7.1 问题
  • 1.7.2 解决方案
  • 1.7.3 讨论
  • 1.7.4 参考
  • 1.8 使用shell引用
  • 1.8.1 问题
  • 1.8.2 解决方案
  • 1.8.3 讨论
  • 1.8.4 参考
  • 1.9 使用或替换内建命令与外部命令
  • 1.9.1 问题
  • 1.9.2 解决方案
  • 1.9.3 讨论
  • 1.9.4 参考
  • 1.10 确定是否处于交互模式
  • 1.10.1 问题
  • 1.10.2 解决方案
  • 1.10.3 讨论
  • 1.10.4 参考
  • 1.11 将bash安装为默认shell
  • 1.11.1 问题
  • 1.11.2 解决方案
  • 1.11.3 讨论
  • 1.11.4 参考
  • 1.12 持续更新bash
  • 1.12.1 问题
  • 1.12.2 解决方案
  • 1.12.3 讨论
  • 1.12.4 参考
  • 1.13 获取Linux版的bash
  • 1.13.1 问题
  • 1.13.2 解决方案
  • 1.13.3 讨论
  • 1.13.4 参考
  • 1.14 获取xBSD版的bash
  • 1.14.1 问题
  • 1.14.2 解决方案
  • 1.14.3 讨论
  • 1.14.4 参考
  • 1.15 获取macOS版的bash
  • 1.15.1 问题
  • 1.15.2 解决方案
  • 1.15.3 讨论
  • 1.15.4 参考
  • 1.16 获取Unix版的bash
  • 1.16.1 问题
  • 1.16.2 解决方案
  • 1.16.3 讨论
  • 1.16.4 参考
  • 1.17 获取Windows版的bash
  • 1.17.1 问题
  • 1.17.2 解决方案
  • 1.17.3 讨论
  • 1.17.4 参考
  • 1.18 不获取bash的情况下使用bash
  • 1.18.1 问题
  • 1.18.2 解决方案
  • 1.18.3 讨论
  • 1.18.4 参考
  • 1.19 更多的bash文档
  • 1.19.1 问题
  • 1.19.2 解决方案
  • 1.19.3 参考
  • 第2章 标准输出
  • 2.1 输出到终端/终端窗口
  • 2.1.1 问题
  • 2.1.2 解决方案
  • 2.1.3 讨论
  • 2.1.4 参考
  • 2.2 保留输出中的空白字符
  • 2.2.1 问题
  • 2.2.2 解决方案
  • 2.2.3 讨论
  • 2.2.4 参考
  • 2.3 在输出中加入更多格式控制
  • 2.3.1 问题
  • 2.3.2 解决方案
  • 2.3.3 讨论
  • 2.3.4 参考
  • 2.4 消除输出中的换行符
  • 2.4.1 问题
  • 2.4.2 解决方案
  • 2.4.3 讨论
  • 2.4.4 参考
  • 2.5 保存命令输出
  • 2.5.1 问题
  • 2.5.2 解决方案
  • 2.5.3 讨论
  • 2.5.4 参考
  • 2.6 将输出保存到其他文件
  • 2.6.1 问题
  • 2.6.2 解决方案
  • 2.6.3 讨论
  • 2.6.4 参考
  • 2.7 保存ls命令的输出
  • 2.7.1 问题
  • 2.7.2 解决方案
  • 2.7.3 讨论
  • 2.7.4 参考
  • 2.8 将输出和错误消息发送到不同文件
  • 2.8.1 问题
  • 2.8.2 解决方案
  • 2.8.3 讨论
  • 2.8.4 参考
  • 2.9 将输出和错误消息发送到同一文件
  • 2.9.1 问题
  • 2.9.2 解决方案
  • 2.9.3 讨论
  • 2.9.4 参考
  • 2.10 追加输出
  • 2.10.1 问题
  • 2.10.2 解决方案
  • 2.10.3 讨论
  • 2.10.4 参考
  • 2.11 仅使用文件的起始或结尾部分
  • 2.11.1 问题
  • 2.11.2 解决方案
  • 2.11.3 讨论
  • 2.11.4 参考
  • 2.12 跳过文件标题
  • 2.12.1 问题
  • 2.12.2 解决方案
  • 2.12.3 讨论
  • 2.12.4 参考
  • 2.13 丢弃输出
  • 2.13.1 问题
  • 2.13.2 解决方案
  • 2.13.3 讨论
  • 2.13.4 参考
  • 2.14 保存或分组多个命令的输出
  • 2.14.1 问题
  • 2.14.2 解决方案
  • 2.14.3 讨论
  • 2.14.4 参考
  • 2.15 将输出作为输入,连接两个程序
  • 2.15.1 问题
  • 2.15.2 解决方案
  • 2.15.3 讨论
  • 2.15.4 参考
  • 2.16 将输出作为输入,同时保留其副本
  • 2.16.1 问题
  • 2.16.2 解决方案
  • 2.16.3 讨论
  • 2.16.4 参考
  • 2.17 以输出为参数连接两个程序
  • 2.17.1 问题
  • 2.17.2 解决方案
  • 2.17.3 讨论
  • 2.17.4 参考
  • 2.18 在一行中多次重定向
  • 2.18.1 问题
  • 2.18.2 解决方案
  • 2.18.3 讨论
  • 2.18.4 参考
  • 2.19 重定向不起作用时保存输出
  • 2.19.1 问题
  • 2.19.2 解决方案
  • 2.19.3 讨论
  • 2.19.4 参考
  • 2.20 交换STDERR和STDOUT
  • 2.20.1 问题
  • 2.20.2 解决方案
  • 2.20.3 讨论
  • 2.20.4 参考
  • 2.21 避免意外覆盖文件
  • 2.21.1 问题
  • 2.21.2 解决方案
  • 2.21.3 讨论
  • 2.21.4 参考
  • 2.22 有意覆盖文件
  • 2.22.1 问题
  • 2.22.2 解决方案
  • 2.22.3 讨论
  • 2.22.4 参考
  • 第3章 标准输入
  • 3.1 从文件获取输入
  • 3.1.1 问题
  • 3.1.2 解决方案
  • 3.1.3 讨论
  • 3.1.4 参考
  • 3.2 将数据与脚本存放在一起
  • 3.2.1 问题
  • 3.2.2 解决方案
  • 3.2.3 讨论
  • 3.2.4 参考
  • 3.3 避免here-document中的怪异行为
  • 3.3.1 问题
  • 3.3.2 解决方案
  • 3.3.3 讨论
  • 3.3.4 参考
  • 3.4 缩进here-document
  • 3.4.1 问题
  • 3.4.2 解决方案
  • 3.4.3 讨论
  • 3.4.4 参考
  • 3.5 获取用户输入
  • 3.5.1 问题
  • 3.5.2 解决方案
  • 3.5.3 讨论
  • 3.5.4 参考
  • 3.6 获取yes或no
  • 3.6.1 问题
  • 3.6.2 解决方案
  • 3.6.3 讨论
  • 3.6.4 参考
  • 3.7 选择选项列表
  • 3.7.1 问题
  • 3.7.2 解决方案
  • 3.7.3 讨论
  • 3.7.4 参考
  • 3.8 提示输入密码
  • 3.8.1 问题
  • 3.8.2 解决方案
  • 3.8.3 讨论
  • 3.8.4 参考
  • 第4章 执行命令
  • 4.1 运行程序
  • 4.1.1 问题
  • 4.1.2 解决方案
  • 4.1.3 讨论
  • 4.1.4 参考
  • 4.2 依次执行多个命令
  • 4.2.1 问题
  • 4.2.2 解决方案
  • 4.2.3 讨论
  • 4.2.4 参考
  • 4.3 同时执行多个命令
  • 4.3.1 问题
  • 4.3.2 解决方案
  • 4.3.3 讨论
  • 4.4 了解命令是否成功运行
  • 4.4.1 问题
  • 4.4.2 解决方案
  • 4.4.3 讨论
  • 4.4.4 参考
  • 4.5 仅当一个命令运行成功后才执行下一个命令
  • 4.5.1 问题
  • 4.5.2 解决方案
  • 4.5.3 讨论
  • 4.5.4 参考
  • 4.6 减少if语句的数量
  • 4.6.1 问题
  • 4.6.2 解决方案
  • 4.6.3 讨论
  • 4.6.4 参考
  • 4.7 无人值守下运行耗时作业
  • 4.7.1 问题
  • 4.7.2 解决方案
  • 4.7.3 讨论
  • 4.7.4 参考
  • 4.8 出现故障时显示错误消息
  • 4.8.1 问题
  • 4.8.2 解决方案
  • 4.8.3 讨论
  • 4.8.4 参考
  • 4.9 执行变量中的命令
  • 4.9.1 问题
  • 4.9.2 解决方案
  • 4.9.3 讨论
  • 4.9.4 参考
  • 4.10 执行目录中的所有脚本
  • 4.10.1 问题
  • 4.10.2 解决方案
  • 4.10.3 讨论
  • 4.10.4 参考
  • 第5章 脚本编程基础:shell变量
  • 5.1 记录脚本
  • 5.1.1 问题
  • 5.1.2 解决方案
  • 5.1.3 讨论
  • 5.1.4 参考
  • 5.2 在shell脚本中嵌入文档
  • 5.2.1 问题
  • 5.2.2 解决方案
  • 5.2.3 讨论
  • 5.2.4 参考
  • 5.3 提高脚本可读性
  • 5.3.1 问题
  • 5.3.2 解决方案
  • 5.3.3 讨论
  • 5.3.4 参考
  • 5.4 将变量名与周围的文本分开
  • 5.4.1 问题
  • 5.4.2 解决方案
  • 5.4.3 讨论
  • 5.4.4 参考
  • 5.5 导出变量
  • 5.5.1 问题
  • 5.5.2 解决方案
  • 5.5.3 讨论
  • 5.5.4 参考
  • 5.6 查看所有的变量值
  • 5.6.1 问题
  • 5.6.2 解决方案
  • 5.6.3 讨论
  • 5.6.4 参考
  • 5.7 在shell脚本中使用参数
  • 5.7.1 问题
  • 5.7.2 解决方案
  • 5.7.3 讨论
  • 5.7.4 参考
  • 5.8 遍历传入脚本的参数
  • 5.8.1 问题
  • 5.8.2 解决方案
  • 5.8.3 讨论
  • 5.8.4 参考
  • 5.9 处理包含空格的参数
  • 5.9.1 问题
  • 5.9.2 解决方案
  • 5.9.3 讨论
  • 5.9.4 参考
  • 5.10 处理包含空格的参数列表
  • 5.10.1 问题
  • 5.10.2 解决方案
  • 5.10.3 讨论
  • 5.10.4 参考
  • 5.11 统计参数数量
  • 5.11.1 问题
  • 5.11.2 解决方案
  • 5.11.3 讨论
  • 5.11.4 参考
  • 5.12 丢弃参数
  • 5.12.1 问题
  • 5.12.2 解决方案
  • 5.12.3 讨论
  • 5.12.4 参考
  • 5.13 获取默认值
  • 5.13.1 问题
  • 5.13.2 解决方案
  • 5.13.3 讨论
  • 5.13.4 参考
  • 5.14 设置默认值
  • 5.14.1 问题
  • 5.14.2 解决方案
  • 5.14.3 讨论
  • 5.14.4 参考
  • 5.15 使用空值作为有效的默认值
  • 5.15.1 问题
  • 5.15.2 解决方案
  • 5.15.3 讨论
  • 5.15.4 参考
  • 5.16 不只使用字符串常量作为默认值
  • 5.16.1 问题
  • 5.16.2 解决方案
  • 5.16.3 讨论
  • 5.16.4 参考
  • 5.17 对不存在的参数输出错误消息
  • 5.17.1 问题
  • 5.17.2 解决方案
  • 5.17.3 讨论
  • 5.17.4 参考
  • 5.18 修改部分字符串
  • 5.18.1 问题
  • 5.18.2 解决方案
  • 5.18.3 讨论
  • 5.18.4 参考
  • 5.19 获得某个数的绝对值
  • 5.19.1 问题
  • 5.19.2 解决方案
  • 5.19.3 讨论
  • 5.19.4 参考
  • 5.20 用bash实现basename
  • 5.20.1 问题
  • 5.20.2 解决方案
  • 5.20.3 讨论
  • 5.20.4 参考
  • 5.21 用bash实现dirname
  • 5.21.1 问题
  • 5.21.2 解决方案
  • 5.21.3 讨论
  • 5.21.4 参考
  • 5.22 选取CSV的替换值
  • 5.22.1 问题
  • 5.22.2 解决方案
  • 5.22.3 参考
  • 5.23 使用数组变量
  • 5.23.1 问题
  • 5.23.2 解决方案
  • 5.23.3 讨论
  • 5.23.4 参考
  • 5.24 转换大小写
  • 5.24.1 问题
  • 5.24.2 解决方案
  • 5.24.3 参考
  • 5.25 转换为驼峰命名法
  • 5.25.1 问题
  • 5.25.2 解决方案
  • 5.25.3 讨论
  • 5.25.4 参考
  • 第6章 shell逻辑与算术
  • 6.1 在shell脚本中执行算术操作
  • 6.1.1 问题
  • 6.1.2 解决方案
  • 6.1.3 讨论
  • 6.1.4 参考
  • 6.2 条件分支
  • 6.2.1 问题
  • 6.2.2 解决方案
  • 6.2.3 讨论
  • 6.2.4 参考
  • 6.3 测试文件特性
  • 6.3.1 问题
  • 6.3.2 解决方案
  • 6.3.3 讨论
  • 6.3.4 参考
  • 6.4 测试多个特性
  • 6.4.1 问题
  • 6.4.2 解决方案
  • 6.4.3 讨论
  • 6.4.4 参考
  • 6.5 测试字符串特性
  • 6.5.1 问题
  • 6.5.2 解决方案
  • 6.5.3 讨论
  • 6.5.4 参考
  • 6.6 测试等量关系
  • 6.6.1 问题
  • 6.6.2 解决方案
  • 6.6.3 讨论
  • 6.6.4 参考
  • 6.7 用模式匹配进行测试
  • 6.7.1 问题
  • 6.7.2 解决方案
  • 6.7.3 讨论
  • 6.7.4 参考
  • 6.8 用正则表达式测试
  • 6.8.1 问题
  • 6.8.2 解决方案
  • 6.8.3 讨论
  • 6.8.4 参考
  • 6.9 用重定向改变脚本行为
  • 6.9.1 问题
  • 6.9.2 解决方案
  • 6.9.3 讨论
  • 6.9.4 参考
  • 6.10 循环一段时间
  • 6.10.1 问题
  • 6.10.2 解决方案
  • 6.10.3 讨论
  • 6.10.4 参考
  • 6.11 在循环中使用read
  • 6.11.1 问题
  • 6.11.2 解决方案
  • 6.11.3 讨论
  • 6.11.4 参考
  • 6.12 循环若干次
  • 6.12.1 问题
  • 6.12.2 解决方案
  • 6.12.3 讨论
  • 6.12.4 参考
  • 6.13 在循环中使用浮点值
  • 6.13.1 问题
  • 6.13.2 解决方案
  • 6.13.3 讨论
  • 6.13.4 参考
  • 6.14 多路分支
  • 6.14.1 问题
  • 6.14.2 解决方案
  • 6.14.3 讨论
  • 6.14.4 参考
  • 6.15 解析命令行参数
  • 6.15.1 问题
  • 6.15.2 解决方案
  • 6.15.3 讨论
  • 6.15.4 参考
  • 6.16 创建简单的菜单
  • 6.16.1 问题
  • 6.16.2 解决方案
  • 6.16.3 讨论
  • 6.16.4 参考
  • 6.17 修改简单菜单的提示符
  • 6.17.1 问题
  • 6.17.2 解决方案
  • 6.17.3 讨论
  • 6.17.4 参考
  • 6.18 创建简单的RPN计算器
  • 6.18.1 问题
  • 6.18.2 解决方案
  • 6.18.3 讨论
  • 6.18.4 参考
  • 6.19 创建命令行计算器
  • 6.19.1 问题
  • 6.19.2 解决方案
  • 6.19.3 讨论
  • 6.19.4 参考
  • 第7章 中级shell工具
  • 7.1 在文件中查找字符串
  • 7.1.1 问题
  • 7.1.2 解决方案
  • 7.1.3 讨论
  • 7.1.4 参考
  • 7.2 只显示包含搜索结果的文件名
  • 7.2.1 问题
  • 7.2.2 解决方案
  • 7.2.3 讨论
  • 7.2.4 参考
  • 7.3 了解搜索是否成功
  • 7.3.1 问题
  • 7.3.2 解决方案
  • 7.3.3 讨论
  • 7.3.4 参考
  • 7.4 不区分大小写搜索
  • 7.4.1 问题
  • 7.4.2 解决方案
  • 7.4.3 讨论
  • 7.4.4 参考
  • 7.5 在管道中进行搜索
  • 7.5.1 问题
  • 7.5.2 解决方案
  • 7.5.3 讨论
  • 7.5.4 参考
  • 7.6 缩减搜索结果
  • 7.6.1 问题
  • 7.6.2 解决方案
  • 7.6.3 讨论
  • 7.6.4 参考
  • 7.7 搜索更复杂的模式
  • 参考
  • 7.8 搜索SSN
  • 7.8.1 问题
  • 7.8.2 解决方案
  • 7.8.3 讨论
  • 7.8.4 参考
  • 7.9 搜索压缩文件
  • 7.9.1 问题
  • 7.9.2 解决方案
  • 7.9.3 讨论
  • 7.9.4 参考
  • 7.10 保留部分输出
  • 7.10.1 问题
  • 7.10.2 解决方案
  • 7.10.3 讨论
  • 7.10.4 参考
  • 7.11 仅保留部分输入行
  • 7.11.1 问题
  • 7.11.2 解决方案
  • 7.11.3 讨论
  • 7.11.4 参考
  • 7.12 颠倒每行的单词
  • 7.12.1 问题
  • 7.12.2 解决方案
  • 7.12.3 讨论
  • 7.12.4 参考
  • 7.13 汇总数字列表
  • 7.13.1 问题
  • 7.13.2 解决方案
  • 7.13.3 讨论
  • 7.13.4 参考
  • 7.14 用awk统计字符串出现次数
  • 7.14.1 问题
  • 7.14.2 解决方案
  • 7.14.3 讨论
  • 7.14.4 参考
  • 7.15 用bash统计字符串出现次数
  • 7.15.1 问题
  • 7.15.2 解决方案
  • 7.15.3 讨论
  • 7.15.4 参考
  • 7.16 用便捷的直方图展示数据
  • 7.16.1 问题
  • 7.16.2 解决方案
  • 7.16.3 讨论
  • 7.16.4 参考
  • 7.17 用bash轻松实现直方图
  • 7.17.1 问题
  • 7.17.2 解决方案
  • 7.17.3 讨论
  • 7.17.4 参考
  • 7.18 显示匹配短语之后的文本段落
  • 7.18.1 问题
  • 7.18.2 解决方案
  • 7.18.3 讨论
  • 7.18.4 参考
  • 第8章 中级shell工具(续)
  • 8.1 输出排序
  • 8.1.1 问题
  • 8.1.2 解决方案
  • 8.1.3 讨论
  • 8.1.4 参考
  • 8.2 数字排序
  • 8.2.1 问题
  • 8.2.2 解决方案
  • 8.2.3 讨论
  • 8.2.4 参考
  • 8.3 IP地址排序
  • 8.3.1 问题
  • 8.3.2 解决方案
  • 8.3.3 讨论
  • 8.3.4 参考
  • 8.4 提取部分输出
  • 8.4.1 问题
  • 8.4.2 解决方案
  • 8.4.3 讨论
  • 8.4.4 参考
  • 8.5 删除重复行
  • 8.5.1 问题
  • 8.5.2 解决方案
  • 8.5.3 讨论
  • 8.5.4 参考
  • 8.6 压缩文件
  • 8.6.1 问题
  • 8.6.2 解决方案
  • 8.6.3 讨论
  • 8.6.4 参考
  • 8.7 解压文件
  • 8.7.1 问题
  • 8.7.2 解决方案
  • 8.7.3 讨论
  • 8.7.4 参考
  • 8.8 检查tar归档文件中不重复的目录
  • 8.8.1 问题
  • 8.8.2 解决方案
  • 8.8.3 讨论
  • 8.8.4 参考
  • 8.9 转换字符
  • 8.9.1 问题
  • 8.9.2 解决方案
  • 8.9.3 讨论
  • 8.9.4 参考
  • 8.10 将大写字母转换为小写字母
  • 8.10.1 问题
  • 8.10.2 解决方案
  • 8.10.3 讨论
  • 8.10.4 参考
  • 8.11 将DOS文件转换为Linux格式
  • 8.11.1 问题
  • 8.11.2 解决方案
  • 8.11.3 讨论
  • 8.11.4 参考
  • 8.12 删除智能引号
  • 8.12.1 问题
  • 8.12.2 解决方案
  • 8.12.3 讨论
  • 8.12.4 参考
  • 8.13 统计文件的行数、单词数或字符数
  • 8.13.1 问题
  • 8.13.2 解决方案
  • 8.13.3 讨论
  • 8.13.4 参考
  • 8.14 重新编排段落
  • 8.14.1 问题
  • 8.14.2 解决方案
  • 8.14.3 讨论
  • 8.14.4 参考
  • 8.15 你不知道的less
  • 8.15.1 问题
  • 8.15.2 解决方案
  • 8.15.3 讨论
  • 8.15.4 参考
  • 第9章 查找文件:find、locate、slocate
  • 9.1 查找所有的MP3文件
  • 9.1.1 问题
  • 9.1.2 解决方案
  • 9.1.3 讨论
  • 9.1.4 参考
  • 9.2 处理文件名中的怪异字符
  • 9.2.1 问题
  • 9.2.2 解决方案
  • 9.2.3 讨论
  • 9.2.4 参考
  • 9.3 提升已找到文件的处理速度
  • 9.3.1 问题
  • 9.3.2 解决方案
  • 9.3.3 参考
  • 9.4 跟随符号链接查找文件
  • 9.4.1 问题
  • 9.4.2 解决方案
  • 9.4.3 讨论
  • 9.4.4 讨论
  • 9.5 查找文件时不区分大小写
  • 9.5.1 问题
  • 9.5.2 解决方案
  • 9.5.3 讨论
  • 9.5.4 参考
  • 9.6 按日期查找文件
  • 9.6.1 问题
  • 9.6.2 解决方案
  • 9.6.3 讨论
  • 9.6.4 参考
  • 9.7 按类型查找文件
  • 9.7.1 问题
  • 9.7.2 解决方案
  • 9.7.3 讨论
  • 9.7.4 参考
  • 9.8 按大小查找文件
  • 9.8.1 问题
  • 9.8.2 解决方案
  • 9.8.3 讨论
  • 9.8.4 参考
  • 9.9 按内容查找文件
  • 9.9.1 问题
  • 9.9.2 解决方案
  • 9.9.3 讨论
  • 9.9.4 参考
  • 9.10 快速查找现有文件及其内容
  • 9.10.1 问题
  • 9.10.2 解决方案
  • 9.10.3 讨论
  • 9.10.4 参考
  • 9.11 在可能的位置上查找文件
  • 9.11.1 问题
  • 9.11.2 解决方案
  • 9.11.3 讨论
  • 9.11.4 参考
  • 第10章 脚本编程的附加特性
  • 10.1 脚本“守护进程化”
  • 10.1.1 问题
  • 10.1.2 解决方案
  • 10.1.3 讨论
  • 10.1.4 参考
  • 10.2 代码重用
  • 10.2.1 问题
  • 10.2.2 解决方案
  • 10.2.3 讨论
  • 10.2.4 参考
  • 10.3 在脚本中使用配置文件
  • 10.3.1 问题
  • 10.3.2 解决方案
  • 10.3.3 讨论
  • 10.3.4 参考
  • 10.4 定义函数
  • 10.4.1 问题
  • 10.4.2 解决方案
  • 10.4.3 讨论
  • 10.4.4 参考
  • 10.5 使用函数:参数和返回值
  • 10.5.1 问题
  • 10.5.2 解决方案
  • 10.5.3 讨论
  • 10.5.4 参考
  • 10.6 中断陷阱
  • 10.6.1 问题
  • 10.6.2 解决方案
  • 10.6.3 讨论
  • 10.6.4 参考
  • 10.7 用别名重新定义命令
  • 10.7.1 问题
  • 10.7.2 解决方案
  • 10.7.3 讨论
  • 10.7.4 参考
  • 10.8 避开别名和函数
  • 10.8.1 问题
  • 10.8.2 解决方案
  • 10.8.3 讨论
  • 10.8.4 参考
  • 10.9 计算已过去的时间
  • 10.9.1 问题
  • 10.9.2 解决方案
  • 10.9.3 讨论
  • 10.9.4 参考
  • 10.10 编写包装器
  • 10.10.1 问题
  • 10.10.2 解决方案
  • 10.10.3 讨论
  • 10.10.4 参考
  • 第11章 处理日期和时间
  • 11.1 格式化日期显示
  • 11.1.1 问题
  • 11.1.2 解决方案
  • 11.1.3 讨论
  • 11.1.4 参考
  • 11.2 提供默认日期
  • 11.2.1 问题
  • 11.2.2 解决方案
  • 11.2.3 讨论
  • 11.2.4 参考
  • 11.3 自动生成日期范围
  • 11.3.1 问题
  • 11.3.2 解决方案
  • 11.3.3 讨论
  • 11.3.4 参考
  • 11.4 将日期和时间转换为纪元秒
  • 11.4.1 问题
  • 11.4.2 解决方案
  • 11.4.3 讨论
  • 11.4.4 讨论
  • 11.5 将纪元秒转换为日期和时间
  • 11.5.1 问题
  • 11.5.2 解决方案
  • 11.5.3 讨论
  • 11.5.4 参考
  • 11.6 用Perl获得昨天或明天的日期
  • 11.6.1 问题
  • 11.6.2 解决方案
  • 11.6.3 讨论
  • 11.6.4 参考
  • 11.7 日期与时间运算
  • 11.7.1 问题
  • 11.7.2 解决方案
  • 11.7.3 讨论
  • 11.7.4 参考
  • 11.8 处理时区、夏令时和闰年
  • 11.8.1 问题
  • 11.8.2 解决方案
  • 11.8.3 讨论
  • 11.8.4 参考
  • 11.9 用date和cron在第N天运行脚本
  • 11.9.1 问题
  • 11.9.2 解决方案
  • 11.9.3 讨论
  • 11.9.4 参考
  • 11.10 输出带有日期的日志
  • 11.10.1 问题
  • 11.10.2 解决方案
  • 11.10.3 讨论
  • 11.10.4 参考
  • 第12章 帮助最终用户完成任务的shell脚本
  • 12.1 输出连字符
  • 12.1.1 问题
  • 12.1.2 解决方案
  • 12.1.3 讨论
  • 12.1.4 参考
  • 12.2 浏览相册
  • 12.2.1 问题
  • 12.2.2 解决方案
  • 12.2.3 讨论
  • 12.2.4 参考
  • 12.3 填装MP3播放器
  • 12.3.1 问题
  • 12.3.2 解决方案
  • 12.3.3 讨论
  • 12.3.4 参考
  • 12.4 刻录CD
  • 12.4.1 问题
  • 12.4.2 解决方案
  • 12.4.3 讨论
  • 12.4.4 参考
  • 12.5 比较文档
  • 12.5.1 问题
  • 12.5.2 解决方案
  • 12.5.3 讨论
  • 12.5.4 参考
  • 第13章 与解析相关的任务
  • 13.1 解析shell脚本参数
  • 13.1.1 问题
  • 13.1.2 解决方案
  • 13.1.3 讨论
  • 13.1.4 参考
  • 13.2 解析参数时使用自定义错误消息
  • 13.2.1 问题
  • 13.2.2 解决方案
  • 13.2.3 讨论
  • 13.2.4 参考
  • 13.3 解析HTML
  • 13.3.1 问题
  • 13.3.2 解决方案
  • 13.3.3 讨论
  • 13.3.4 参考
  • 13.4 将输出解析到数组
  • 13.4.1 问题
  • 13.4.2 解决方案
  • 13.4.3 讨论
  • 13.4.4 参考
  • 13.5 用函数调用解析输出
  • 13.5.1 问题
  • 13.5.2 解决方案
  • 13.5.3 讨论
  • 13.5.4 参考
  • 13.6 用read语句解析文本
  • 13.6.1 问题
  • 13.6.2 解决方案
  • 13.6.3 讨论
  • 13.6.4 参考
  • 13.7 用read将输入解析至数组
  • 13.7.1 问题
  • 13.7.2 解决方案
  • 13.7.3 讨论
  • 13.7.4 参考
  • 13.8 读取整个文件
  • 13.8.1 问题
  • 13.8.2 解决方案
  • 13.8.3 讨论
  • 13.8.4 参考
  • 13.9 正确书写复数形式
  • 13.9.1 问题
  • 13.9.2 解决方案
  • 13.9.3 讨论
  • 13.9.4 参考
  • 13.10 一次提取一个字符
  • 13.10.1 问题
  • 13.10.2 解决方案
  • 13.10.3 讨论
  • 13.10.4 参考
  • 13.11 清理svn源代码树
  • 13.11.1 问题
  • 13.11.2 解决方案
  • 13.11.3 讨论
  • 13.11.4 参考
  • 13.12 用MySQL设置数据库
  • 13.12.1 问题
  • 13.12.2 解决方案
  • 13.12.3 讨论
  • 13.12.4 参考
  • 13.13 提取数据中的特定字段
  • 13.13.1 问题
  • 13.13.2 解决方案
  • 13.13.3 讨论
  • 13.13.4 参考
  • 13.14 更新数据文件中的特定字段
  • 13.14.1 问题
  • 13.14.2 解决方案
  • 13.14.3 讨论
  • 13.14.4 参考
  • 13.15 修剪空白字符
  • 13.15.1 问题
  • 13.15.2 解决方案
  • 13.15.3 讨论
  • 13.15.4 参考
  • 13.16 压缩空白字符
  • 13.16.1 问题
  • 13.16.2 解决方案
  • 13.16.3 讨论
  • 13.16.4 参考
  • 13.17 处理固定长度记录
  • 13.17.1 问题
  • 13.17.2 解决方案
  • 13.17.3 讨论
  • 13.17.4 讨论
  • 13.18 处理没有换行的文件
  • 13.18.1 问题
  • 13.18.2 解决方案
  • 13.18.3 讨论
  • 13.18.4 参考
  • 13.19 将数据文件转换为CSV
  • 13.19.1 问题
  • 13.19.2 解决方案
  • 13.19.3 讨论
  • 13.19.4 参考
  • 13.20 解析CSV数据文件
  • 13.20.1 问题
  • 13.20.2 解决方案
  • 13.20.3 讨论
  • 13.20.4 参考
  • 第14章 编写安全的shell脚本
  • 14.1 避开常见的安全问题
  • 14.1.1 问题
  • 14.1.2 解决方案
  • 14.1.3 讨论
  • 14.1.4 参考
  • 14.2 避免解释器欺骗
  • 14.2.1 问题
  • 14.2.2 解决方案
  • 14.2.3 讨论
  • 14.2.4 参考
  • 14.3 设置安全的$PATH
  • 14.3.1 问题
  • 14.3.2 解决方案
  • 14.3.3 讨论
  • 14.3.4 参考
  • 14.4 清除所有的别名
  • 14.4.1 问题
  • 14.4.2 解决方案
  • 14.4.3 讨论
  • 14.4.4 参考
  • 14.5 清除命令散列
  • 14.5.1 问题
  • 14.5.2 解决方案
  • 14.5.3 讨论
  • 14.5.4 参考
  • 14.6 防止核心转储
  • 14.6.1 问题
  • 14.6.2 解决方案
  • 14.6.3 讨论
  • 14.6.4 参考
  • 14.7 设置安全的$IFS
  • 14.7.1 问题
  • 14.7.2 解决方案
  • 14.7.3 讨论
  • 14.7.4 参考
  • 14.8 设置安全的umask
  • 14.8.1 问题
  • 14.8.2 解决方案
  • 14.8.3 讨论
  • 14.8.4 参考
  • 14.9 在$PATH中查找人皆可写的目录
  • 14.9.1 问题
  • 14.9.2 解决方案
  • 14.9.3 讨论
  • 14.9.4 参考
  • 14.10 将当前目录加入$PATH
  • 14.10.1 问题
  • 14.10.2 解决方案
  • 14.10.3 讨论
  • 14.10.4 参考
  • 14.11 使用安全的临时文件
  • 14.11.1 问题
  • 14.11.2 解决方案
  • 14.11.3 讨论
  • 14.11.4 参考
  • 14.12 验证输入
  • 14.12.1 问题
  • 14.12.2 解决方案
  • 14.12.3 讨论
  • 14.12.4 参考
  • 14.13 设置权限
  • 14.13.1 问题
  • 14.13.2 解决方案
  • 14.13.3 讨论
  • 14.13.4 参考
  • 14.14 密码被泄露到进程列表
  • 14.14.1 问题
  • 14.14.2 解决方案
  • 14.14.3 讨论
  • 14.14.4 参考
  • 14.15 编写setuid或setgid脚本
  • 14.15.1 问题
  • 14.15.2 解决方案
  • 14.15.3 讨论
  • 14.15.4 参考
  • 14.16 限制访客
  • 14.16.1 问题
  • 14.16.2 解决方案
  • 14.16.3 讨论
  • 14.16.4 参考
  • 14.17 使用chroot囚牢
  • 14.17.1 问题
  • 14.17.2 解决方案
  • 14.17.3 讨论
  • 14.17.4 参考
  • 14.18 以非root用户身份运行
  • 14.18.1 问题
  • 14.18.2 解决方案
  • 14.18.3 讨论
  • 14.18.4 参考
  • 14.19 更安全地使用sudo
  • 14.19.1 问题
  • 14.19.2 解决方案
  • 14.19.3 讨论
  • 14.19.4 参考
  • 14.20 在脚本中使用密码
  • 14.20.1 问题
  • 14.20.2 解决方案
  • 14.20.3 讨论
  • 14.20.4 参考
  • 14.21 使用无密码的SSH
  • 14.21.1 问题
  • 14.21.2 解决方案
  • 14.21.3 讨论
  • 14.21.4 参考
  • 14.22 限制SSH命令
  • 14.22.1 问题
  • 14.22.2 解决方案
  • 14.22.3 讨论
  • 14.22.4 参考
  • 14.23 断开非活跃会话
  • 14.23.1 问题
  • 14.23.2 解决方案
  • 14.23.3 讨论
  • 14.23.4 参考
  • 第15章 高级脚本编程
  • 15.1 以可移植的方式查找bash
  • 15.1.1 问题
  • 15.1.2 解决方案
  • 15.1.3 讨论
  • 15.1.4 参考
  • 15.2 设置兼容POSIX工具的$PATH
  • 15.2.1 问题
  • 15.2.2 解决方案
  • 15.2.3 讨论
  • 15.2.4 参考
  • 15.3 开发可移植的shell脚本
  • 15.3.1 问题
  • 15.3.2 解决方案
  • 15.3.3 讨论
  • 15.3.4 参考
  • 15.4 用虚拟机测试脚本
  • 15.4.1 问题
  • 15.4.2 解决方案
  • 15.4.3 讨论
  • 15.4.4 参考
  • 15.5 使用可移植的循环
  • 15.5.1 问题
  • 15.5.2 解决方案
  • 15.5.3 讨论
  • 15.5.4 参考
  • 15.6 使用可移植的echo
  • 15.6.1 问题
  • 15.6.2 解决方案
  • 15.6.3 讨论
  • 15.6.4 参考
  • 15.7 仅在必要时分割输出
  • 15.7.1 问题
  • 15.7.2 解决方案
  • 15.7.3 讨论
  • 15.7.4 参考
  • 15.8 以十六进制形式查看输出
  • 15.8.1 问题
  • 15.8.2 解决方案
  • 15.8.3 讨论
  • 15.8.4 参考
  • 15.9 使用bash的网络重定向
  • 15.9.1 问题
  • 15.9.2 解决方案
  • 15.9.3 讨论
  • 15.9.4 参考
  • 15.10 查找自己的IP地址
  • 15.10.1 问题
  • 15.10.2 解决方案
  • 15.10.3 讨论
  • 15.10.4 参考
  • 15.11 从另一台机器获取输入
  • 15.11.1 问题
  • 15.11.2 解决方案
  • 15.11.3 讨论
  • 15.11.4 参考
  • 15.12 在脚本运行期间重定向输出
  • 15.12.1 问题
  • 15.12.2 解决方案
  • 15.12.3 讨论
  • 15.12.4 参考
  • 15.13 解决“Argument list too long”错误
  • 15.13.1 问题
  • 15.13.2 解决方案
  • 15.13.3 讨论
  • 15.13.4 参考
  • 15.14 向syslog记录脚本日志
  • 15.14.1 问题
  • 15.14.2 解决方案
  • 15.14.3 讨论
  • 15.14.4 参考
  • 15.15 正确地使用logger
  • 15.15.1 问题
  • 15.15.2 解决方案
  • 15.15.3 讨论
  • 15.15.4 参考
  • 15.16 在脚本中发送电子邮件
  • 15.16.1 问题
  • 15.16.2 解决方案
  • 15.16.3 讨论
  • 15.16.4 参考
  • 15.17 用阶段自动化进程
  • 15.17.1 问题
  • 15.17.2 解决方案
  • 15.17.3 讨论
  • 15.17.4 参考
  • 15.18 一心二用
  • 15.18.1 问题
  • 15.18.2 解决方案
  • 15.18.3 讨论
  • 15.18.4 参考
  • 15.19 在多个主机上执行SSH命令
  • 15.19.1 问题
  • 15.19.2 解决方案
  • 15.19.3 讨论
  • 15.19.4 参考
  • 第16章 bash的配置与自定义
  • 16.1 bash启动选项
  • 16.1.1 问题
  • 16.1.2 解决方案
  • 16.1.3 讨论
  • 16.1.4 参考
  • 16.2 自定义提示符
  • 16.2.1 问题
  • 16.2.2 解决方案
  • 16.2.3 讨论
  • 16.2.4 参考
  • 16.3 在程序运行前出现的提示符
  • 16.3.1 问题
  • 16.3.2 解决方案
  • 16.3.3 讨论
  • 16.3.4 参考
  • 16.4 永久修改$PATH
  • 16.4.1 问题
  • 16.4.2 解决方案
  • 16.4.3 讨论
  • 16.4.4 参考
  • 16.5 临时修改$PATH
  • 16.5.1 问题
  • 16.5.2 解决方案
  • 16.5.3 讨论
  • 16.5.4 参考
  • 16.6 设置$CDPATH
  • 16.6.1 问题
  • 16.6.2 解决方案
  • 16.6.3 讨论
  • 16.6.4 参考
  • 16.7 当找不到命令时
  • 16.7.1 问题
  • 16.7.2 解决方案
  • 16.7.3 讨论
  • 16.7.4 参考
  • 16.8 缩短或修改命令名称
  • 16.8.1 问题
  • 16.8.2 解决方案
  • 16.8.3 讨论
  • 16.8.4 参考
  • 16.9 调整shell行为及环境
  • 16.9.1 问题
  • 16.9.2 解决方案
  • 16.9.3 讨论
  • 16.9.4 参考
  • 16.10 用.inputrc调整readline的行为
  • 16.10.1 问题
  • 16.10.2 解决方案
  • 16.10.3 讨论
  • 16.10.4 参考
  • 16.11 通过添加~/bin来存放个人工具
  • 16.11.1 问题
  • 16.11.2 解决方案
  • 16.11.3 讨论
  • 16.11.4 参考
  • 16.12 使用辅助提示符:$PS2、$PS3、$PS4
  • 16.12.1 问题
  • 16.12.2 解决方案
  • 16.12.3 讨论
  • 16.12.4 参考
  • 16.13 在会话间同步shell历史记录
  • 16.13.1 问题
  • 16.13.2 解决方案
  • 16.13.3 讨论
  • 16.13.4 参考
  • 16.14 设置shell的历史选项
  • 16.14.1 问题
  • 16.14.2 解决方案
  • 16.14.3 讨论
  • 16.14.4 参考
  • 16.15 创建更好的cd命令
  • 16.15.1 问题
  • 16.15.2 解决方案
  • 16.15.3 讨论
  • 16.15.4 参考
  • 16.16 一次性创建并切换到新目录
  • 16.16.1 问题
  • 16.16.2 解决方案
  • 16.16.3 讨论
  • 16.16.4 参考
  • 16.17 直达底部
  • 16.17.1 问题
  • 16.17.2 解决方案
  • 16.17.3 讨论
  • 16.17.4 参考
  • 16.18 用可装载的内建命令为bash添加新特性
  • 16.18.1 问题
  • 16.18.2 解决方案
  • 16.18.3 讨论
  • 16.18.4 参考
  • 16.19 改善可编程补全
  • 16.19.1 问题
  • 16.19.2 解决方案
  • 16.19.3 讨论
  • 16.19.4 参考
  • 16.20 正确使用初始化文件
  • 16.20.1 问题
  • 16.20.2 解决方案
  • 16.20.3 讨论
  • 16.20.4 参考
  • 16.21 创建自包含的可移植rc文件
  • 16.21.1 问题
  • 16.21.2 解决方案
  • 16.21.3 讨论
  • 16.21.4 参考
  • 16.22 自定义配置入门
  • 16.22.1 问题
  • 16.22.2 解决方案
  • 16.22.3 讨论
  • 16.22.4 参考
  • 第17章 内务及管理任务
  • 17.1 批量重命名文件
  • 17.1.1 问题
  • 17.1.2 解决方案
  • 17.1.3 讨论
  • 17.1.4 参考
  • 17.2 在Linux中使用GUN Texinfo和info
  • 17.2.1 问题
  • 17.2.2 解决方案
  • 17.2.3 讨论
  • 17.2.4 参考
  • 17.3 批量解压ZIP文件
  • 17.3.1 问题
  • 17.3.2 解决方案
  • 17.3.3 讨论
  • 17.3.4 参考
  • 17.4 用screen恢复断开的会话
  • 17.4.1 问题
  • 17.4.2 解决方案
  • 17.4.3 讨论
  • 17.4.4 参考
  • 17.5 共享单个bash会话
  • 17.5.1 问题
  • 17.5.2 解决方案
  • 17.5.3 讨论
  • 17.5.4 参考
  • 17.6 记录整个会话或批量作业
  • 17.6.1 问题
  • 17.6.2 解决方案
  • 17.6.3 讨论
  • 17.6.4 参考
  • 17.7 注销时清除屏幕
  • 17.7.1 问题
  • 17.7.2 解决方案
  • 17.7.3 讨论
  • 17.7.4 参考
  • 17.8 获取用于数据恢复的文件元数据
  • 17.8.1 问题
  • 17.8.2 解决方案
  • 17.8.3 讨论
  • 17.8.4 参考
  • 17.9 为多个文件创建索引
  • 17.9.1 问题
  • 17.9.2 解决方案
  • 17.9.3 讨论
  • 17.9.4 参考
  • 17.10 使用diff和patch
  • 17.10.1 问题
  • 17.10.2 解决方案
  • 17.10.3 讨论
  • 17.10.4 参考
  • 17.11 统计文件间存在多少差异
  • 17.11.1 问题
  • 17.11.2 解决方案
  • 17.11.3 讨论
  • 17.11.4 参考
  • 17.12 删除或重命名名称中包含特殊字符的文件
  • 17.12.1 问题
  • 17.12.2 解决方案
  • 17.12.3 讨论
  • 17.12.4 参考
  • 17.13 将数据追加到文件开头
  • 17.13.1 问题
  • 17.13.2 解决方案
  • 17.13.3 讨论
  • 17.13.4 参考
  • 17.14 就地编辑文件
  • 17.14.1 问题
  • 17.14.2 解决方案
  • 17.14.3 讨论
  • 17.14.4 参考
  • 17.15 将sudo应用于一组命令
  • 17.15.1 问题
  • 17.15.2 解决方案
  • 17.15.3 讨论
  • 17.15.4 参考
  • 17.16 查找仅出现在一个文件中的行
  • 17.16.1 问题
  • 17.16.2 解决方案
  • 17.16.3 讨论
  • 17.16.4 参考
  • 17.17 保留最近的N个对象
  • 17.17.1 问题
  • 17.17.2 解决方案
  • 17.17.3 讨论
  • 17.17.4 参考
  • 17.18 写入循环日志
  • 17.18.1 问题
  • 17.18.2 解决方案
  • 17.18.3 讨论
  • 17.18.4 参考
  • 17.19 循环备份
  • 17.19.1 问题
  • 17.19.2 解决方案
  • 17.19.3 讨论
  • 17.19.4 参考
  • 17.20 搜索不包含grep进程自身在内的ps输出
  • 17.20.1 问题
  • 17.20.2 解决方案
  • 17.20.3 讨论
  • 17.20.4 参考
  • 17.21 确定某个进程是否正在运行
  • 17.21.1 问题
  • 17.21.2 解决方案
  • 17.21.3 讨论
  • 17.21.4 参考
  • 17.22 为输出添加前缀或后缀
  • 17.22.1 问题
  • 17.22.2 解决方案
  • 17.22.3 讨论
  • 17.22.4 参考
  • 17.23 对行进行编号
  • 17.23.1 问题
  • 17.23.2 解决方案
  • 17.23.3 讨论
  • 17.23.4 参考
  • 17.24 生成序列
  • 17.24.1 问题
  • 17.24.2 解决方案
  • 17.24.3 讨论
  • 17.24.4 参考
  • 17.25 模拟DOS的pause命令
  • 17.25.1 问题
  • 17.25.2 解决方案
  • 17.25.3 讨论
  • 17.25.4 参考
  • 17.26 为数值添加逗号
  • 17.26.1 问题
  • 17.26.2 解决方案
  • 17.26.3 讨论
  • 17.26.4 参考
  • 第18章 写得少,干得快
  • 18.1 在任意目录之间快速移动
  • 18.1.1 问题
  • 18.1.2 解决方案
  • 18.1.3 讨论
  • 18.1.4 参考
  • 18.2 重复上一个命令
  • 18.2.1 问题
  • 18.2.2 解决方案
  • 18.2.3 讨论
  • 18.2.4 参考
  • 18.3 执行类似命令
  • 18.3.1 问题
  • 18.3.2 解决方案
  • 18.3.3 讨论
  • 18.3.4 参考
  • 18.4 快速替换
  • 18.4.1 问题
  • 18.4.2 解决方案
  • 18.4.3 讨论
  • 18.4.4 参考
  • 18.5 参数重用
  • 18.5.1 问题
  • 18.5.2 解决方案
  • 18.5.3 讨论
  • 18.5.4 参考
  • 18.6 名称补全
  • 18.6.1 问题
  • 18.6.2 解决方案
  • 18.6.3 讨论
  • 18.6.4 参考
  • 18.7 安全第一
  • 18.7.1 问题
  • 18.7.2 解决方案
  • 18.7.3 讨论
  • 18.7.4 参考
  • 18.8 修改多个命令
  • 18.8.1 问题
  • 18.8.2 解决方案
  • 18.8.3 讨论
  • 18.8.4 参考
  • 第19章 窍门与陷阱:新手常见错误
  • 19.1 忘记设置可执行权限
  • 19.1.1 问题
  • 19.1.2 解决方案
  • 19.1.3 讨论
  • 19.1.4 参考
  • 19.2 修复“No such file or directory”错误
  • 19.2.1 问题
  • 19.2.2 解决方案
  • 19.2.3 讨论
  • 19.2.4 参考
  • 19.3 忘记当前目录不在$PATH中
  • 19.3.1 问题
  • 19.3.2 解决方案
  • 19.3.3 讨论
  • 19.3.4 参考
  • 19.4 将脚本命名为test
  • 19.4.1 问题
  • 19.4.2 解决方案
  • 19.4.3 讨论
  • 19.4.4 参考
  • 19.5 试图修改已导出的变量
  • 19.5.1 问题
  • 19.5.2 解决方案
  • 19.5.3 讨论
  • 19.5.4 参考
  • 19.6 赋值时忘记加引号
  • 19.6.1 问题
  • 19.6.2 解决方案
  • 19.6.3 讨论
  • 19.6.4 参考
  • 19.7 忘记模式匹配的结果是按字母顺序排列的
  • 19.7.1 问题
  • 19.7.2 解决方案
  • 19.7.3 讨论
  • 19.8 忘记管道会产生子shell
  • 19.8.1 问题
  • 19.8.2 解决方案
  • 19.8.3 讨论
  • 19.8.4 参考
  • 19.9 使终端恢复正常
  • 19.9.1 问题
  • 19.9.2 解决方案
  • 19.9.3 讨论
  • 19.9.4 参考
  • 19.10 用空变量删除文件
  • 19.10.1 问题
  • 19.10.2 解决方案
  • 19.10.3 讨论
  • 19.10.4 参考
  • 19.11 printf的怪异行为
  • 19.11.1 问题
  • 19.11.2 解决方案
  • 19.11.3 讨论
  • 19.11.4 参考
  • 19.12 测试bash脚本语法
  • 19.12.1 问题
  • 19.12.2 解决方案
  • 19.12.3 讨论
  • 19.12.4 参考
  • 19.13 调试脚本
  • 19.13.1 问题
  • 19.13.2 解决方案
  • 19.13.3 讨论
  • 19.13.4 参考
  • 19.14 使用函数时避免出现“command not found”错误
  • 19.14.1 问题
  • 19.14.2 解决方案
  • 19.14.3 讨论
  • 19.14.4 参考
  • 19.15 混淆了shell通配符和正则表达式
  • 19.15.1 问题
  • 19.15.2 解决方案
  • 19.15.3 讨论
  • 19.15.4 参考
  • 附录A 参考
  • A.1 bash调用
  • A.2 自定义提示符字符串
  • A.3 ANSI颜色转义序列
  • A.4 内建命令
  • A.5 bash保留字
  • A.6 shell内建变量
  • A.7 set选项
  • A.8 shopt选项
  • A.9 测试运算符
  • A.10 I/O重定向
  • A.11 echo选项与转义序列
  • A.12 printf
  • A.12.1 示例
  • A.12.2 参考
  • A.13 用strftime格式化日期和时间
  • A.14 模式匹配字符
  • A.15 extglob扩展模式匹配运算符
  • A.16 tr转义序列
  • A.17 readline的init文件语法
  • A.18 Emacs模式命令
  • A.19 vi控制模式命令
  • A.20 ASCII编码表
  • 附录B bash 自带的示例
  • bash文档和示例
  • 附录C 命令行处理
  • C.1 命令行处理步骤
  • C.2 引用
  • C.3 eval
  • 附录D 修订控制
  • D.1 参考
  • D.2 Git
  • D.2.1 优点
  • D.2.2 缺点
  • D.2.3 示例
  • D.2.4 参考
  • D.3 Bazaar
  • D.3.1 优点
  • D.3.2 缺点
  • D.3.3 示例
  • D.3.4 参考
  • D.4 Mercurial
  • D.4.1 优点
  • D.4.2 缺点
  • D.4.3 示例
  • D.4.4 参考
  • D.5 Subversion
  • D.5.1 优点
  • D.5.2 缺点
  • D.5.3 示例
  • D.5.4 参考
  • D.6 Meld
  • D.6.1 优点
  • D.6.2 缺点
  • D.6.3 示例
  • D.6.4 参考
  • D.7 etckeeper
  • D.7.1 优点
  • D.7.2 缺点
  • D.7.3 示例
  • D.7.4 参考
  • D.8 其他
  • D.8.1 文档比对
  • D.8.2 变更跟踪和多版本
  • D.8.3 使用这些特性
  • 附录E 从源代码构建 bash
  • E.1 获得bash
  • E.2 解开归档文件
  • E.3 归档文件中都有什么
  • E.3.1 文档
  • E.3.2 bash的配置与构建
  • E.3.3 测试bash
  • E.3.4 潜在问题
  • E.3.5 将bash安装为登录shell
  • E.3.6 示例
  • E.4 如何获得帮助
  • E.4.1 提问
  • E.4.2 报告bug
  • 关于作者
  • 关于封面
  • 看完了
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。