
cmdchamp v1.2.15
bash CLI trainer — 30 livelli da ls a escalation dei privilegi
cmdchamp
Allenatore CLI Bash — 30 livelli da ls all'escalation dei privilegi.

Ogni domanda ti chiede di digitare un comando reale — ricevi un feedback immediato e vai avanti. Molti comandi vengono eseguiti su file reali nella sandbox e tutti accettano più sintassi valide (sort -u o sort | uniq). Il tasto Tab attiva/disattiva la manpage quando ti serve un riferimento, e l'ordine viene randomizzato a ogni esecuzione, così non puoi memorizzarlo. La padronanza tiene traccia di ciò che sai: rispondi correttamente a una domanda due volte per padroneggiarla; se la sbagli, viene declassata e ricapita prima. Una serie di 5 risposte esatte attiva la fire mode — un banner che resta attivo finché non sbagli.
Ogni livello termina con un boss round — niente manpage, timer di 30 secondi, 4/5 per superarlo. Se fallisci, puoi riprovare subito il boss o tornare ad allenarti. Supera tutti i 30 e la challenge mode si sblocca: ogni livello, timer di 20 secondi, niente manpage, un errore e hai finito. La prima esecuzione include un breve tutorial e un test di posizionamento che ti permette di saltare i livelli che già conosci.
Con bubblewrap, i comandi vengono eseguiti in un vero filesystem in sandbox. Senza, le risposte vengono confrontate testualmente. I livelli di ricerca (16-17) accettano sia la sintassi rg/fd che grep/find. Editing di riga Vi integrato.
Installazione
Arch (AUR):
paru -S cmdchamp # or: yay -S cmdchamp
Ovunque (file singolo):
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
Aggiungi ~/.local/bin al PATH se necessario: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Oppure clona:
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
Richiede: bash 4.4+, coreutils, awk
macOS: Include bash 3.2 — installa bash 4.4+ prima: brew install bash
Opzionale: bubblewrap (bwrap) per la modalità sandbox (solo Linux) — la maggior parte delle distribuzioni desktop lo include. Senza, le risposte vengono solo confrontate testualmente
Accessibilità: Rispetta NO_COLOR e TERM=dumb. Il layout si adatta a COLUMNS / tput cols. Le barre di padronanza hanno sia colore che un simbolo ✓ / ~ / x — leggibili anche senza colore.
Terminali: Funziona su terminali seriali veri, non solo emulatori. cmdchamp rileva cosa il terminale può effettivamente visualizzare e sceglie uno dei tre livelli di rendering — unicode, linee DEC ACS o ASCII puro — così i riquadri rimangono intatti su un VT100/VT220/VT320/VT420 o Wyse. Su uno schermo monocromatico, le differenze di colore vengono riconvertite in grassetto/inverso. Forza un livello con CMDCHAMP_ASCII=1 o CMDCHAMP_UNICODE=1. ./test_terminals.sh lo verifica.
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
Il menu contiene continua, nuova partita, scenari, challenge mode, statistiche e opzioni. I tasti rapidi 1–7 saltano direttamente a una voce; j/k o le frecce muovono; Invio seleziona.
Livelli
| # | Nome | Argomento |
|---|---|---|
| Fondamentali | ||
| 1 | Primi passi | pwd, ls, echo, cd, mkdir |
| 2 | Nozioni sui file | cp, mv |
| 3 | Salva il tuo lavoro | >, >>, tee |
| 4 | Lettura dei file | cat, head, tail, less |
| 5 | Pipe di base | pipe, grep, wc, sort, uniq |
| 6 | Input e Here-Strings | <, <<<, tr, cut, rev, bc |
| 7 | Gestione degli errori | 2>, 2>&1, &>, /dev/null |
| 8 | Operatori logici | &&, || |
| 9 | Variabili | $VAR, assegnazione, espansione |
| 10 | Variabili speciali | $$, $?, $!, $#, $@, $0 |
| 11 | Controllo dei job | bg, fg, jobs, &, Ctrl+Z |
| 12 | Condizioni di test | -f, -d, -z, -n, -eq, -lt |
| 13 | Strumenti file di base | cp, mv, ln, chmod, du, tar, diff |
| 14 | Amministrazione di sistema | ping, df, free, ss, systemctl, ip |
| 15 | Multiplexer | tmux: sessioni, finestre, pannelli |
| 16 | Ricerca nel testo | grep, ripgrep, regex |
| 17 | Ricerca file | find, fd, per nome/dimensione/tempo/tipo |
| 18 | Elaborazione dati | sort, uniq, cut, awk, tr, comm |
| 19 | Stringhe e array | espansione di parametri, array |
| 20 | Flusso di controllo | if/else, cicli, case, funzioni |
| 21 | Operazioni batch | find -exec, xargs, sed -i, crontab |
| 22 | Regex avanzate | lookahead, sed, awk |
| DevOps e Sicurezza | ||
| 23 | Git | branch, remote, rebase, stash, bisect |
| 24 | Strumenti di rete | tshark, curl, jq, tunnel SSH, openssl, SMB |
| 25 | Scansione di rete | nmap, rilevamento servizi, script |
| 26 | WiFi e RF | aircrack-ng, netcat, tcpdump, ricognizione wireless |
| 27 | Crack di hash | hashcat, john, hydra, encoding |
| 28 | Forensica | strings, readelf, binwalk, volatility, exiftool |
| 29 | Escalation dei privilegi | SUID, GTFOBins, enumerazione |
| 30 | ROOT | recupero di emergenza, chroot, sopravvivenza offline |
Scenari
Sfide sandbox multi-step — lo stato persiste tra i passaggi. Disponibili dal menu Scenari dopo aver superato il boss di sblocco.
| # | Nome | Sblocco al | Passaggi |
|---|---|---|---|
| 1 | Blocco dei permessi | Boss L13 | 6 |
| 2 | Archiviazione ed estrazione | Boss L13 | 6 |
| 3 | Trova l'ago | Boss L16 | 7 |
| 4 | CSV disordinato | Boss L18 | 4 |
| 5 | L'incidente | Boss L18 | 5 |
| 6 | Il deploy danneggiato | Boss L21 | 7 |
| 7 | Emergenza log | Boss L21 | 5 |
| 8 | Intervento sulla configurazione | Boss L21 | 5 |
| 9 | Recupero Git | Boss L23 | 6 |
| 10 | Refactoring batch | Boss L21 | 6 |
| 11 | Scansione forense | Boss L22 | 6 |
Test di posizionamento
Dopo il tutorial della prima esecuzione, ti viene chiesto se vuoi fare il test di posizionamento per saltare avanti. Se accetti, esegue 2 domande per livello, 30 secondi ciascuna, senza manpage. Se ne sbagli una, quello sarà il tuo livello di partenza.
Easter eggs
8 obiettivi nascosti. La schermata Statistiche mostra quanti ne hai trovati.
Controlli
| Tasto | Azione |
|---|---|
| Enter | Invia risposta |
| Tab | Attiva/disattiva manpage |
| Ctrl+d | Esci (riepilogo della sessione) |
| Esc | Modalità normale Vi |
| ? | Tutte le combinazioni di tasti (modalità normale) |
Dati
I progressi vengono salvati in ${XDG_DATA_HOME:-~/.local/share}/cmdchamp/.
Licenza
MIT