shell编程从入门到精通.pdf
Linux Shell编程从入门到精通 《Linux Shell编程从入门到精通》由浅入深、循序渐进地详细讲解了Linux Shell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。 《Linux Shell编程从入门到精通》旨在通过理清Linux Shell编程的脉络,从基本概念着手,以丰富、实用的范例作为辅助,使读者能够深入浅出的学习Linux Shell编程。 《Linux Shell编程从入门到精通》的每一章节都配有综合案例,这些综合案例不仅可以使读者复习前面所学的知识,还可以增加开发项目的经验。这些案例实用性很强,许多代码可以直接应用到Linux系统管理中。 《Linux Shell编程从入门到精通》配有全程录像的视频讲解光盘,读者可以将视频和书结合起来学习,可以更快、更好地掌握Linux Shell编程技术。 《Linux Shell编程从入门到精通》适合于Linux Shell编程的初学者,有一定Linux Shell编程基础,但还需要进一步提高的人阅读。本书对于有一定编程经验的程序员也有很好的参考价值。 第1章 第一个Shell程序 1.1 第一道菜 1.2 如何运行程序 1.2.1 选婿:位于第一行的#! 1.2.2 找茬:程序执行的差异 1.2.3 shell的命令种类 1.3 Linux Shell的变量 1.3.1 变量 1.3.2 用echo输出变量 1.3.3 环境变量的相关操作 1.3.4 shell中一些常用环境变量 1.4 Linux Shell是解释型语言 1.4.1 编译型语言与解释型语言 1.4.2 Linux Shell编程的优势 1.5 小结 第2章 Shell编程基础 2.1 向脚本传递参数 2.1.1 Shell脚本的参数 2.1.2 参数的用途 2.2 I/O重定向 2.2.1 标准输入、标准输出与标准错误 2.2.2 管道与重定向 2.2.3 文件描述符 2.2.4 特殊文件的妙用 2.3 基本文本检索 2.4 UNIX/Linux系统的设计与shell 编程 2.4.1 一切皆文件 2.4.2 UNIX编程的基本原则 2.5 小结 第3章 编程的基本元素 3.1 再识变量 3.1.1 用户变量 3.1.2 位置变量 3.1.3 环境变量 3.1.4 启动文件 3.2 函数 3.2.1 函数定义 3.2.2 函数的参数和返回值 3.3 条件控制与流程控制 3.3.1 if/else语句 3.3.2 退出状态 3.3.3 退出状态与逻辑操作 3.3.4 条件测试 3.4 循环控制 3.4.1 for循环 3.4.2 while/until循环 3.4.3 跳出循环 3.4.4 循环实例 3.5 小结 第4章 正则表达式 4.1 什么是正则表达式 4.1.1 正则表达式的广泛应用 4.1.2 如何学习正则表达式 4.1.3 如何实践正则表达式 4.2 正则基础 4.2.1 元字符 4.2.2 单个字符 4.2.3 单个表达式匹配多个字符 4.2.4 文本匹配锚点 4.2.5 运算符优先级 4.2.6 更多差异 4.3 正则表达式的应用 4.3.1 扩展 4.3.2 案例研究:罗马数字 4.3.3 案例研究:解析电话号码 4.4 小结 第5章 基本文本处理 5.1 排序文本 5.1.1 sort命令的行排序 5.1.2 sort命令的字段排序 5.1.3 sort小结 5.2 文本去重 5.3 统计文本行数、字数以及字 符数 5.4 打印和格式化输出 5.4.1 使用pr打印文件 5.4.2 使用fmt命令格式化文本 5.4.3 使用fold限制文本宽度 5.5 提取文本开头和结尾 5.6 字段处理 5.6.1 字段的使用案例 5.6.2 使用cut取出字段 5.6.3 使用join连接字段 5.6.4 其他字段处理方法 5.7 文本替换 5.7.1 使用tr替换字符 5.7.2 其他选择 5.8 一个稍微复杂的例子 5.8.1 实例描述 5.8.2 取出记录的ip字段和id字段 5.8.3 将记录按照IP顺序排序 5.8.4 使用uniq统计重复IP 5.8.5 根据访问次数进行排序 5.8.6 提取出现次数最多的100条 5.9 小结 第6章 文件和文件系统 6.1 文件 6.1.1 列出文件 6.1.2 文件的类型 6.1.3 文件的权限 6.1.4 文件的修改时间 6.2 寻找文件 6.2.1 find命令的参数 6.2.2 遍历文件 6.3 比较文件 6.3.1 使用comm比较排序后文件 6.3.2 使用diff比较文件 6.3.3 其他文本比较方法 6.4 文件系统 6.4.1 什么是文件系统 6.4.2 文件系统与磁盘分区 6.4.3 Linux分区格式的选择与安全性 6.4.4 文件系统与目录树 6.4.5 文件系统的创建与挂载 6.5 小结 第7章 流编辑 7.1 什么是sed 7.1.1 挑选编辑器 7.1.2 sed的版本 7.2 sed示例 7.2.1 sed的工作方式 7.2.2 sed工作的地址范围 7.2.3 规则表达式 7.3 更强大的sed功能 7.3.1 替换 7.3.2 地址范围的迷惑 7.4 组合命令 7.4.1 组合多条命令 7.4.2 将多条命令应用到一个地址范围 7.5 实际的例子 7.6 sed实践 7.6.1 第一步 替换名字 7.6.2 第二步 删除前3行 7.6.3 第三步 显示5~10行 7.6.4 第四步 删除包含Lane的行 7.6.5 第五步 显示生日在November-December之间的行 7.6.6 第六步 把3个星号(***)添加到以Fred开头的行 7.6.7 第七步 用JOSE HASRETIRED取代包含Jose的行 7.6.8 第八步 把Popeye的生日改成11/14/46 7.6.9 第九步 删除所有空白行 7.6.10 第十步 脚本 7.7 小结 第8章 文本处理利器awk Shell编程从入门到精通》配有全程录像的视频讲解光盘,读者可以将视频和书结合起来学习,可以更快、更好地掌握Linux Shell编程技术。 《Linux Shell编程从入门到精通》适合于Linux Shell编程的初学者,有一定Linux Shell编程基础,但还需要进一步提高的人阅读。本书对于有一定编程经验的程序员也有很好的参考价值。 第1章 第一个Shell程序 1.1 第一道菜 1.2 如何运行程序 1.2.1 选婿:位于第一行的#! 1.2.2 找茬:程序执行的差异 1.2.3 shell的命令种类 1.3 Linux Shell的变量 1.3.1 变量 1.3.2 用echo输出变量 1.3.3 环境变量的相关操作 1.3.4 shell中一些常用环境变量 1.4 Linux Shell是解释型语言 1.4.1 编译型语言与解释型语言 1.4.2 Linux Shell编程的优势 1.5 小结 第2章 Shell编程基础 2.1 向脚本传递参数 2.1.1 Shell脚本的参数 2.1.2 参数的用途 2.2 I/O重定向 2.2.1 标准输入、标准输出与标准错误 2.2.2 管道与重定向 2.2.3 文件描述符 2.2.4 特殊文件的妙用 2.3 基本文本检索 2.4 UNIX/Linux系统的设计与shell 编程 2.4.1 一切皆文件 2.4.2 UNIX编程的基本原则 2.5 小结 第3章 编程的基本元素 3.1 再识变量 3.1.1 用户变量 3.1.2 位置变量 3.1.3 环境变量 3.1.4 启动文件 3.2 函数 3.2.1 函数定义 3.2.2 函数的参数和返回值 3.3 条件控制与流程控制 3.3.1 if/else语句 3.3.2 退出状态 3.3.3 退出状态与逻辑操作 3.3.4 条件测试 3.4 循环控制 3.4.1 for循环 3.4.2 while/until循环 3.4.3 跳出循环 3.4.4 循环实例 3.5 小结 第4章 正则表达式 4.1 什么是正则表达式 4.1.1 正则表达式的广泛应用 4.1.2 如何学习正则表达式 4.1.3 如何实践正则表达式 4.2 正则基础 4.2.1 元字符 4.2.2 单个字符 4.2.3 单个表达式匹配多个字符 4.2.4 文本匹配锚点 4.2.5 运算符优先级 4.2.6 更多差异 4.3 正则表达式的应用 4.3.1 扩展 4.3.2 案例研究:罗马数字 4.3.3 案例研究:解析电话号码 4.4 小结 第5章 基本文本处理 5.1 排序文本 5.1.1 sort命令的行排序 5.1.2 sort命令的字段排序 5.1.3 sort小结 5.2 文本去重 5.3 统计文本行数、字数以及字 符数 5.4 打印和格式化输出 5.4.1 使用pr打印文件 5.4.2 使用fmt命令格式化文本 5.4.3 使用fold限制文本宽度 5.5 提取文本开头和结尾 5.6 字段处理 5.6.1 字段的使用案例 5.6.2 使用cut取出字段 5.6.3 使用join连接字段 5.6.4 其他字段处理方法 5.7 文本替换 5.7.1 使用tr替换字符 5.7.2 其他选择 5.8 一个稍微复杂的例子 5.8.1 实例描述 5.8.2 取出记录的ip字段和id字段 5.8.3 将记录按照IP顺序排序 5.8.4 使用uniq统计重复IP 5.8.5 根据访问次数进行排序 5.8.6 提取出现次数最多的100条 5.9 小结 第6章 文件和文件系统 6.1 文件 6.1.1 列出文件 6.1.2 文件的类型 6.1.3 文件的权限 6.1.4 文件的修改时间 6.2 寻找文件 6.2.1 find命令的参数 6.2.2 遍历文件 6.3 比较文件 6.3.1 使用comm比较排序后文件 6.3.2 使用diff比较文件 6.3.3 其他文本比较方法 6.4 文件系统 6.4.1 什么是文件系统 6.4.2 文件系统与磁盘分区 6.4.3 Linux分区格式的选择与安全性 6.4.4 文件系统与目录树 6.4.5 文件系统的创建与挂载 6.5 小结 第7章 流编辑 7.1 什么是sed 7.1.1 挑选编辑器 7.1.2 sed的版本 7.2 sed示例 7.2.1 sed的工作方式 7.2.2 sed工作的地址范围 7.2.3 规则表达式 7.3 更强大的sed功能 7.3.1 替换 7.3.2 地址范围的迷惑 7.4 组合命令 7.4.1 组合多条命令 7.4.2 将多条命令应用到一个地址范围 7.5 实际的例子 7.6 sed实践 7.6.1 第一步 替换名字 7.6.2 第二步 删除前3行 7.6.3 第三步 显示5~10行 7.6.4 第四步 删除包含Lane的行 7.6.5 第五步 显示生日在November-December之间的行 7.6.6 第六步 把3个星号(***)添加到以Fred开头的行 7.6.7 第七步 用JOSE HASRETIRED取代包含Jose的行 7.6.8 第八步 把Popeye的生日改成11/14/46 7.6.9 第九步 删除所有空白行 7.6.10 第十步 脚本 7.7 小结 第8章 文本处理利器awk
用户评论
deathbaby14717 2019-04-10 21:31:22
不错的资源,感谢分享
yxf24517 2019-04-10 21:31:22
非常感谢分享,分享无敌!!!!
sinat_36627 2019-04-10 21:31:22
什么有用的参考文件,方便学习
hutianlizhy 2019-04-10 21:31:22
语法讲的太详细,但是目录没有做好,找细节不好找
joy_stt 2019-04-10 21:31:22
书不错,值得看看谢谢
LBJ2259 2019-04-10 21:31:22
SystemVerilog硬件设计及建模
dugufeiying76923 2019-04-10 21:31:22
谢谢分享,资源很好
junx_14335 2019-04-10 21:31:22
脚本里的代码有缺失,对初学者简直是灾难
liuyanlei_26 2019-04-10 21:31:22
谢谢,帮同事找资料,以前看过但是没有保存,谢谢啦。
SunnyChanRT 2019-04-10 21:31:22
正在学习中,例子不错。