一个基于 Web 的 Shell 命令学习平台,通过闯关模式帮助你掌握 Linux Shell 命令。
- 8 个学习模块,涵盖从基础到高级的 Shell 命令
- 真实的命令执行环境,所有命令在服务器上真实运行
- 渐进式学习:教学 → 练习 → 挑战
- 实时反馈和进度追踪
- XP 经验值系统和成就徽章
- Docker
- Docker Compose
- 克隆项目
git clone <repo-url>
cd study-shell- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,修改密码和密钥- 启动服务
docker compose up -d- 初始化数据库和课程数据
docker compose exec api npx prisma migrate deploy
docker compose exec api npm run seed- 访问应用
打开浏览器访问 http://localhost
- 前端: 80 (通过 Nginx)
- API: 3000 (内部)
- PostgreSQL: 5432 (内部)
- Redis: 6379 (内部)
- 文件操作基础 - ls, cat, head, tail, touch, mkdir, rm, cp, mv
- 文本处理 - grep, sed, awk, wc, sort, uniq, cut, tr
- 文件权限与用户 - chmod, chown, whoami, id, groups
- 管道与重定向 - |, >, >>, <, 2>, tee, xargs
- 查找与定位 - find, locate, which, whereis, type
- 进程管理 - ps, top, kill, jobs, bg, fg, nohup
- 网络工具 - ping, curl, wget, ss, netstat, ip
- Shell 脚本基础 - 变量, 条件, 循环, 函数, 数组
- 前端: React 18 + TypeScript + Vite + Tailwind CSS + xterm.js
- 后端: Node.js + Express + Prisma + PostgreSQL + Redis
- 沙箱: Docker 容器隔离,资源限制
- 部署: Docker Compose
- 命令在隔离的 Docker 容器中执行
- 内存限制 256MB,CPU 限制 0.5 核
- 禁止网络访问
- 危险命令黑名单
- 会话超时自动清理
# 后端
cd backend
npm install
npm run dev
# 前端
cd frontend
npm install
npm run devstudy-shell/
├── docker-compose.yml # Docker Compose 配置
├── .env.example # 环境变量模板
├── backend/ # 后端 API 服务
│ ├── Dockerfile
│ ├── package.json
│ ├── prisma/ # 数据库模型
│ └── src/ # 源代码
├── frontend/ # 前端应用
│ ├── Dockerfile
│ ├── package.json
│ └── src/ # 源代码
├── sandbox/ # 沙箱容器
│ └── Dockerfile
└── nginx/ # Nginx 配置
└── conf.d/