
cmdchamp v1.2.15
treinador de CLI bash — 30 níveis, do ls à escalada de privilégios
cmdchamp
Treinador de CLI Bash — 30 níveis, de ls a escalação de privilégios.

Cada pergunta pede que você digite um comando real — você recebe feedback instantâneo e segue em frente. Muitas rodam contra arquivos reais no sandbox, e todas aceitam múltiplas sintaxes válidas (sort -u ou sort | uniq). Tab alterna a manpage quando você precisa de uma referência, e a ordem é aleatorizada a cada execução para você não conseguir decorar. A maestria acompanha o que você sabe: acerte uma pergunta duas vezes para dominá-la; erre e ela é rebaixada, voltando antes. Uma sequência de 5 acertos ativa o fire mode — um banner que fica ativo até você errar.
Cada nível termina com uma rodada de chefe — sem manpages, cronômetro de 30s, 4/5 para passar. Se falhar, você pode tentar o chefe novamente imediatamente ou voltar para a prática. Vença todos os 30 e o modo desafio é desbloqueado: todos os níveis, cronômetro de 20s, sem manpages, um erro e você está fora. A primeira execução inclui um pequeno tutorial e um teste de nivelamento que deixa você pular níveis que já conhece.
Com o bubblewrap, os comandos rodam em um sistema de arquivos real em sandbox. Sem ele, as respostas são comparadas por texto. Os níveis de busca (16-17) aceitam tanto a sintaxe de rg/fd quanto a de grep/find. Edição de linha estilo Vi embutida.
Instalação
Arch (AUR):
paru -S cmdchamp # or: yay -S cmdchamp
Em qualquer lugar (arquivo único):
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
Adicione ~/.local/bin ao PATH se necessário: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Ou clone:
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
Requer: bash 4.4+, coreutils, awk
macOS: Vem com bash 3.2 — instale o bash 4.4+ primeiro: brew install bash
Opcional: bubblewrap (bwrap) para o modo sandbox (somente Linux) — a maioria das distros desktop inclui. Sem ele, as respostas são apenas comparadas por texto.
Acessibilidade: Respeita NO_COLOR e TERM=dumb. O layout se adapta a COLUMNS / tput cols. As barras de maestria usam cor e também um símbolo ✓ / ~ / x — legíveis sem cor.
Terminais: Roda em terminais seriais reais, não apenas emuladores. O cmdchamp verifica o que o terminal consegue exibir de fato e escolhe um de três níveis de renderização — unicode, desenho de linhas DEC ACS ou ASCII puro — para que os quadros permaneçam intactos em um VT100/VT220/VT320/VT420 ou Wyse. Em uma tela monocromática, as distinções de cor são re-codificadas como negrito/reverso. Force um nível com CMDCHAMP_ASCII=1 ou CMDCHAMP_UNICODE=1. O ./test_terminals.sh verifica isso.
Uso
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
O menu contém continuar, novo jogo, cenários, modo desafio, estatísticas e opções. As teclas de atalho 1–7 vão direto para um item; j/k ou as setas movem; Enter seleciona.
Níveis
| # | Nome | Foco |
|---|---|---|
| Fundamentos | ||
| 1 | Primeiros Passos | pwd, ls, echo, cd, mkdir |
| 2 | Noções Básicas de Arquivos | cp, mv |
| 3 | Salve Seu Trabalho | >, >>, tee |
| 4 | Lendo Arquivos | cat, head, tail, less |
| 5 | Pipes Básicos | pipes, grep, wc, sort, uniq |
| 6 | Entrada e Here-Strings | <, <<<, tr, cut, rev, bc |
| 7 | Tratamento de Erros | 2>, 2>&1, &>, /dev/null |
| 8 | Portas Lógicas | &&, || |
| 9 | Variáveis | $VAR, atribuição, expansão |
| 10 | Variáveis Especiais | $$, $?, $!, $#, $@, $0 |
| 11 | Controle de Jobs | bg, fg, jobs, &, Ctrl+Z |
| 12 | Condições de Teste | -f, -d, -z, -n, -eq, -lt |
| 13 | Ferramentas Essenciais de Arquivo | cp, mv, ln, chmod, du, tar, diff |
| 14 | Administração do Sistema | ping, df, free, ss, systemctl, ip |
| 15 | Multiplexadores | tmux: sessões, janelas, painéis |
| 16 | Busca de Texto | grep, ripgrep, regex |
| 17 | Localização de Arquivos | find, fd, por nome/tamanho/tempo/tipo |
| 18 | Processamento de Dados | sort, uniq, cut, awk, tr, comm |
| 19 | Strings e Arrays | expansão de parâmetros, arrays |
| 20 | Fluxo de Controle | if/else, loops, case, funções |
| 21 | Operações em Lote | find -exec, xargs, sed -i, crontab |
| 22 | Regex Avançado | lookahead, sed, awk |
| DevOps e Segurança | ||
| 23 | Git | branches, remotes, rebasing, stashing, bisect |
| 24 | Ferramentas de Rede | tshark, curl, jq, túneis ssh, openssl, SMB |
| 25 | Varredura de Rede | nmap, detecção de serviços, scripts |
| 26 | WiFi e RF | aircrack-ng, netcat, tcpdump, reconhecimento sem fio |
| 27 | Quebra de Hashes | hashcat, john, hydra, codificação |
| 28 | Forense | strings, readelf, binwalk, volatility, exiftool |
| 29 | Escalação de Privilégios | SUID, GTFOBins, enumeração |
| 30 | ROOT | recuperação de emergência, chroot, sobrevivência offline |
Cenários
Desafios sandbox em múltiplas etapas — o estado persiste entre as etapas. Disponível no menu Cenários depois que você vencer o chefe de desbloqueio.
| # | Nome | Desbloqueia em | Passos |
|---|---|---|---|
| 1 | Bloqueio de Permissões | Chefe do L13 | 6 |
| 2 | Arquivar e Extrair | Chefe do L13 | 6 |
| 3 | Encontre a Agulha | Chefe do L16 | 7 |
| 4 | CSV Bagunçado | Chefe do L18 | 4 |
| 5 | O Incidente | Chefe do L18 | 5 |
| 6 | O Deploy Quebrado | Chefe do L21 | 7 |
| 7 | Emergência de Logs | Chefe do L21 | 5 |
| 8 | Cirurgia de Configuração | Chefe do L21 | 5 |
| 9 | Resgate com Git | Chefe do L23 | 6 |
| 10 | Refatoração em Lote | Chefe do L21 | 6 |
| 11 | Varredura Forense | Chefe do L22 | 6 |
Teste de nivelamento
Após o tutorial da primeira execução, você é perguntado se quer fazer o teste de nivelamento para avançar pulando níveis. Se aceitar, ele faz 2 perguntas por nível, 30s cada, sem manpages. Errou uma, esse é o seu nível inicial.
Easter eggs
8 conquistas ocultas. A tela de Estatísticas mostra quantas você encontrou.
Controles
| Tecla | Ação |
|---|---|
| Enter | Enviar resposta |
| Tab | Alternar manpage |
| Ctrl+d | Sair (resumo da sessão) |
| Esc | Modo normal Vi |
| ? | Todas as teclas de atalho (modo normal) |
Dados
O progresso é salvo em ${XDG_DATA_HOME:-~/.local/share}/cmdchamp/.
Licença
MIT