feat: redesign linux course around learning-first structure
This commit is contained in:
319
COURSE.md
319
COURSE.md
@@ -1,147 +1,274 @@
|
||||
# 📚 Linux 命令学习课程体系(入门 → 高手)
|
||||
# Linux 学习平台课程设计(重构版)
|
||||
|
||||
> 学习路径:**理论 → 演示 → 沙盒练习 → 测试 → 徽章认证**
|
||||
## 设计原则
|
||||
|
||||
这次课程重构,目标不再是“闯关刷题”,而是建立一套**适合系统学习 Linux 的知识结构**。
|
||||
|
||||
核心原则:
|
||||
- **先理解,再操作**
|
||||
- **先场景,再命令**
|
||||
- **先最小可用,再扩展参数**
|
||||
- **练习服务于理解,不反客为主**
|
||||
- **每个模块都能迁移到真实工作场景**
|
||||
|
||||
---
|
||||
|
||||
## 🌱 Level 1:入门(新手村)
|
||||
## 新课程结构
|
||||
|
||||
### 🎯 目标:熟悉终端、查看文件、当前目录、简单操作
|
||||
课程分为 6 大模块,不再按简单等级推进,而按学习逻辑推进。
|
||||
|
||||
| 课时 | 主题 | 学习内容 | 沙盒练习目标 | 测试场景 |
|
||||
|------|------|---------|-------------|---------|
|
||||
| 1 | `pwd` - 我在哪? | 当前工作目录 | `pwd` 返回 `/sandbox` | 问:你现在的位置是? |
|
||||
| 2 | `ls` - 看看周围 | 列出目录内容 | `ls` 显示 `users projects logs` | 找出 `/sandbox` 下有几个子目录? |
|
||||
| 3 | `cd` - 移动位置 | 切换目录 | `cd users` → 进入用户区 | 从 `/sandbox` 进到 `/projects` |
|
||||
| 4 | `echo` - 说话 | 打印文本 | `echo "Hello Linux"` | 打印你的名字 |
|
||||
| 5 | `cat` - 看内容 | 查看文件内容 | `cat users/alice.txt` | 读出 alice.txt 的内容 |
|
||||
### 模块 1:建立 Linux 基本认知
|
||||
目标:先搞清楚“我在哪、我看到什么、我怎么移动”。
|
||||
|
||||
**徽章**:` beginner_1 ← 目录旅行者`
|
||||
包含内容:
|
||||
- 什么是终端 / Shell
|
||||
- 什么是当前目录
|
||||
- 什么是绝对路径 / 相对路径
|
||||
- `pwd`
|
||||
- `ls`
|
||||
- `cd`
|
||||
- `echo`
|
||||
- `cat`
|
||||
|
||||
输出能力:
|
||||
- 能在目录中定位自己
|
||||
- 能读懂基础路径
|
||||
- 能查看基础文件内容
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Level 2:文件操作(手艺人)
|
||||
### 模块 2:文件与目录操作
|
||||
目标:建立文件系统操作能力。
|
||||
|
||||
### 🎯 目标:创建、复制、移动、删除(安全版)、查看
|
||||
包含内容:
|
||||
- 文件与目录的区别
|
||||
- 创建 / 复制 / 移动 / 删除
|
||||
- `mkdir`
|
||||
- `touch`
|
||||
- `cp`
|
||||
- `mv`
|
||||
- `rm`
|
||||
- `stat`
|
||||
|
||||
| 课时 | 主题 | 学习内容 | 沙盒练习目标 | 测试场景 |
|
||||
|------|------|---------|-------------|---------|
|
||||
| 6 | `touch` - 创建空文件 | 创建新文件 | `touch mynote.txt` | 创建一个名为 `test.txt` 的文件 |
|
||||
| 7 | `cp` - 复制 | 复制文件/目录 | `cp users/alice.txt backup/` | 复制 `project/backend/app.py` 到 `archive/` |
|
||||
| 8 | `mv` - 移动/重命名 | 移动或重命名 | `mv old.txt new.txt` | 把 `logs/access.log` 重命名为 `old_access.log` |
|
||||
| 9 | `mkdir` - 创建目录 | 创建级联目录 | `mkdir -p a/b/c` | 创建 `myproject/src/main` |
|
||||
| 10 | `head/tail` - 看头尾 | 查看文件前/后几行 | `tail -n 5 logs/access.log` | 查看 `app.py` 最后 3 行 |
|
||||
|
||||
**徽章**:` beginner_2 ← 文件管理员`
|
||||
输出能力:
|
||||
- 能完成日常文件整理
|
||||
- 能理解“创建、备份、迁移、清理”四种动作
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Level 3:搜索高手(情报员)
|
||||
### 模块 3:阅读与筛选信息
|
||||
目标:学会从文件和日志中找信息。
|
||||
|
||||
### 🎯 目标:快速定位、查找、筛选内容
|
||||
包含内容:
|
||||
- `head`
|
||||
- `tail`
|
||||
- `grep`
|
||||
- `wc`
|
||||
- `sort`
|
||||
- `find`
|
||||
- 日志查看思路
|
||||
- 搜索与过滤思路
|
||||
|
||||
| 课时 | 主题 | 学习内容 | 沙盒练习目标 | 测试场景 |
|
||||
|------|------|---------|-------------|---------|
|
||||
| 11 | `grep` - 搜索关键词 | 正则匹配文本 | `grep "Linux" *.txt` | 在 `users/` 下找包含 "Alice" 的文件 |
|
||||
| 12 | `find` - 按条件找文件 | 时间/大小/类型 | `find /logs -type f -name "*.log"` | 找出所有 `.py` 文件 |
|
||||
| 13 | `du` - 查看占用 | 磁盘使用情况 | `du -sh *` | 评估 `/projects` 每个子目录大小 |
|
||||
| 14 | `sort` - 排序 | 排序输出 | `ls \| sort` | 按文件大小升序排列 `/logs` |
|
||||
| 15 | `wc` - 统计 | 行/词/字节数 | `wc -l app.py` | `find /projects -type f \| wc -l` 有几个文件? |
|
||||
|
||||
**徽章**:` intermediate_1 ← 情报专家`
|
||||
输出能力:
|
||||
- 能读日志
|
||||
- 能查关键词
|
||||
- 能定位配置文件
|
||||
- 能做基础统计
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Level 4:文本编辑(文字工作者)
|
||||
### 模块 4:系统状态与资源认知
|
||||
目标:知道系统现在在干什么。
|
||||
|
||||
### 🎯 目标:预览/编辑文本(只读模式)
|
||||
包含内容:
|
||||
- 进程是什么
|
||||
- 磁盘 / 内存 / 挂载点是什么
|
||||
- `ps`
|
||||
- `top`
|
||||
- `df`
|
||||
- `du`
|
||||
- `free`
|
||||
- `mount`
|
||||
- `history`
|
||||
|
||||
| 课时 | 主题 | 学习内容 | 沙盒练习目标 | 测试场景 |
|
||||
|------|------|---------|-------------|---------|
|
||||
| 16 | `nano/vim` 基础 | 只读模式(演示) | `view project/backend/app.py` | 显示文件内容(用 `cat` 替代 vim) |
|
||||
| 17 | `>`/`>>` 重定向 | 输出到文件 | `echo "test" > test.txt` | 把 `grep "def" app.py` 结果保存到 `methods.txt` |
|
||||
| 18 | `|` 管道 | 连接命令 | `cat users/* \| grep Alice` | 找出所有包含 "Linux" 的内容 |
|
||||
|
||||
**徽章**:` intermediate_2 ← 文字工匠`
|
||||
输出能力:
|
||||
- 能做基础排查
|
||||
- 能看懂资源占用
|
||||
- 能理解系统运行状态
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Level 5:高级技巧(小黑客)
|
||||
### 模块 5:网络与服务基础
|
||||
目标:建立 Linux 运维里的连接意识。
|
||||
|
||||
### 🎯 目标:权限、查找大文件、进程、自动化
|
||||
包含内容:
|
||||
- 网络接口是什么
|
||||
- 端口与监听是什么
|
||||
- `ifconfig` / `ip addr`
|
||||
- `ping`
|
||||
- `ss` / `netstat`
|
||||
- `curl`
|
||||
- `wget`
|
||||
- `which` / `whereis`
|
||||
|
||||
| 课时 | 主题 | 学习内容 | 沙盒练习目标 | 测试场景 |
|
||||
|------|------|---------|-------------|---------|
|
||||
| 19 | `find -size` - 找大文件 | 按大小查找 | `find / -size +100M` | 找出 `/logs` 下大于 10KB 的文件 |
|
||||
| 20 | `chmod` 原理 | 权限概念(只读) | 解释 `rwxr-xr-x` | 问:`644` 是什么权限? |
|
||||
| 21 | `ps`/`top` 基础 | 进程概念 | `ps aux \| grep python` | 找出所有 `java` 进程 |
|
||||
| 22 | `history` - 命令历史 | 查看历史 | `history \| tail -n 10` | 看最近 3 条执行的命令 |
|
||||
| 23 | `man` - 查手册 | 查帮助 | `man ls`(模拟) | 问:`ls -a` 是什么作用? |
|
||||
|
||||
**徽章**:` advanced_1 ← 系统法师`
|
||||
输出能力:
|
||||
- 能判断服务通不通
|
||||
- 能理解“域名、端口、监听、请求”的基本关系
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Level 6:实战项目(通关玩家)
|
||||
### 模块 6:权限、习惯与实际运维思维
|
||||
目标:从“会敲命令”过渡到“知道为什么这么做”。
|
||||
|
||||
### 🎯 综合应用:解决真实场景
|
||||
包含内容:
|
||||
- 权限模型基础
|
||||
- `chmod`
|
||||
- `chown`
|
||||
- `chgrp`
|
||||
- `alias`
|
||||
- `export`
|
||||
- `tar`
|
||||
- `crontab`
|
||||
- 常见运维习惯
|
||||
- 风险命令认知
|
||||
|
||||
| 场景 | 任务 | 所需命令 | 难度 |
|
||||
|------|------|----------|------|
|
||||
| 📁 备份项目 | 将 `/projects` 下所有 `.py` 文件备份到 `/backup` | `find`, `cp`, `mkdir` | ⚔️⚔️⚔️ |
|
||||
| 🔎 搜索日志 | 找出所有包含 `"error"` 的日志行 | `grep`, `find`, `cat` | ⚔️⚔️⚔️⚔️ |
|
||||
| 📏 磁盘分析 | 写出 `/projects` 中最大的 3 个文件 | `du`, `sort`, `tail` | ⚔️⚔️ |
|
||||
| 📝 生成报告 | 把所有 `.py` 文件的行数统计保存到 `stats.txt` | `wc`, `find`, `>` | ⚔️⚔️⚔️⚔️⚔️ |
|
||||
| 🔐 权限检查 | 找出所有`.sh` 脚本并检查权限是否为 `755` | `find`, `stat`, `grep` | ⚔️⚔️⚔️⚔️⚔️ |
|
||||
输出能力:
|
||||
- 能理解权限修改的意义
|
||||
- 能建立基础运维安全感
|
||||
- 能开始形成 Linux 使用习惯
|
||||
|
||||
---
|
||||
|
||||
## 🏆 完整通关徽章体系
|
||||
## 每个课时的新结构
|
||||
|
||||
```bash
|
||||
beginner_1 ← 目录旅行者 (pwd/ls/cd)
|
||||
beginner_2 ← 文件管理员 (touch/cp/mv/mkdir)
|
||||
intermediate_1 ← 情报专家 (grep/find/du/sort/wc)
|
||||
intermediate_2 ← 文字工匠 (cat/echo/pipe/redirection)
|
||||
advanced_1 ← 系统法师 (find-size/chmod/ps/history/man)
|
||||
expert_1 ← 实战大师 (综合项目通关)
|
||||
legend ← Linux 大师 (所有课程 + 心得分享)
|
||||
```
|
||||
每一课统一用下面 6 段结构:
|
||||
|
||||
### 1. 学什么
|
||||
一句话说清这个命令/主题在解决什么问题。
|
||||
|
||||
### 2. 为什么重要
|
||||
它在真实 Linux 使用、开发、运维里有什么价值。
|
||||
|
||||
### 3. 核心知识点
|
||||
包括:
|
||||
- 命令作用
|
||||
- 常见参数
|
||||
- 常见组合
|
||||
- 输出怎么看
|
||||
- 容易误解的点
|
||||
|
||||
### 4. 最小示例
|
||||
给 2~4 个最有代表性的示例。
|
||||
|
||||
### 5. 常见场景
|
||||
把命令放进真实场景里:
|
||||
- 查配置
|
||||
- 查日志
|
||||
- 找文件
|
||||
- 看资源
|
||||
- 改权限
|
||||
|
||||
### 6. 练习题
|
||||
练习题不再喧宾夺主,而是用于确认理解。
|
||||
|
||||
---
|
||||
|
||||
## 📝 测验模式设计
|
||||
## 练习设计原则
|
||||
|
||||
每个课时结束后,自动弹出:
|
||||
练习题分成 3 类:
|
||||
|
||||
```bash
|
||||
🎯 当前任务:_____________
|
||||
💡 提示:_________________
|
||||
(stdin) > [输入命令]
|
||||
### A. 理解题
|
||||
检验有没有理解命令用途。
|
||||
例:
|
||||
- 查看当前目录应该用什么命令?
|
||||
- 为什么 `ls -a` 会比 `ls` 多看到东西?
|
||||
|
||||
✅ 回答正确!获得经验值 +100
|
||||
❌ 还未达标!提示:试试 `xxx`
|
||||
```
|
||||
### B. 操作题
|
||||
检验能否正确写出命令。
|
||||
例:
|
||||
- 进入 `/tmp`
|
||||
- 查找 `/etc` 下所有 `.conf` 文件
|
||||
|
||||
答对 3 次 → 解锁下一关
|
||||
### C. 场景题
|
||||
检验是否能把命令放进真实问题中。
|
||||
例:
|
||||
- 日志太大,不想全看,只看最后 20 行怎么办?
|
||||
- 想找出包含 `error` 的日志应该怎么做?
|
||||
|
||||
---
|
||||
|
||||
## 🎯 课程特色
|
||||
## 页面呈现结构(学习优先)
|
||||
|
||||
- ✅ **零风险沙盒**:所有命令在虚拟环境中执行,不会影响真实系统
|
||||
- ✅ **闯关式学习**:从入门到高手,逐步解锁新技能
|
||||
- ✅ **即时反馈**:答对/错都有针对性提示
|
||||
- ✅ **实战导向**:每个级别都有真实业务场景
|
||||
- ✅ **徽章认证**:每完成一个阶段获得专属徽章
|
||||
前端页面不再以“终端交互”为主,而改为:
|
||||
|
||||
### 左侧:课程目录
|
||||
- 模块
|
||||
- 小节
|
||||
- 学习进度
|
||||
|
||||
### 中间:学习正文
|
||||
- 概念讲解
|
||||
- 示例
|
||||
- 场景
|
||||
- 总结
|
||||
|
||||
### 右侧:知识辅助
|
||||
- 关键概念
|
||||
- 易错点
|
||||
- 相关命令
|
||||
- 推荐练习
|
||||
|
||||
### 底部:练习区
|
||||
- 简洁练习,不抢正文
|
||||
- 只做必要反馈
|
||||
- 重点是“学完再练”
|
||||
|
||||
---
|
||||
|
||||
需要我根据这个课程体系开始实现吗?包括:
|
||||
1. `COURSE_TASKS.json`(所有练习题)
|
||||
2. 沙盒模拟器 `sandbox.py`
|
||||
3. 熟悉 `server.py` 重构
|
||||
4. UI 改造(闯关式界面)
|
||||
5. `README.md` 使用文档
|
||||
## 新平台定位
|
||||
|
||||
还是先调整下课程内容?😄
|
||||
重构后的 Linux 平台定位为:
|
||||
|
||||
> **Linux 系统学习平台 + 轻量练习环境**
|
||||
|
||||
不是刷题站,也不是单纯命令模拟器。
|
||||
|
||||
目标用户看到平台后,应该感受到:
|
||||
- 这是能认真学东西的
|
||||
- 不是只会点按钮
|
||||
- 不是只会猜答案
|
||||
- 学完真的能迁移到实际 Linux 使用场景
|
||||
|
||||
---
|
||||
|
||||
## 重构顺序
|
||||
|
||||
### 第一阶段:课程蓝图重构
|
||||
- 重写课程结构
|
||||
- 重写模块划分
|
||||
- 重写题目组织方式
|
||||
|
||||
### 第二阶段:前 3 个模块内容重写
|
||||
- Linux 基本认知
|
||||
- 文件与目录操作
|
||||
- 阅读与筛选信息
|
||||
|
||||
### 第三阶段:页面重构
|
||||
- 课程目录页
|
||||
- 学习正文页
|
||||
- 轻练习区
|
||||
|
||||
### 第四阶段:后续模块补齐
|
||||
- 系统状态
|
||||
- 网络基础
|
||||
- 权限与运维习惯
|
||||
|
||||
---
|
||||
|
||||
## 当前结论
|
||||
|
||||
这次不是“继续补旧平台”,而是:
|
||||
|
||||
> **把 Linux 平台从“交互导向”改造成“知识导向”的系统学习平台。**
|
||||
|
||||
后续所有改动,以这个文档为准。
|
||||
|
||||
Reference in New Issue
Block a user