Skip to content

Repository files navigation

Linux Lab — 交互式 Linux 学习平台

在浏览器里动手练 bash、zsh、fish,掌握 50 节分阶段 Linux 课程 含练习自动判题、AI 辅导、插件系统

✨ 特性

  • 3 大 Shell 模拟:bash / zsh / fish 完整 prompt 风格 + 内置别名
  • 50 节分阶段课程:8 个阶段(Linux 基础 → 命令行核心 → Shell 深入 → 脚本编程 → 系统管理 → Hermes Agent → OpenClaw)
  • 40+ 内置命令ls cd cat grep find chmod ps kill nano vim htop curl wget ssh tmux screen apt ...
  • 真交互编辑器nano / vim / htop 在 xterm 全屏跑,可光标移动、保存、退出
  • 练习引擎:200+ 练习题,支持 stdout/stderr/exitCode/fileState/envVar 自动判题 + commandSequence 分步判题
  • AI 辅导:AI Tutor / AI Hint / AI Error Diagnosis / AI Review(多 LLM 提供者)
  • 内容生态系统:DSL 驱动的课程流水线、全文搜索、交叉引用、版本管理
  • 插件系统:支持运行时注册新命令 + 判题规则,故障隔离
  • 虚拟文件系统:内存中的标准 FHS(/home/user /etc /var /usr ...)
  • 进度持久化:Zustand + localStorage 记录学习进度、笔记、主题
  • 玻璃拟态 UI:Tailwind 自定义 glass / accent / terminal 主题色板

🚀 快速开始

pnpm install          # 安装依赖
pnpm dev              # 启动开发服务器 (Vite HMR)
pnpm test:e2e         # 运行 E2E 测试

打开 http://localhost:5173 即可。

📦 构建与质量

pnpm build            # tsc 类型检查 + Vite 打包到 dist/
pnpm preview          # 本地预览 dist/ 产物
pnpm lint             # ESLint flat config (TypeScript + React Hooks)
pnpm test             # Vitest 单元测试 (377 tests)
pnpm test:e2e         # Playwright E2E (16 tests, 5 个关键用户流程)

🏗️ 技术栈

技术
框架 React 19 + TypeScript 6 + Vite 7
样式 Tailwind CSS 3 (玻璃拟态主题)
状态 Zustand 5 (persist 到 localStorage)
路由 React Router v7 (HashRouter, 适配静态托管)
终端 xterm.js + Fit + WebLinks addon
内容 marked (Markdown) + dompurify (XSS 防护)
测试 vitest (单元) + Playwright (E2E)
AI OpenRouter / Claude / GPT 多提供者
包管理 pnpm

📂 目录结构

linux-learning/
├── src/
│   ├── main.tsx                  # 入口
│   ├── App.tsx                   # 根组件 + HashRouter
│   ├── components/
│   │   ├── terminal/             # Terminal + injectCommand
│   │   ├── practice/             # PracticePanel / ScoreDisplay / AIDiagnosis
│   │   ├── lesson/               # LessonViewer
│   │   ├── glass/                # GlassButton / GlassPanel
│   │   ├── layout/               # Sidebar / LiquidToolbar
│   │   ├── content/              # SearchBar / ContentTools
│   │   └── feedback/             # EmptyState / LoadingDots
│   ├── shells/
│   │   ├── VirtualFS.ts          # 内存文件系统 (FHS)
│   │   ├── shells.ts             # Shell 抽象 + 执行器
│   │   ├── commands/             # 40+ 内置命令
│   │   ├── interactive/          # nano/vim/htop TUI 会话
│   │   ├── engine/
│   │   │   ├── judge/            # 判题引擎 (registry 模式)
│   │   │   ├── plugin/           # 插件系统 + 故障隔离
│   │   │   ├── ai/               # AI 辅导 / 诊断 / 推荐
│   │   │   ├── content-pipeline/ # DSL 流水线
│   │   │   └── ...
│   │   └── types/                # CommandContext / JudgeRule / FSNode
│   ├── lessons/                  # 50 节课程 + YAML DSL
│   ├── store/useAppStore.ts      # Zustand 全局 store
│   └── pages/Home.tsx            # 首页
├── tests/                        # 377 单元测试 (vitest)
├── e2e/                          # 16 E2E 测试 (Playwright)
├── docs/                         # 架构文档 + 任务列表
└── playwright.config.ts          # Playwright 配置

🎓 课程内容

阶段 课程数 涵盖
Linux 基础 3 概念、FHS、终端 vs Shell
命令行核心 13 文件操作、nano/vim、文本三剑客、查找、权限、进程、网络
Shell 深入 4 bash 变量、管道与重定向、zsh、fish
脚本编程 6 流程控制、函数、正则、实战
系统管理 8 包管理、systemd、用户、日志、网络配置、安全、备份、调优
Hermes Agent 6 概念、安装、CLI、技能、网关、高级功能
OpenClaw 4 概念、工作区、记忆、迁移

🧪 浏览器支持

现代浏览器 (Chrome 100+, Firefox 100+, Safari 15+, Edge 100+)。需要 ES2020 支持。

📜 License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages