# linux_mastery_game **Repository Path**: solos_admin/linux_mastery_game ## Basic Information - **Project Name**: linux_mastery_game - **Description**: 通过游戏化方式学习 Linux 运维知识,支持闯关模式和面试官模式 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-27 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Web, 游戏, Linux ## README # 🎮 Linux 运维闯关游戏 > 通过游戏化方式学习 Linux 运维知识,支持闯关模式和面试官模式 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://www.python.org/) [![HTML5](https://img.shields.io/badge/HTML5-E34F26?logo=html5&logoColor=white)](https://html.spec.whatwg.org/) [![JavaScript](https://img.shields.io/badge/JavaScript-ES6+-yellow.svg)](https://www.ecma-international.org/) [![Offline](https://img.shields.io/badge/Offline-Ready-green.svg)](https://github.com) --- ## 📖 项目简介 Linux 运维闯关游戏是一款**完全离线可用**的运维学习游戏,通过游戏化的方式帮助用户掌握 Linux 运维技能。项目包含**1450+道技术题目**,涵盖 Linux 基础、Docker、Kubernetes、DevOps、中间件等核心领域。 ### 🎯 核心特色 - **✅ 纯离线运行** - 无需网络连接,完全本地化部署 - **🎮 双游戏模式** - 闯关模式 + 面试官模式 - **📚 丰富题库** - 18个中间件,1450+道高质量技术题目 - **💡 智能提示** - 每题配备详细解析和关键提示 - **🏆 进度追踪** - 本地存储学习进度和成就 --- ## 🚀 快速开始 ### 系统要求 #### 浏览器要求 - **推荐**: Chrome 90+, Edge 90+, Firefox 88+, Safari 14+ - **最低**: 支持 ES6+ 的现代浏览器 - **无需**: 任何外部网络连接 #### Python 要求 - **版本**: Python 3.7 或更高版本 - **推荐**: Python 3.9+ - **模块**: 仅使用 Python 标准库(无需安装任何第三方包) #### 支持的操作系统 - ✅ Windows 7/10/11 - ✅ macOS 10.13+ - ✅ Linux (所有主流发行版) - ✅ FreeBSD/OpenBSD ### 启动方式 #### 方式一:使用启动脚本(推荐) **Windows:** ```bash start.bat ``` **Unix/Linux/Mac:** ```bash chmod +x start.sh ./start.sh ``` **跨平台(需要 Python):** ```bash python start.py ``` 启动后自动打开浏览器访问 `http://localhost:8000` #### 方式二:直接运行服务器脚本 ```bash python scripts/start_server_fixed.py ``` #### 方式三:使用 Python 内置服务器 ```bash # Python 3.x python -m http.server 8000 # 或指定端口 python -m http.server 8080 ``` --- ## 🎮 游戏模式 ### 1. 闯关模式(Campaign Mode) 循序渐进的学习路径,按照技术栈和难度组织关卡: **关卡结构:** ``` Linux 基础 → Docker → Kubernetes → DevOps → 中间件专项 ``` **特点:** - 🎯 关卡解锁机制 - 📊 分数累积系统 - 🏆 成就解锁奖励 - 💡 渐进式难度设计 **包含关卡:** - **Linux 基础** (8关卡): 文件操作、权限管理、文本处理 - **Linux 高级** (8关卡): 系统管理、性能调优、网络配置 - **Docker** (8关卡): 镜像管理、容器操作、网络存储 - **Kubernetes** (8关卡): Pod管理、服务发现、配置管理 - **DevOps** (8关卡): CI/CD、监控告警、日志管理 - **中间件** (18个专项): MySQL、Redis、Nginx、Kafka 等 ### 2. 面试官模式(Interview Mode)⭐ **这是本项目的核心特色功能!** 模拟真实技术面试场景,提供: #### 🎲 随机抽题系统 - 从指定题库中随机抽取 10/20/30 道题目 - 支持按领域(Linux、Docker、K8s、中间件) - 支持按难度(初级、中级、高级) - 每次题目组合不同,可反复练习 #### ⏱️ 计时压力测试 - 模拟真实面试时间限制 - 可选 30/45/60 分钟模式 - 倒计时显示,增加真实感 - 时间到自动提交 #### 📊 面试评分系统 - 自动计算得分 - 错题回顾和分析 - 历史成绩对比 - 能力雷达图展示 #### 💡 智能提示系统 - 单次提示机制(需要5积分) - 显示关键知识点提示 - 使用提示后本题得分-2分 - 帮助学习薄弱环节 **面试官模式使用场景:** - 🎓 求职前模拟面试 - 📈 技术能力自测 - 🔄 反复练习提升 - 🏆 竞争力评估 --- ## 🛠️ 技术架构 > 📋 **详细的目录结构说明** 请查看: [项目结构文档](docs/PROJECT_STRUCTURE.md) ### 前端技术栈(白前端) 本项目采用**纯原生技术栈**,无任何第三方依赖: | 技术 | 版本 | 用途 | |------|------|------| | **HTML5** | - | 页面结构、语义化标签 | | **CSS3** | - | 样式、动画、响应式设计 | | **JavaScript (ES6+)** | - | 应用逻辑、交互、状态管理 | **核心特性:** - ✅ **零依赖** - 无需 npm、webpack、构建工具 - ✅ **原生模块** - 使用 ES6 Modules - ✅ **轻量级** - 单页面应用,加载快速 - ✅ **可维护** - 模块化代码组织 **前端架构:** ``` ┌─────────────────────────────────────┐ │ index.html (主页面) │ ├─────────────────────────────────────┤ │ ┌─────────┐ ┌─────────┐ │ │ │ CSS模块 │ │ JS模块 │ │ │ │ style.css │ │ app.js │ │ │ │ theme.css │ │ game.js │ │ │ │ │ │ ui.js │ │ │ └─────────┘ │ api.js │ │ │ │ store.js │ │ │ └─────────┘ │ └─────────────────────────────────────┘ ``` ### 后端技术栈 **服务器:** - **Python 3.7+** SimpleHTTPServer / http.server - **跨平台** - Windows/Linux/macOS 通用 - **零配置** - 无需安装任何依赖 **数据存储:** - **JSON 格式** - 题库数据本地存储 - **浏览器存储** - localStorage 保存学习进度 - **文件系统** - 静态资源直接加载 **数据格式:** ```json { "level_id": "MW-REDIS-BASIC-001", "name": "Redis基础概念", "category": "redis", "description": "Redis是什么、端口、数据类型等基础", "required_score": 60, "questions": [...] } ``` --- ## 📚 题库内容 ### 题库统计 | 类别 | 关卡数 | 题目数 | 状态 | |------|--------|--------|------| | **Linux 基础** | 8 | 160 | ✅ | | **Linux 高级** | 8 | 160 | ✅ | | **Docker** | 8 | 80 | ✅ | | **Kubernetes** | 8 | 80 | ✅ | | **DevOps** | 8 | 80 | ✅ | | **平台运维** | 4 | 40 | ✅ | | **中间件专项** | 18 | 850 | ✅ | | **业务场景** | 1 | 20 | ✅ | | **总计** | **61** | **1450+** | ✅ | ### 中间件专项(18个) | 中间件 | 题目数 | 关卡 | 内容 | |--------|--------|------|------| | **Nginx** | 100 | 10 | 反向代理、负载均衡、配置优化 | | **MySQL** | 80 | 8 | SQL、索引、事务、主从复制 | | **Redis** | 80 | 8 | 数据结构、持久化、集群、哨兵 | | **MongoDB** | 80 | 8 | 文档数据库、聚合、索引、副本集 | | **Kafka** | 80 | 8 | 消息队列、分区、副本、消费者 | | **RabbitMQ** | 80 | 8 | AMQP、交换机、队列、路由 | | **Etcd** | 80 | 8 | 分布式键值、Raft、服务发现 | | **Consul** | 80 | 8 | 服务网格、健康检查、KV存储 | | **Elasticsearch** | 80 | 8 | 搜索引擎、索引、聚合、集群 | | **ClickHouse** | 80 | 8 | 列式存储、SQL、性能优化 | | **Prometheus** | 270 | 27 | 监控、告警、指标、时序数据 | | **Grafana** | 80 | 8 | 可视化、仪表板、告警、插件 | | **Loki** | 80 | 8 | 日志聚合、LogQL、标签、存储 | | **Jaeger** | 80 | 8 | 分布式追踪、Span、Trace、采样 | | **VictoriaLogs** | 80 | 8 | 日志存储、查询、压缩、性能 | | **MinIO** | 80 | 8 | 对象存储、S3兼容、纠删码 | | **TCP** | 100 | 10 | 三次握手、滑动窗口、拥塞控制 | | **网络包分析** | 100 | 10 | Wireshark、tcpdump、协议分析 | --- ## 🎯 主要功能详解 ### 1. 题目学习 **每道题目包含:** - 📝 **题目内容** - 清晰的技术问题描述 - 🎯 **四个选项** - 单选选择题 - ✅ **正确答案** - 标准答案索引 - 📖 **详细解析** - 技术原理深度讲解 - 💡 **智能提示** - 关键知识点提示 - ⭐ **分值** - 题目难度权重 ### 2. 提示系统 **单次提示机制:** - 💡 每题可使用一次提示(需要5积分) - 📝 显示关键知识点提示 - ⚠️ 使用提示后本题得分-2分 - 🎯 提示按钮使用后禁用,防止重复查看 **扣分规则:** - 未使用提示:100% 得分 - 使用提示后答对:得分-2分 - 使用提示后答错:0分 ### 3. 进度追踪 **本地存储数据:** - 📊 学习进度 - 各关卡完成度 - 🏆 成就系统 - 里程碑解锁 - 📈 历史记录 - 答题准确率统计 - 💾 存档功能 - 多用户支持 ### 4. 面试官模式 **核心功能:** #### 🎲 随机组卷 ``` - 按领域抽题:Linux/Docker/K8s/中间件 - 按难度抽题:初级/中级/高级 - 可选题目数量:10/20/30道 - 完全随机算法,每次不同 ``` #### ⏱️ 计时测试 ``` - 30分钟模式:快速自测 - 45分钟模式:标准面试 - 60分钟模式:深度测试 - 倒计时显示,自动提交 ``` #### 📊 能力评估 ``` - 综合得分统计 - 分类能力雷达图 - 历史成绩趋势 - 薄弱环节分析 ``` --- ## 💻 纯离线使用 ### 完全离线架构 ``` ┌─────────────────────────────────────┐ │ 用户浏览器 │ │ (无需网络连接) │ └────────────┬──────────────────────┘ │ HTTP (localhost) ▼ ┌─────────────────────────────────────┐ │ Python HTTP Server │ │ (scripts/start_server.py) │ └────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 项目文件系统 │ │ ├── index.html │ │ ├── css/style.css │ │ ├── js/app.js │ │ └── data/*.json │ └─────────────────────────────────────┘ ``` ### 离线使用说明 1. **克隆项目** ```bash git clone cd linux_mastery_game ``` 2. **启动服务器** ```bash # Windows start.bat # Linux/Mac ./start.sh # 或跨平台 python start.py ``` 3. **访问应用** - 浏览器自动打开 `http://localhost:8000` - 或手动访问该地址 4. **开始学习** - 选择闯关模式系统学习 - 或选择面试官模式模拟面试 **完全不需要:** - ❌ 网络连接 - ❌ CDN 资源 - ❌ 第三方 API - ❌ 在线服务 --- ## 📁 项目结构 ``` linux_mastery_game/ ├── index.html # 🏠 主页面入口 ├── css/ # 🎨 样式文件 │ ├── style.css # 主样式表 │ ├── theme.css # 主题样式 │ └── components.css # 组件样式 ├── js/ # 💻 JavaScript 模块 │ ├── app.js # 主应用逻辑 │ ├── game.js # 游戏核心逻辑 │ ├── ui.js # UI 交互控制 │ ├── api.js # 数据加载 API │ ├── storage.js # 本地存储管理 │ └── interview.js # 面试官模式 ├── data/ # 📚 题库数据 │ ├── linux/ # Linux 专题 │ │ ├── linux_basic.json # Linux 基础 │ │ └── linux_advanced.json# Linux 高级 │ ├── k8s/ # Kubernetes │ │ ├── k8s_basic.json │ │ ├── k8s_app_deployment.json │ │ ├── k8s_advanced.json │ │ ├── k8s_multicluster.json │ │ └── k8s_performance.json │ ├── devops/ # DevOps 专题 │ │ ├── devops.json │ │ ├── devops_monitoring.json │ │ ├── devops_logging.json │ │ └── devops_container.json │ ├── ops/ # 运维专题 │ │ ├── ops.json │ │ ├── ops_network.json │ │ ├── ops_ha.json │ │ └── ops_performance.json │ ├── middleware/ # 🎯 中间件专项 │ │ ├── mysql.json # 数据库 │ │ ├── redis.json # 缓存 │ │ ├── nginx.json # Web服务器 │ │ ├── kafka.json # 消息队列 │ │ ├── rabbitmq.json # 消息队列 │ │ ├── mongodb.json # NoSQL │ │ ├── etcd.json # 配置中心 │ │ ├── consul.json # 服务网格 │ │ ├── elasticsearch.json # 搜索引擎 │ │ ├── clickhouse.json # 分析型数据库 │ │ ├── prometheus.json # 监控 │ │ ├── grafana.json # 可视化 │ │ ├── loki.json # 日志聚合 │ │ ├── jaeger.json # 分布式追踪 │ │ ├── victorialogs.json # 日志存储 │ │ ├── minio.json # 对象存储 │ │ ├── tcp.json # 网络协议 │ │ └── packet_analysis.json # 网络分析 │ ├── docker/ # Docker 专题 │ │ └── docker.json │ └── scenarios.json # 业务场景 ├── scripts/ # 🛠️ 工具脚本 │ ├── start_server.py # 原始服务器启动 │ ├── start_server_fixed.py # 改进版服务器 │ └── generate_*.py # 题目生成脚本 ├── assets/ # 📦 静态资源 │ ├── fonts/ # 字体文件 │ ├── images/ # 图片资源 │ └── sounds/ # 音效文件 ├── docs/ # 📖 文档 │ ├── STRUCTURE.md # 项目结构 │ └── ... ├── start.py # 🚀 Python 启动脚本 ├── start.bat # 🪟 Windows 启动脚本 ├── start.sh # 🐧 Unix/Linux/Mac 启动脚本 ├── LICENSE # ⚖️ MIT 许可证 ├── README.md # 📖 项目说明 └── MIDDLEWARE_IMPROVEMENTS.md # 📊 题库改进报告 ``` --- ## 🔧 开发相关 ### 本地开发 **启动开发服务器:** ```bash # 方式 1: 使用 Python 内置服务器 python -m http.server 8000 # 方式 2: 使用项目服务器(支持 CORS) python scripts/start_server_fixed.py ``` **文件监听(可选):** ```bash # 需要安装 live-server(可选) npm install -g live-server live-server --port=8000 ``` ### 添加题目 题目文件为 JSON 格式,遵循以下结构: ```json { "level_id": "CATEGORY-TYPE-001", "name": "关卡名称", "category": "category_name", "description": "关卡描述", "required_score": 60, "questions": [ { "id": "CATEGORY-Q001", "category": "category_name", "level": 1, "type": "choice", "question": "题目内容", "options": ["选项A", "选项B", "选项C", "选项D"], "correct_answer": "0", "explanation": "详细解析", "hint": "提示内容", "points": 10 } ] } ``` ### 贡献指南 1. **Fork 项目** 2. **创建特性分支** (`git checkout -b feature/amazing-feature`) 3. **提交更改** (`git commit -m 'Add amazing feature'`) 4. **推送到分支** (`git push origin feature/amazing-feature`) 5. **开启 Pull Request** **贡献方向:** - 📝 添加高质量技术题目 - 🐛 修复 Bug - ✨ 优化用户体验 - 📖 完善文档 --- ## 🌟 部署方案 ### 本地部署(推荐) ```bash git clone cd linux_mastery_game python start.py # 访问 http://localhost:8000 ``` ### GitHub Pages 部署 1. 将项目推送到 GitHub 2. 在仓库设置中启用 GitHub Pages 3. 选择根目录作为源 4. 访问 `https://.github.io/` ### 公司内部部署 **内网部署方案:** - 方案1: 搭建内部 HTTP 服务器(Nginx/Apache) - 方案2: 使用 Docker 容器化部署 - 方案3: 集成到内部学习平台 --- ## 📊 题库质量保证 所有题目均经过严格审核,确保: - ✅ **技术准确性** - 基于官方文档和最佳实践 - ✅ **实用性** - 紧贴实际工作场景 - ✅ **详细解析** - 提供深度技术讲解 - ✅ **提示有效性** - 引导学习但不泄露答案 - ✅ **格式规范** - 统一的 JSON 结构 --- ## 🎓 使用场景 ### 个人学习 - 📖 系统学习 Linux 运维知识 - 🎮 游戏化学习,提升趣味性 - 💪 反复练习,巩固技能 ### 面试准备 - 🎯 模拟真实技术面试 - ⏱️ 计时训练,提升答题速度 - 📊 能力评估,查漏补缺 ### 团队培训 - 🏢 企业内部技术培训 - 📚 统一学习标准 - 🏆 团队技能评估 ### 教学辅助 - 🎓 高校 Linux 课程教学 - 💻 实验课辅助工具 - ✅ 学习效果评估 --- ## ❓ 常见问题
Q1: 为什么浏览器打不开? **A:** 检查以下几点: 1. 确认服务器已启动(查看命令行窗口) 2. 检查端口是否被占用(8000 或 8080) 3. 尝试访问 `http://127.0.0.1:8000` 而不是 `localhost:8000` 4. 检查防火墙设置 5. 尝试更换其他端口
Q2: 支持哪些浏览器? **A:** 支持所有现代浏览器: - ✅ Chrome/Edge 90+ - ✅ Firefox 88+ - ✅ Safari 14+ - ✅ Opera 76+ ❌ 不支持 IE11 及更早版本
Q3: 如何导出学习数据? **A:** 学习进度保存在浏览器 localStorage 中,如需备份: 1. 打开浏览器开发者工具(F12) 2. 进入 Application → Local Storage 3. 找到 `linuxGame_xxx` 相关数据 4. 手动导出或截图记录
Q4: 面试官模式和闯关模式有什么区别? **A:** - **闯关模式**: 系统化学习,逐关解锁,进度保存 - **面试官模式**: 随机组题,计时测试,模拟真实面试,不保存进度
Q5: 可以修改题目吗? **A:** 可以! 1. 编辑 `data/` 目录下的对应 JSON 文件 2. 刷新浏览器即可生效 3. 遵循现有的 JSON 格式规范
Q6: 为什么某些中间件题目是空白的? ** **A:** 这可能是题目加载失败,检查: 1. 确认 JSON 文件存在 2. 检查 JSON 格式是否正确 3. 查看浏览器控制台是否有错误
--- ## 📜 更新日志 ### v1.5.0 (2026-01-27) - 全面升级 - ✅ 完成 7 个中间件题库修复(580 题) - ✅ 新增面试官模式 - ✅ 优化用户界面 - ✅ 改进服务器启动脚本 - ✅ 更新文档 ### v1.0.0 - 初始版本 - ✅ 基础闯关模式 - ✅ Linux 基础/高级题库 - ✅ Docker/Kubernetes/DevOps 题库 --- ## 🤝 贡献者欢迎 感谢所有为项目做出贡献的开发者! **核心贡献者:** - @yourname - 项目创建者 - @contributor1 - 题库贡献 - @contributor2 - 功能优化 --- ## 📄 许可证 本项目采用 **MIT 许可证** - 详见 [LICENSE](LICENSE) 文件 --- ## 🙏 致谢 - 感谢所有开源项目的技术参考 - 感谢 Linux 运维社区的共享精神 - 感谢所有测试用户的反馈建议 ---
**🎮 开始你的 Linux 运维学习之旅吧!** [快速开始](#-快速开始) • [游戏模式](#-游戏模式) • [技术架构](#-技术架构)