-
课程介绍:
本课程旨在介绍如何充分挖掘unix/linux程序和命令的功能。通过shell的内置功能可以编写非常复杂的应用程序,可以说几乎所有的应用程序都可 以用shell脚本来编写,脚本是一种最容易获得的系统工具,无须额外的编译器和开发环境,只要有unix/linux主机,就自然可以用到脚本。深入了 解shell的内置功能可以大大降低unix/linux管理员和程序员的劳动强度,提高主机资源管理的效率课程对象: 本课程适用于Linux、Unix管理人员学习,学员需具备unix/linux系统使用经验。
-
课程大纲:
第一部分.shell 编程 简介
1. 为什么使用shell编程?
2. 带着一个Sha-Bang出发(Sha-Bang指的是#!)
2.1. 调用一个脚本
2.2. 初步的练习
第二部分. 基本
3. 特殊字符
4. 变量和参数的介绍
4.1. 变量替换
4.2. 变量赋值
4.3. Bash变量是不区分类型的
4.4. 特殊的变量类型
5. 引用
5.1. 引用变量
5.2. 转义
6. 退出和退出状态码
7. 条件判断
7.1. 条件测试结构
7.2. 文件测试操作符
7.3. 其他比较操作符
7.4. 嵌套的if/then条件测试
7.5. 检测你对测试知识的掌握情况
8. 操作符与相关主题
8.1. 操作符
8.2. 数字常量
第三部分. 进阶
9. 变量重游
9.1. 内部变量
9.2. 操作字符串
9.3. 参数替换
9.4. 指定变量的类型: 使用declare或者typeset
9.5. 变量的间接引用
9.6. $RANDOM: 产生随机整数
9.7. 双圆括号结构
10. 循环与分支
10.1. 循环
10.2. 嵌套循环
10.3. 循环控制
10.4. 测试与分支(case与select结构)
11. 内部命令与内建命令
11.1. 作业控制命令
12. 外部过滤器, 程序和命令
12.1. 基本命令
12.2. 复杂命令
12.3. 时间/日期 命令
12.4. 文本处理命令
12.5. 文件与归档命令
12.6. 通讯命令
12.7. 终端控制命令
12.8. 数学计算命令
12.9. 混杂命令
13. 系统与管理命令
13.1. 分析一个系统脚本
14. 命令替换
15. 算术扩展
16. I/O重定向
16.1. 使用exec
16.2. 代码块重定向
16.3. 重定向的应用
17. Here Document
17.1. Here String
18. 休息片刻
第四部分. 高级主题
19. 正则表达式
19.1. 一份简要的正则表达式介绍
19.2. 通配(globbing)
20. 子shell
21. 受限shell
22. 进程替换
23. 函数
23.1. 复杂函数和函数复杂性
23.2. 局部变量
23.3. 不使用局部变量的递归
24. 别名
25. 列表结构
26. 数组
27. /dev和/proc
27.1. /dev
27.2. /proc
28. Zero与Null
29. 调试
30. 选项
31. 陷阱
32. 脚本编程风格
32.1. 非官方的Shell脚本编写风格
33. 杂项
33.1. 交互与非交互式的交互与非交互式的shell和脚本
33.2. Shell包装
33.3. 测试和比较: 一种可选的方法
33.4. 递归
33.5. 将脚本"彩色化"
33.6. 优化
33.7. 各种小技巧
33.8. 安全问题
33.9. 可移植性问题
33.10. Windows下的shell脚本