
cmdchamp v1.2.14
bash CLI-Trainer — 30 Level von ls bis zur Privilege Escalation
cmdchamp
Bash-CLI-Trainer — 30 Level von ls bis zur Privilege-Escalation.

Bei jeder Frage musst du einen echten Befehl eingeben — sofortiges Feedback, dann geht’s weiter. Viele laufen gegen echte Dateien in der Sandbox, und alle akzeptieren mehrere gültige Syntaxvarianten (sort -u oder sort | uniq). Mit Tab blätterst du zur Manpage, wenn du eine Referenz brauchst, und die Reihenfolge wird bei jedem Lauf neu gemischt, sodass du nichts auswendig lernen kannst. „Mastery“ verfolgt, was du kannst: Beantworte eine Frage zweimal richtig, um sie zu meistern; falsch beantwortet stuft sie dich herab, sodass sie früher wiederkommt. Eine Serie von 5 richtigen Antworten löst den Feuer-Modus aus — ein Banner, das läuft, bis du danebenliegst.
Jedes Level endet mit einer Boss-Runde — keine Manpages, 30-Sekunden-Timer, 4/5 zum Bestehen. Scheiterst du, kannst du den Boss sofort erneut versuchen oder zurück zum Üben gehen. Schlage alle 30 und der Challenge-Modus schaltet sich frei: jedes Level, 20-Sekunden-Timer, keine Manpages, ein Fehler und du bist raus. Der erste Lauf enthält ein kurzes Tutorial und einen Einstufungstest, mit dem du Level überspringen kannst, die du bereits kennst.
Mit bubblewrap laufen Befehle in einem echten Sandbox-Dateisystem. Ohne diese werden Antworten per Textabgleich geprüft. Suchlevel (16–17) akzeptieren sowohl rg/fd- als auch grep/find-Syntax. Vi-Zeileneditierung eingebaut.
Installation
Arch (AUR):
paru -S cmdchamp # oder: yay -S cmdchamp
Überall (Einzeldatei):
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
Falls nötig, ~/.local/bin zum PATH hinzufügen: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Oder klonen:
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
Erfordert: bash 4.4+, coreutils, awk
macOS: Wird mit bash 3.2 ausgeliefert — zuerst bash 4.4+ installieren: brew install bash
Optional: bubblewrap (bwrap) für den Sandbox-Modus (nur Linux) — die meisten Desktop-Distributionen enthalten es. Ohne diese wird nur per Textabgleich geprüft
Barrierefreiheit: Unterstützt NO_COLOR und TERM=dumb. Das Layout passt sich an COLUMNS / tput cols an. Meisterbalken tragen sowohl Farbe als auch ein ✓ / ~ / x-Symbol — ohne Farbe lesbar.
Terminals: Läuft auf echten seriellen Terminals, nicht nur Emulatoren. cmdchamp prüft, was das Terminal tatsächlich anzeigen kann, und wählt eine von drei Darstellungsstufen — Unicode, DEC-ACS-Liniengrafik oder reines ASCII — damit die Rahmen auf einem VT100/VT220/VT320/VT420 oder Wyse intakt bleiben. Auf einem Monochrom-Bildschirm werden Farbunterschiede als fett/negativ umkodiert. Erzwinge eine Stufe mit CMDCHAMP_ASCII=1 oder CMDCHAMP_UNICODE=1. ./test_terminals.sh verifiziert das.
Verwendung
cmdchamp # Startet das Spielmenü
cmdchamp --no-sandbox # Sandbox deaktivieren (nur Textabgleich)
cmdchamp reset # Alle Fortschritte löschen
cmdchamp test # Selbsttests ausführen
cmdchamp version # Version anzeigen
cmdchamp help # Hilfe anzeigen
Das Menü enthält Fortsetzen, Neues Spiel, Szenarien, Challenge-Modus, Statistiken und Optionen. Die Hotkeys 1–7 springen direkt zu einem Eintrag; j/k oder die Pfeiltasten bewegen die Auswahl; Enter bestätigt.
Level
| # | Name | Fokus |
|---|---|---|
| Grundlagen | ||
| 1 | Erste Schritte | pwd, ls, echo, cd, mkdir |
| 2 | Datei-Grundlagen | cp, mv |
| 3 | Speichere deine Arbeit | >, >>, tee |
| 4 | Dateien lesen | cat, head, tail, less |
| 5 | Grundlegende Pipes | Pipes, grep, wc, sort, uniq |
| 6 | Eingabe & Here-Strings | <, <<<, tr, cut, rev, bc |
| 7 | Fehlerbehandlung | 2>, 2>&1, &>, /dev/null |
| 8 | Logikgatter | &&, || |
| 9 | Variablen | $VAR, Zuweisung, Expansion |
| 10 | Spezielle Variablen | $$, $?, $!, $#, $@, $0 |
| 11 | Jobkontrolle | bg, fg, jobs, &, Strg+Z |
| 12 | Testbedingungen | -f, -d, -z, -n, -eq, -lt |
| 13 | Kern-Dateiwerkzeuge | cp, mv, ln, chmod, du, tar, diff |
| 14 | Systemadministration | ping, df, free, ss, systemctl, ip |
| 15 | Multiplexer | tmux: Sitzungen, Fenster, Panes |
| 16 | Textsuche | grep, ripgrep, regex |
| 17 | Dateisuche | find, fd, nach Name/Größe/Zeit/Typ |
| 18 | Datenverarbeitung | sort, uniq, cut, awk, tr, comm |
| 19 | Strings & Arrays | Parameterexpansion, Arrays |
| 20 | Kontrollfluss | if/else, Schleifen, case, Funktionen |
| 21 | Stapelverarbeitung | find -exec, xargs, sed -i, crontab |
| 22 | Fortgeschrittene Regex | Lookahead, sed, awk |
| DevOps & Sicherheit | ||
| 23 | Git | Branches, Remotes, Rebasing, Stashing, Bisect |
| 24 | Netzwerkwerkzeuge | tshark, curl, jq, SSH-Tunnel, openssl, SMB |
| 25 | Netzwerkscanning | nmap, Diensterkennung, Skripte |
| 26 | WLAN & RF | aircrack-ng, netcat, tcpdump, drahtlose Aufklärung |
| 27 | Hash-Knacken | hashcat, john, hydra, Kodierung |
| 28 | Forensik | strings, readelf, binwalk, volatility, exiftool |
| 29 | Privilege-Escalation | SUID, GTFOBins, Enumeration |
| 30 | ROOT | Notfallwiederherstellung, chroot, Offline-Überleben |
Szenarien
Mehrstufige Sandbox-Herausforderungen — der Zustand bleibt zwischen den Schritten erhalten. Verfügbar über das Szenarien-Menü, sobald du den Freischalt-Boss besiegt hast.
| # | Name | Freischaltung bei | Schritte |
|---|---|---|---|
| 1 | Berechtigungssperre | L13-Boss | 6 |
| 2 | Archivieren & Entpacken | L13-Boss | 6 |
| 3 | Finde die Nadel | L16-Boss | 7 |
| 4 | Unordentliche CSV | L18-Boss | 4 |
| 5 | Der Vorfall | L18-Boss | 5 |
| 6 | Das kaputte Deployment | L21-Boss | 7 |
| 7 | Protokoll-Notfall | L21-Boss | 5 |
| 8 | Konfigurations-OP | L21-Boss | 5 |
| 9 | Git-Rettung | L23-Boss | 6 |
| 10 | Stapel-Refactoring | L21-Boss | 6 |
| 11 | Forensischer Durchlauf | L22-Boss | 6 |
Einstufungstest
Nach dem Tutorial des ersten Laufs wirst du gefragt, ob du den Einstufungstest machen möchtest, um vorzuspringen. Wenn du zustimmst, laufen 2 Fragen pro Level, jeweils 30 Sekunden, keine Manpages. Eine falsche Antwort bestimmt dein Startlevel.
Easter Eggs
8 versteckte Erfolge. Der Statistik-Bildschirm zeigt, wie viele du gefunden hast.
Steuerung
| Taste | Aktion |
|---|---|
| Enter | Antwort absenden |
| Tab | Manpage umschalten |
| Strg+d | Beenden (Sitzungszusammenfassung) |
| Esc | Vi-Normalmodus |
| ? | Alle Tastenkombinationen (Normalmodus) |
Daten
Der Fortschritt wird in ${XDG_DATA_HOME:-~/.local/share}/cmdchamp/ gespeichert.
Lizenz
MIT