shell编程学习大纲

一、简介及基础

shell是什么,为什么要学习shell
shell发展史及分类
bash功能简介
部署设置bash环境
shell脚本组成、运行模式及执行方法
bash排错方法
父shell和子shell
常用快捷键

二、变量

变量分类
内部变量
预定义变量
自定义变量及基本用法
数组
特殊字符
别名
Here Document
打印特殊字符

三、循环结构与流程控制

if条件判断
case条件判断
for循环
while循环
until循环
select命令
break和continue

四、函数

函数用法
函数作用范围
参数使用
建立函数库
递归函数

五、算数运算

算术式简介
算术扩展
利用expr做算术运算
使用$[]做算术运算
使用内置变量declare、let做算术运算
利用bc做浮点运算
进制转换

六、重定向与转向

文件代码
操作文件
输入输出转向
转向附加
标准错误伴随输出转向
Here Document转向

七、高级变量与字符串操作

变量扩展:测试存在性及空值
变量扩展:取字符串切片,字符串长度
变量扩展:对比样式
变量扩展:取变量名称列表,数组索引列表
命令替换

八、正则表达式

入门介绍
元字符
字条转义
重复
字符类
分支条件
反义
分组
后向引用
零宽断言与负向零宽断言
贪婪与懒惰
注释
处理选项
平衡组/递归匹配

九、sed编辑器

sed介绍
sed基本语法
sed调用方式
sed高级用法

十、awk过滤器

awk原理介绍
awk基本语法
awk调用方式
awk循环语句
awk函数
awk数组
awk的BEGIN和END模式
awk数学运算和字符串操作
awk重定向输出
awk与bash之间传参调用
awk调试方法

十一、文字与图形接口编程

dialog文本接口编程
xdialog图形接口编程

十二、网络编程

bash网络转向
远程执行命令
expect与自动登录

十三、陷阱触发

信号signal
trap运用

十四、加密与包装

加密shell脚本
生成二进制可执行文件

十五、常用命令

grep命令详解
find与xargs
sort和uniq命令详解
cut命令详解
curl与wget命令详解
cat、tac与rev
tr命令详解
paste命令详解
join命令详解

十六、技巧

利用脚本修改密码
判断奇偶
添加行号与删除行号
删除行首空格,删除重复行
合并行操作
逐行读取操作
字符与ASCII码转换操作
连接mysql数据库操作

十七、疑问

PS1和CR的关系
echo知多少
""(双绰号)与''(单引号)差在哪儿
export前后差在哪儿
exec跟source差在哪儿
()与{}差在哪儿
$(())和$()、${}差在哪儿
$@和$*差在哪儿
&&和||差在哪儿
>和<差在哪儿
你要if还是case
for what?while和until差在哪儿?
[^ ]和[! ]差在哪儿

十八、shell书籍推荐