复盘日:恭喜你完成了第一周的学习!今天是巩固和总结的日子。我们将回顾过去 6 天学到的所有知识,整理成速查表,并记录遇到的问题和解决方案。今天不只是复习,而是要彻底理解 “如何将学到的知识系统化”、“如何建立自己的知识库” 以及 “如何为下一阶段的学习做好准备”。
复盘内容 | Review
Shell 核心点回顾
Shell 核心点回顾
Day 01 - 基础入门:
- Shebang (
#!/bin/bash):指定解释器 - 变量赋值:
name="value"(等号两边不能有空格) - 变量引用:
$name或${name} - 引号区别:单引号不解析变量,双引号解析变量
- 执行权限:
chmod +x script.sh
- 条件判断:
if [ condition ]; then ... fi - 文件测试:
[ -f "file" ]、[ -d "dir" ] - 字符串比较:
[ "$str" == "value" ] - 数值比较:
[ $num -gt 10 ] - for 循环:
for i in {1..5}; do ... done - while 循环:
while [ condition ]; do ... done
- 管道:
command1 | command2(数据从左到右流动) - 重定向:
>(覆盖)、>>(追加) - 函数定义:
function_name() { ... } - 函数参数:
$1、$2等 - 返回值:通过
return或echo返回
- grep:过滤行,
grep "pattern" file - awk:处理列,
awk '{print $1}' file - sed:文本替换,
sed 's/old/new/g' file - 组合使用:
grep | awk | sed
- 函数封装:将重复代码封装成函数
- 错误处理:检查命令执行结果
$? - 颜色输出:使用 ANSI 转义码
- 日志记录:统一日志输出格式
- 配置管理:集中管理配置变量
- Shell + SQL 整合:使用
mysql -e执行 SQL - Here Document:
cat <<EOF处理多行文本 - 报表生成:格式化输出为 Markdown
- 异常处理:检查连接、验证结果
SQL 核心点回顾
SQL 核心点回顾
Day 01 - 建表基础:
- 字段类型:
INT UNSIGNED、VARCHAR(n)、DATETIME - 约束:
PRIMARY KEY、NOT NULL、DEFAULT、AUTO_INCREMENT - 存储引擎:
ENGINE=InnoDB - 字符集:
DEFAULT CHARSET=utf8mb4
- INSERT:
INSERT INTO table (col1, col2) VALUES (val1, val2) - SELECT:
SELECT * FROM table WHERE condition - UPDATE:
UPDATE table SET col=val WHERE condition(必须加 WHERE!) - DELETE:
DELETE FROM table WHERE condition(必须加 WHERE!) - 软删除 vs 硬删除:生产环境建议使用软删除
- 聚合函数:
COUNT()、SUM()、AVG()、MAX()、MIN() - GROUP BY:
SELECT col, COUNT(*) FROM table GROUP BY col - LEFT JOIN:返回左表所有记录
- INNER JOIN:只返回两表都有匹配的记录
- COALESCE:处理 NULL 值
- 创建索引:
ALTER TABLE table ADD INDEX idx_name (column) - EXPLAIN:分析查询执行计划
- type 字段:
ALL(最慢)到const(最快) - 索引失效:LIKE 左模糊、函数操作、类型转换
- 避免全表扫描:使用索引、避免
!=、避免函数操作 - 深分页优化:使用子查询先查 ID,再回表
- 小表驱动大表:JOIN 时小表作为驱动表
- 优化原则:避免索引失效、利用覆盖索引
- 复杂查询:结合聚合、分组、联表
- 数据统计:生成业务报表
- Shell 整合:在脚本中执行 SQL 查询
复盘产出 | Output
1. 第一阶段速查表
创建一个属于你自己的常用命令清单,方便日后查阅。Shell 命令速查表
Shell 命令速查表
变量操作:文件操作:条件判断:循环:三剑客:
SQL 命令速查表
SQL 命令速查表
表操作:数据操作:索引操作:常用函数:
2. 问题清单
记录过去 6 天遇到的坑和解决方法,这是你的宝贵经验。常见问题记录
Shell 常见问题:
- 变量赋值等号两边有空格 → 报错
- 字符串比较未加引号 → 空变量导致错误
- 文件路径有空格未加引号 → 命令失败
- 函数未定义就调用 → 报错
- UPDATE/DELETE 忘记加 WHERE → 更新/删除所有数据
- 字符串比较未加引号 → 语法错误
- LIKE 左模糊匹配 → 索引失效
- 对字段使用函数 → 索引失效
解决方案记录
Shell 解决方案:
- 变量赋值:等号两边不能有空格
- 字符串比较:必须加引号
- 文件路径:始终加引号
- 函数调用:先定义后调用
- UPDATE/DELETE:必须加 WHERE,更新前先 SELECT 确认
- 字符串比较:必须加引号
- 模糊匹配:尽量使用右模糊
LIKE 'prefix%' - 函数操作:将函数移到常量侧
3. 优化示例
挑选一个你认为写得最好的脚本进行重构,展示你的进步。重构示例:Day 01 的 hello.sh
重构示例:Day 01 的 hello.sh
原始版本:优化版本(应用 Week 1 学到的知识):改进点:
- 添加了配置区,便于修改
- 添加了颜色输出函数,提高可读性
- 添加了输入验证,提高健壮性
- 添加了错误处理,优雅退出
- 添加了注释,便于理解
🏆 阶段性总结
恭喜你!你已经完成了 Project Team 基础训练营的第一阶段。到这里你已经掌握了:
- Shell 脚本能力:从基础语法到生产级脚本编写
- SQL 数据库能力:从建表到性能优化
- 整合能力:将 Shell 和 SQL 结合起来解决实际问题
- 工程化思维:函数封装、错误处理、代码复用
- 为后续学习打下基础:Python、FastAPI、Go 的学习将更轻松
第一周学习成果
Shell 技能树
✅ 基础语法(变量、输出、权限)
✅ 流程控制(条件、循环)
✅ 管道和重定向
✅ 函数封装
✅ 三剑客(grep/awk/sed)
✅ 生产级脚本编写
SQL 技能树
✅ 表结构设计
✅ CRUD 操作
✅ 聚合和分组
✅ 联表查询
✅ 索引优化
✅ 慢查询分析
下一阶段预告
今日产出物
day07/shell_cheatsheet.md- Shell 命令速查表day07/sql_cheatsheet.md- SQL 命令速查表day07/problems_and_solutions.md- 问题清单和解决方案day07/optimized_script.sh- 优化后的脚本示例
参考资源
Shell 学习资源
SQL 学习资源
上一课
Day 06:Shell + SQL 综合实战
下一阶段
Day 08:Python 基础入门