
cmdchamp v1.3.0
bash CLI 训练器 — 从 ls 到权限提升的 30 个级别
cmdchamp
Bash CLI 训练器 — 从 ls 到权限提升共 30 个关卡。

每道题都要求你输入一条真实命令——即刻获得反馈,然后继续。许多命令会在沙盒中针对真实文件运行,且所有题目都接受多种合法语法(sort -u 或 sort | uniq)。需要参考时,按 Tab 可切换手册页;每次运行的顺序都会随机打乱,让你无法死记硬背。掌握度会记录你的掌握情况:答对两次即为掌握;答错则会降级,从而更快再次出现。连续答对 5 题会触发连击模式——一个会一直显示到答错的横幅。
每个关卡最后都有 Boss 轮——没有手册页、30 秒倒计时、需答对 4/5 才能通过。失败后可以立即重试 Boss,或返回练习。通关全部 30 关后解锁挑战模式:每个关卡 20 秒倒计时、没有手册页、答错一次即结束。首次运行包含一个简短教程和一个定级测试,可让你跳过已经掌握的关卡。
使用 bubblewrap 后,命令将在真实的沙盒文件系统中运行。没有它时,答案仅通过文本匹配。搜索关卡(16-17)同时接受 rg/fd 和 grep/find 语法。内置 Vi 行编辑。
安装
Arch(AUR):
paru -S cmdchamp # or: yay -S cmdchamp
任意位置(单文件):
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
如有需要,将 ~/.local/bin 添加到 PATH:echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
或克隆:
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
需要: bash 4.4+、coreutils、awk
macOS: 自带 bash 3.2——请先安装 bash 4.4+:brew install bash
可选: 用于沙盒模式的 bubblewrap(bwrap)(仅限 Linux)——大多数桌面发行版已包含。没有它时,答案将仅通过文本匹配。
无障碍: 支持 NO_COLOR 和 TERM=dumb。布局会适配 COLUMNS / tput cols。掌握进度条同时带有颜色和 ✓ / ~ / x 符号——在无颜色环境下也可读。
终端: 可在真实串行终端上运行,而不仅是模拟器。cmdchamp 会探测终端实际可显示的内容,并从三种渲染层次中选择一种——unicode、DEC ACS 线条绘制或纯 ASCII——因此在 VT100/VT220/VT320/VT420 或 Wyse 上也能保持画面完整。在单色屏幕上,颜色区分会被重新编码为粗体/反色。可使用 CMDCHAMP_ASCII=1 或 CMDCHAMP_UNICODE=1 强制指定层次。./test_terminals.sh 可验证。
用法
cmdchamp # Launch the game menu
cmdchamp --no-sandbox # Disable sandbox (text-match only)
cmdchamp reset # Clear all progress
cmdchamp test # Run self-tests
cmdchamp version # Print version
cmdchamp help # Show help
菜单包含继续、新游戏、场景、挑战模式、统计和选项。快捷键 1–7 可直接跳转到对应项;j/k 或方向键移动;回车选择。
关卡
| # | 名称 | 重点 |
|---|---|---|
| 基础 | ||
| 1 | 第一步 | pwd, ls, echo, cd, mkdir |
| 2 | 文件基础 | cp, mv |
| 3 | 保存工作 | >, >>, tee |
| 4 | 读取文件 | cat, head, tail, less |
| 5 | 基础管道 | 管道, grep, wc, sort, uniq |
| 6 | 输入与 Here-Strings | <, <<<, tr, cut, rev, bc |
| 7 | 错误处理 | 2>, 2>&1, &>, /dev/null |
| 8 | 逻辑门 | &&, || |
| 9 | 变量 | $VAR, 赋值, 展开 |
| 10 | 特殊变量 | $$, $?, $!, $#, $@, $0 |
| 11 | 作业控制 | bg, fg, jobs, &, Ctrl+Z |
| 12 | 测试条件 | -f, -d, -z, -n, -eq, -lt |
| 13 | 核心文件工具 | cp, mv, ln, chmod, du, tar, diff |
| 14 | 系统管理 | ping, df, free, ss, systemctl, ip |
| 15 | 多路复用器 | tmux: 会话, 窗口, 窗格 |
| 16 | 文本搜索 | grep, ripgrep, regex |
| 17 | 文件查找 | find, fd, 按名称/大小/时间/类型 |
| 18 | 数据处理 | sort, uniq, cut, awk, tr, comm |
| 19 | 字符串与数组 | 参数展开, 数组 |
| 20 | 控制流 | if/else, 循环, case, 函数 |
| 21 | 批量操作 | find -exec, xargs, sed -i, crontab |
| 22 | 高级正则 | 前瞻, sed, awk |
| DevOps 与安全 | ||
| 23 | Git | 分支, 远程, 变基, 暂存, 二分查找 |
| 24 | 网络工具 | tshark, curl, jq, ssh 隧道, openssl, SMB |
| 25 | 网络扫描 | nmap, 服务检测, 脚本 |
| 26 | WiFi 与射频 | aircrack-ng, netcat, tcpdump, 无线侦察 |
| 27 | 哈希破解 | hashcat, john, hydra, 编码 |
| 28 | 取证 | strings, readelf, binwalk, volatility, exiftool |
| 29 | 权限提升 | SUID, GTFOBins, 枚举 |
| 30 | ROOT | 紧急恢复, chroot, 离线生存 |
场景
多步骤沙盒挑战——状态会在步骤之间保留。通关解锁 Boss 后,可从 场景 菜单进入。
| # | 名称 | 解锁条件 | 步骤 |
|---|---|---|---|
| 1 | 权限锁定 | L13 Boss | 6 |
| 2 | 归档与解压 | L13 Boss | 6 |
| 3 | 海底捞针 | L16 Boss | 7 |
| 4 | 杂乱的 CSV | L18 Boss | 4 |
| 5 | 安全事件 | L18 Boss | 5 |
| 6 | 故障部署 | L21 Boss | 7 |
| 7 | 日志紧急事件 | L21 Boss | 5 |
| 8 | 配置手术 | L21 Boss | 5 |
| 9 | Git 救援 | L23 Boss | 6 |
| 10 | 批量重构 | L21 Boss | 6 |
| 11 | 取证扫描 | L22 Boss | 6 |
定级测试
在首次运行的教程之后,系统会询问你是否要参加定级测试以跳到更靠后的关卡。接受后,它会每个关卡出 2 道题,每题 30 秒,没有手册页。答错一题,那就是你的起始关卡。
彩蛋
共有 8 个隐藏成就。统计界面会显示你发现了多少个。
操作
| 按键 | 操作 |
|---|---|
| Enter | 提交答案 |
| Tab | 切换手册页 |
| Ctrl+d | 退出(会话摘要) |
| Esc | Vi 普通模式 |
| ? | 所有按键绑定(普通模式) |
数据
进度保存到 ${XDG_DATA_HOME:-~/.local/share}/cmdchamp/。
许可证
MIT