Bash 脚本教程
以 C 作为出发点,用 C 的视角理解 Bash。
学习方式
每条学习步骤遵循三步法:
通读概念 — 理解语法、命令、机制的原理
动手实验 — 在终端中逐行运行示例,观察输出
写脚本 — 将零散命令组合成可复用的脚本
每章建议 1-2 天完成。
章节总览
flowchart TD
A["1入门\n基础语法"] --> B["2精通\nsed/awk/进程"]
A --> C["3实战\n一行流/部署"]
B --> D["4系统管理\n用户/进程/磁盘"]
B --> E["5网络编程\ncurl/socket"]
D --> F["6工程化\n规范/测试/日志"]
E --> F
A --> G["7与C交互\n管道/调用"]
F --> H["red_team/bash\n红队专题"]
与其他教程的关系
章节列表
Phase 1 — 入门基础
顺序 文件 主题 0 环境搭建 安装Bash、编辑器、第一个脚本 1 Shell本质 bash在操作系统中的位置、shell家族 2 变量与类型 变量声明、类型、作用域 3 输入输出 echo/read/printf/heredoc 4 条件判断 if/elif/case/test/ 5 循环 for/while/until/break/continue 6 函数 定义/参数/返回值/局部变量 7 字符串操作 切片/替换/匹配/长度 8 数组 索引数组/关联数组/遍历
Phase 2 — 精通
顺序 文件 主题 9 进程与信号 前后台/trap/信号/作业控制 10 管道与重定向 管道/重定向/xargs/exec 11 正则表达式 BRE/ERE/PCRE/grep/sed/awk 12 sed 替换/删除/插入/多行/地址 13 awk 字段/模式/数组/BEGIN-END 14 调试与性能 set -x/shellcheck/profiling 15 子shell $()/“/子shell/进程替换 16 参数展开 默认值/模式匹配/替换 17 错误处理 trap ERR/EXIT/ERRTRAP
Phase 3 — 实战
Phase 4 — 系统管理
顺序 文件 主题 23 用户权限 useradd/chmod/sudo 24 进程管理 ps/top/kill/systemd 25 磁盘 df/du/mount/lvm 26 网络配置 ip/iptables/nftables 27 定时任务 crontab/systemd timer 28 服务管理 systemd unit编写
Phase 5 — 网络编程
Phase 6 — 工程化
顺序 文件 主题 33 脚本规范 Google Shell Style Guide 34 可移植性 POSIX/bashisms 35 测试 bats框架 36 日志框架 日志级别/格式 37 配置管理 配置文件/环境变量
Phase 7 — 与C交互
学习节奏建议
Phase 1 (3-5天): 入门基础 — 变量、条件、循环、函数
Phase 2 (5-7天): 精通 — sed/awk/正则/进程管理
Phase 3 (2-3天): 实战 — 一行流/日志分析/部署
Phase 4 (3-4天): 系统管理 — 用户/进程/磁盘/网络
Phase 5 (2-3天): 网络编程 — curl/socket/HTTP
Phase 6 (2-3天): 工程化 — 规范/测试/日志
Phase 7 (1-2天): 与C交互 — 管道/调用