Zurück zu den Updates
New releaseAug 13, 2026

cmdchamp v1.3.0

bash CLI-Trainer — 30 Level von ls bis zur Privilege Escalation

Teilen

cmdchamp

Bash-CLI-Trainer — 30 Level von ls bis zur Privilege-Escalation.

demo

Jede Frage verlangt, dass du einen echten Befehl eintippst — du bekommst sofortiges Feedback und kannst weitermachen. Verfehlst du eine Frage, zeigt es dir nicht nur die Antwort: Es zeigt, was DEIN Befehl ausgegeben hat, im Vergleich zu dem, was gewünscht war, und bei einer Pipeline die Zeilenanzahl auf jeder Stufe, damit du die Stelle siehst, an der es scheiterte. Bei textabgeglichenen Fragen nennt es die akzeptierte Antwort, der deine am nächsten kam, sowie das exakte Flag, das du ausgelassen hast. Schaffst du es auf dem langen Weg, zeigt es dir den kurzen Weg — cat f | grep -c X bringt dir ein Shorter: grep -c X f ein, ausgelöst durch weniger Pipeline-Stufen ebenso wie durch weniger Zeichen, denn der Prozess, den du gespart hast, ist die Lektion. Viele Fragen laufen gegen echte Dateien in der Sandbox, und alle akzeptieren mehrere gültige Syntaxen (sort -u oder sort | uniq). Tab schaltet die Manpage um, wenn du eine Referenz brauchst — komprimierte Seiten für jeden Befehl, den die Antwort ausführt, plus die Shell-Syntax, auf die sie sich stützt (x=$(cmd), ${var:-default}, ${path##*/}), sodass nichts in einer Frage dem Raten überlassen bleibt. Die Reihenfolge wird bei jedem Lauf randomisiert, damit du sie nicht auswendig lernen kannst. Meisterschaft verfolgt, was du weißt: Beantworte eine Frage zweimal richtig, um sie zu meistern; verfehlst du sie, wird sie herabgestuft, 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, 30s-Timer, 4/5 zum Bestehen. Scheiterst du, kannst du den Boss sofort erneut versuchen oder zur Übung zurückkehren. Schlage alle 30 und der Herausforderungsmodus wird freigeschaltet — der Endspiel-Parcours: Mehrbefehls-Ketten, die die Werkzeuge aus dem gesamten Spiel zu einer einzigen Pipeline zusammensetzen. 30s pro Kette, ein Leben, keine Manpages, deine beste Punktzahl ist der Rekord. Jede Kette wird anhand ihrer echten Ausgabe in der Sandbox bewertet, also besteht jede korrekte Pipeline. Jeder Lauf erstellt außerdem eine frische randomisierte Sandbox — unterschiedliche IPs, Zähler, Hosts und Logdaten — und greift auf 50+ Kettenvorlagen mit rotierenden Trennzeichen, Sortierreihenfolgen und Aggregaten zurück, sodass die geschäftigste IP, die Top-URL, der höchste Zähler nie zweimal gleich sind. 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, sandboxierten Dateisystem und werden anhand ihrer tatsächlichen Ausgabe bewertet. Die Box darin ist synthetisch — Benutzer sandbox, Host sandbox, eigene /etc/passwd und eigene Kernel-Befehlszeile — sodass nichts, was du eintippst, deinen echten Benutzernamen, Rechnernamen oder die Festplattenstruktur auf den Bildschirm drucken kann, und id, whoami und hostname überall gleich antworten. Das reicht nun auch bis zur Forensik-Stufe: Level 28 gibt dir eine echte Beispiel-Binärdatei (samples/target.bin) und bewertet, ob du tatsächlich das Flag, die Exfiltrations-Domain und den geleakten API-Schlüssel daraus gezogen hast — ebenso für die jq-Fragen zu echtem JSON. Der Endspiel-Parcours setzt diese Extraktionen zu zeitgesteuerten Ketten zusammen. Die Level 24–25 laufen jetzt ebenfalls echt: Ein kleiner HTTP-Dienst startet auf localhost:8080 im eigenen Netzwerk-Namespace der Sandbox, während deine Antwort läuft, mit drei lauschenden Ports, sodass curl, jq über HTTP, ss und nmap anhand dessen bewertet werden, was sie tatsächlich zurückgaben. Nichts wird deinem Rechner ausgesetzt — der Namespace blockiert weiterhin jede ausgehende Verbindung, und der Port ist von außen unsichtbar. Nur die Werkzeuge, die wirklich nicht in einer Sandbox laufen können — WLAN/RF, Live-Mitschnitt und große Speicher-/Festplatten-Forensik — bleiben textabgeglichen. Such-Level (16–17) akzeptieren sowohl rg/fd als auch grep/find-Syntax. Vi-Zeileneditierung ist eingebaut — Bewegungen, Operatoren, Zähler, Register, Undo und visueller Modus (v/V, o zum Wechseln der Enden), mit ? für die vollständige Karte.

Install

Arch (AUR):

paru -S cmdchamp   # or: 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

Füge ~/.local/bin bei Bedarf zum PATH hinzu: 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 — installiere zuerst bash 4.4+: brew install bash

Optional: bubblewrap (bwrap) für den Sandbox-Modus (nur Linux) — die meisten Desktop-Distributionen enthalten es. Ohne es werden Antworten nur textabgeglichen

Optional: python3 — bedient den localhost-HTTP-Dienst der Sandbox, sodass die live api / live box-Fragen auf den Leveln 24–25 anhand echter Ausgabe bewertet werden. Ohne es fallen diese Fragen auf Textabgleich zurück; sonst ändert sich nichts

Barrierefreiheit: Beachtet NO_COLOR und TERM=dumb. Das Layout passt sich an COLUMNS / tput cols an. Meisterschaftsbalken 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 Rendering-Stufen — Unicode, DEC-ACS-Liniengrafik oder reines ASCII — sodass Rahmen auf einem VT100/VT220/VT320/VT420 oder Wyse intakt bleiben. Auf einem monochromen Bildschirm werden Farbunterschiede als fett/invertiert neu kodiert. Erzwinge eine Stufe mit CMDCHAMP_ASCII=1 oder CMDCHAMP_UNICODE=1. ./test_terminals.sh verifiziert es.

Verwendung

cmdchamp                # Startet das Spielmenü
cmdchamp explain 'CMD'  # Erklärt jeden Befehl - jedes Flag, plus die Shell-Syntax darum herum
cmdchamp autopsy        # Liest deine eigene Shell-Historie und ordnet sie dem Lehrplan zu
cmdchamp daily          # Spielt die heutige tägliche Herausforderung (gleicher Lauf für alle)
cmdchamp daily 2026-02-16   # Spielt den Lauf eines bestimmten Tages erneut (gegen einen Freund antreten)
cmdchamp play           # Freispiel-Sandbox: gib einen beliebigen Befehl ein, sieh ihn laufen
cmdchamp --no-sandbox   # Sandbox deaktivieren (nur Textabgleich)
cmdchamp reset          # Löscht allen Fortschritt
cmdchamp test           # Führt Selbsttests aus
cmdchamp version        # Zeigt die Version
cmdchamp help           # Zeigt die Hilfe

cmdchamp explain (oder cmdchamp x) ist das Tab-Panel als eigenständiges Werkzeug: handgeschriebene Seiten für ~300 Befehle plus die Shell-Syntax darum herum, offline, ohne Netzwerk, ohne Abhängigkeiten. Es nimmt einen in Anführungszeichen gesetzten Befehl oder die nackten Wörter entgegen und liest stdin, wenn keines von beidem gegeben ist — also erklärt history | tail -1 | cmdchamp x, was du gerade ausgeführt hast. Exit 0, wenn es den Befehl kennt, 1, wenn nicht.

Kategorien