文件名称:Bash新手指南
文件大小:721KB
文件格式:PDF
更新时间:2021-12-28 08:02:54
Bash
第一章 Bash 和 Bash 脚本 .................................................................................................2 1.1.普通 shell 程序.....................................................................................................2 1.1.1. shell 的作用 ...............................................................................................2 1.1.2. shell 类型...................................................................................................2 1.2. Bash 的优势 ........................................................................................................2 1.2.1. Bash 是 GNU Shell......................................................................................2 1.2.2. Bash 独有的特性........................................................................................2 1.3. 执行命令 ............................................................................................................2 1.3.1. 概要 .........................................................................................................2 1.3.2. Shell 内部命令 ...........................................................................................2 1.3.3. 从脚本执行程序.........................................................................................2 1.4. 建立块................................................................................................................2 1.4.1. Shell 建立块...............................................................................................2 1.5. 开发优良脚本......................................................................................................2 1.5.1. 优良脚本的要素.........................................................................................2 1.5.2. 结构 .........................................................................................................2 1.5.3. 术语 .........................................................................................................2 1.5.4. 有序且有逻辑性.........................................................................................2 1.5.5. 一个 Bash 脚本的例子:mysystem.sh..........................................................2 1.5.6. 初始化脚本例子.........................................................................................2 1.6. 总结...................................................................................................................2 1.7. 练习...................................................................................................................2 第二章 编写和调试脚本.....................................................................................................2 2.1. 建立并且运行一个脚本........................................................................................2 2.1.1. 编写与命名 ...............................................................................................2 2.1.2. Script1.sh..................................................................................................2 2.1.3. 执行脚本...................................................................................................2 2.2. 脚本基础 ............................................................................................................2 2.2.1. 哪个 Shell 来执行脚本................................................................................2 2.2.2. 加入注释...................................................................................................2 2.3. 调试 Bash 脚本 ...................................................................................................2 2.3.1. 调试整个脚本............................................................................................2 2.3.2. 调试部分脚本............................................................................................2 Bash 新手指南 3/91 2.4. 总结...................................................................................................................2 2.5. 练习...................................................................................................................2 第三章 Bash 环境 .............................................................................................................2 3.1. Shell 初始化文件..................................................................................................2 3.1.1. 跨系统配置文件.........................................................................................2 3.1.2. 单独用户配置文件 .....................................................................................2 3.1.3. 改变 shell 配置文件....................................................................................2 3.2. 变量...................................................................................................................2 3.2.1. 变量的类型 ...............................................................................................2 3.2.2. 建立变量...................................................................................................2 3.2.3. 导出变量...................................................................................................2 3.2.4. 保留变量...................................................................................................2 3.2.5. 特殊参数...................................................................................................2 3.2.6. 脚本通过变量循环 .....................................................................................2 3.3. 引用字符 ............................................................................................................2 3.3.1. 为何?。。.................................................................................................2 3.3.2. 转义字符...................................................................................................2 3.3.3. 单引用......................................................................................................2 3.3.4. 双引用......................................................................................................2 3.3.5. ANSI−C 引用 .............................................................................................2 3.3.6. Locales..................46................................................................................2 3.4. Shell 扩展............................................................................................................2 3.4.1. 概要 .........................................................................................................2 3.4.2. 括号表达式............................................................................................2 3.4.3. 波浪表达式 ...............................................................................................2 3.4.4. Shell 参数和变量扩展..................................................................................2 3.4.5. 命令替换...................................................................................................2 3.4.6. 算术表达式 ...............................................................................................2 3.4.7. 替换的处理................................................................................................2 3.4.8. Word splitting ............................................................................................2 3.4.9. 文件名扩展 ...............................................................................................2 3.5. 别名...................................................................................................................2 3.5.1. 什么是别名 ...............................................................................................2 3.5.2. 建立和消除别名.........................................................................................2 3.6. 更多 Bash 选项 ...................................................................................................2 3.6.1. 显示选项...................................................................................................2 3.6.2. 改变选项...................................................................................................2 3.7. 总结...................................................................................................................2 3.8. 练习...................................................................................................................2 第四章 正则表达式 ...........................................................................................................2 4.1. 正则表达式.........................................................................................................2 4.1.1. 什么是正则表达式 .....................................................................................2 4.1.2. 正则表达式 metacharacters........................................................................2 4.1.3. Basic versus 扩展正则表达式......................................................................2 Bash 新手指南 4/91 4.2. 使用 Grep 的例子 ................................................................................................2 4.2.1. 什么是 Grep?.............................................................................................2 4.2.2. Grep 与正则表达式.....................................................................................2 4.3. 模式匹配使用 Bash 特性......................................................................................2 4.3.1. 字符范围...................................................................................................2 4.3.2. 字符 classes .............................................................................................2 4.4. 总结...................................................................................................................2 4.5. 练习...................................................................................................................2 第五章 GNU SED 流编辑器................................................................................................2 5.1. 介绍...................................................................................................................2 5.1.1. 什么是 sed?...............................................................................................2 5.1.2. sed 命令....................................................................................................2 5.2. 交互编辑 ............................................................................................................2 5.2.1. 打印包含 pattern 的行................................................................................2 5.2.2. 删除包含 pattern 的输入行.........................................................................2 5.2.3. 行的范围...................................................................................................2 5.2.4. 用 sed 查找替换.........................................................................................2 5.3. 非交互编辑 ..................................................................................................2 5.3.1. 从文件读取 sed 命令..................................................................................2 5.3.2. 写输出文件 ...............................................................................................2 5.4. 总结...................................................................................................................2 5.5. 练习...................................................................................................................2 第章 GNU AWK 编程语言...............................................................................................2 6.1. gawk 上路...........................................................................................................2 6.1.1. 什么是 gawk?............................................................................................2 6.1.2. Gawk 命令.................................................................................................2 6.2. 打印程序 ............................................................................................................2 6.2.1. 打印选择的域............................................................................................2 6.2.2. 格式化块...................................................................................................2 6.2.3. 打印命令和正则表达式...............................................................................2 6.2.4. 特殊的 pattern...........................................................................................2 6.2.5. Gawk 脚本.................................................................................................2 6.3. Gawk 变量...........................................................................................................2 6.3.1. 输入块的分隔符.........................................................................................2 6.3.2. 输出的分隔符............................................................................................2 6.3.3. 记录的数量 ...............................................................................................2 6.3.4. 用户定义变量............................................................................................2 6.3.5. 更多例子...................................................................................................2 6.3.6. printf 程序 .................................................................................................2 6.4. 总结...................................................................................................................2 6.5. 练习...................................................................................................................2 第七章 条件语句...............................................................................................................2 7.1. 介绍 if ................................................................................................................2 7.1.1. 概要..........................................................................................................2 Bash 新手指南 5/91 7.1.2.if 的简单应用...............................................................................................2 7.2.更多 if 的高级使用方法..........................................................................................2 7.2.1.if/then/else 结构..........................................................................................2 7.2.2. if/then/elif/else 结构...................................................................................2 7.2.3.if 嵌套语句..................................................................................................2 7.2.4.布尔操作.....................................................................................................2 7.2.5. 使用 exit 语句和 if......................................................................................2 7.3.使用 case 语句......................................................................................................2 7.3.1.简单的条件 .................................................................................................2 7.4.总结.....................................................................................................................2 7.5.练习.....................................................................................................................2 第八章 编写交互脚本........................................................................................................2 8.1.显示用户消息 .......................................................................................................2 8.1.1. 交互与否...................................................................................................2 8.1.2. 使用内建 echo 命令 ...................................................................................2 8.2. 捕获用户输入......................................................................................................2 8.2.1. 使用内建 read 命令....................................................................................2 8.2.2. 提示用户输入............................................................................................2 8.2.3. 重定向和文件描述符..................................................................................2 8.2.4. 文件输入和输出.........................................................................................2 8.3. 总结...................................................................................................................2 8.4. 练习...................................................................................................................2 第九章 重复性任务 ...........................................................................................................2 9.1. for 循环...............................................................................................................2 9.1.1. 如何工作...................................................................................................2 9.1.2. 例子 .........................................................................................................2 9.2. while 循环...........................................................................................................2 9.2.1. What is it?......................108 .....................................................................2 9.2.2. 例子 .........................................................................................................2 9.3. until 循环 ............................................................................................................2 9.3.1. What is it?......................111 .....................................................................2 9.3.2. 例子 .........................................................................................................2 9.4. I/O 重定向和循环 ................................................................................................2 9.4.1. 输入重定向 ...............................................................................................2 9.4.2. 输出重定向 ...............................................................................................2 9.5. Break 和 continue ................................................................................................2 9.5.1.内建 break..................................................................................................2 9.5.2.内建 continue..............................................................................................2 9.5.3. 例子 .........................................................................................................2 9.6. Making menus with the select built−in...............115 .............................................2 9.6.1. 概要.........................115...........................................................................2 9.6.2. 子菜单......................................................................................................2 9.7.内建 shift..............................................................................................................2 9.7.1. What does it do?............117.......................................................................2 Bash 新手指南 6/91 9.7.2. 例子..........................................................................................................2 9.8. 总结...................................................................................................................2 9.9. 练习...................................................................................................................2 第十章 深入变量...............................................................................................................2 10.1. 变量种类 ..........................................................................................................2 10.1.1. 概要 assignment of values........120 .........................................................2 10.1.2. 使用内建 declare .....................................................................................2 10.1.3. 常量........................................................................................................2 10.2. 数组变量...........122..........................................................................................2 10.2.1. 创建数组.................................................................................................2 10.2.2. Dereferencing the 变量 in an array.....................122 ................................2 10.2.3. 删除数组变量 ..........................................................................................2 10.2.4. 数组例子.................................................................................................2 10.3. Operations on 变量 ...........................................................................................2 10.3.1. Arithmetic on 变量.................126 ............................................................2 10.3.2. 变量的长度..............................................................................................2 10.3.3. 变量的转变..............................................................................................2 10.4. 总结.................................................................................................................2 10.5. 练习.................................................................................................................2 第十一章 函数..................................................................................................................2 11.1. 介绍.................................................................................................................2 11.1.1. 什么是函数?............................................................................................2 11.1.2. 函数语法.................................................................................................2 11.1.3. 函数中参数的位置....................................................................................2 11.1.4. 显示函数.................................................................................................2 11.2. 脚本中函数的例子.............................................................................................2 11.2.1. 循环利用.................................................................................................2 11.2.2. 设置路径.................................................................................................2 11.2.3. 远程备份.................................................................................................2 11.3. 总结.................................................................................................................2 11.4. 练习.................................................................................................................2 第十二章 捕捉信号 ...........................................................................................................2 12.1. 信号.................................................................................................................2 12.1.1. 介绍........................................................................................................2 12.1.2. kill 信号的使用 .........................................................................................2 12.2. 陷阱.................................................................................................................2 12.2.1. 概要........................................................................................................2 12.2.2. Bash 怎样解释陷阱...................................................................................2 12.2.3. 更多例子.................................................................................................2 12.3. 总结.................................................................................................................2 12.4. 练习.................................................................................................................2 附录 A Shell 特性 ..............................................................................................................2 A.1.常用特性..............................................................................................................2 附录 B GNU *文档守则..................................................................................................2