lehrkraefte:snr:informatik:glf4-23:kommandozeile:passwordhunt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:glf4-23:kommandozeile:passwordhunt [2024/02/04 22:37] – [Umlenkung der Ausgabe in eine Datei mit '>'] Olaf Schnürerlehrkraefte:snr:informatik:glf4-23:kommandozeile:passwordhunt [2025/02/13 09:16] (current) – [Umlenkung der Ausgabe in eine Datei mit '>'] Olaf Schnürer
Line 1: Line 1:
 +~~NOTOC~~
 +
 +====== Kommandozeile für Fortgeschrittene ======
 +Hier werden weitere Standard-Kommandos aus der Unix-Welt vorgestellt. Diese sind mit der git-bash automatisch mitinstalliert.
 +
 +Testen Sie die angegeben Befehle!
 +
 +===== Umlenkung der Ausgabe in eine Datei mit '>' =====
 +Die Ausgabe, die ein Programm produziert, kann in eine Datei umgeleitet werden. Beispiel:
 +<code bash>
 +echo hello world > hello.txt
 +</code>
 +Der Befehl ''echo'' gibt einfach den gegebenen Text aus. Das ''>'' Zeichen leitet die Ausgabe in eine Datei um. Falls die Datei bereits existiert, wird sie überschrieben. Andernfalls wird die Datei erstellt.
 +
 +Das ist manchmal praktisch, um ganz kleine Dateien zu schreiben, ohne gleich einen Text-Editor zu öffnen. Sonst können Sie einfach mit
 +<code bash>
 +code hello.txt
 +</code>
 +die entsprechende Datei bearbeiten bzw. anlegen (bitte das Abspeichern nicht vergessen!).
 +===== Umlenkung der Ausgabe in ein nächstes Programm mit '|' =====
 +Beispiel:
 +<code bash>
 +yes | python guide.py
 +</code>
 +Das Programm ''yes'' gibt fortlaufend den Text ''y'' aus, bzw. jenen, der danach angegeben wird.  
 +Das Python Programm liest dies ein, als ob man dies auf der Tastatur eingegeben hätte. Es werden also automatisch alle aktuellen Hilfen angezeigt ;-)((Unter Linux funktioniert das bei mir, unter Windows aber nicht, wenn ich mich recht erinnere.))
 +===== Weitere nützliche Kommandos =====
 +==== cat (Datei ausgeben) ====
 +Beispiel:
 +<code bash>
 +seq 1 3 30 > test.txt
 +cat test.txt
 +</code>
 +Das erste Kommando ''seq 1 3 30'' produziert eine Folge von Zeilen mit den Zahlen 1,4,7, etc. Mit ''cat'' wird die Datei auf das Terminal ausgegeben.
 +
 +==== sort (Zeilen sortieren) ====
 +''sort'' sortiert alle Zeilen. Entweder jene von der Eingabe (Abschicken der Eingabe mit ''Ctrl+d'', jedenfalls unter Linux) oder jene aus einer angegebenen Datei (oder mehreren angegebenen Dateien).
 +
 +Beispiele:
 +<code bash>
 +seq 1 2 30 | sort
 +sort test.txt
 +</code>
 +''sort'' sortiert die produzierten Zeilen **alphabetisch**, was nicht unbedingt das Gewünschte ist. Soll **n**ummerisch sortiert werden, fügt man die Option ''-n'' an:
 +<code bash>
 +seq 1 2 20 | sort > surprise.txt
 +cat surprise.txt
 +sort -n surprise.txt
 +</code>
 +
 +==== grep (Zeilen filtern) ====
 +''grep'' gibt jene Zeilen aus, in denen eine gegebene Zeichenkette (z.B. ein Wort oder Zahl) vorkommt. Diese Zeilen kommen entweder als Input daher, oder es werden die angegebenen Datei durchsucht.
 +
 +Beispiel: Wie viele Zahlen von 1 bis 100 enthalten die Ziffer 2?
 +<code bash>
 +seq 1 100 | grep 2 
 +seq 1 100 | grep 2 | wc
 +</code>
 +Das Kommando ''wc''(word count) zählt Zeilen, Wörter und Bytes.
 +
 +Alle Zeilen einer Datei ausgeben, die ein gegebenes Muster (eine Zeichenketter = einen String) enthalten:
 +<code bash>
 +grep MUSTER DATEINAME
 +</code>
 +
 +
 +Mit der Option ''-R'' werden alle Dateien und Unterverzeichnisse (ausgehend vom aktuellen Verzeichnis) nach dem Muster durchsucht.
 +<code bash>
 +grep -R muster
 +</code>
 +
 +In der Ausgabe wird zuerst jeweils der Dateiname (inklusive Pfad) angezeigt. Will man dies verhindern, ergänze man eine "h-flag":
 +
 +<code bash>
 +grep -Rh muster
 +</code>
 +
 +==== find (Dateien finden) ====
 +''find'' listet alle Dateien auf, die sich im gegebenen Verzeichnis und Unterverzeichnissen befinden.
 +<code bash>
 +find desk
 +</code>
 +Mit ''-name'' werden nur Dateien gelistet, die dem Suchmuster entsprechen. Achtung, das Suchmuster muss zwischen Anführungszeichen stehen (sonst wird das Suchmuster schon vor der Suche ersetzt).  
 +<code bash>
 +find desk -name '*.txt'
 +find . -name '*.txt'
 +</code>
 +Das erste Argument gibt an, wo gesucht werden soll (im Verzeichnis ''desk'' bzw. im aktuellen Verzeichnis (dafür steht der Punkt ''.'')).
 +==== unzip (zip-Datei entpacken) ====
 +<code bash>
 +unzip ~/Downloads/passwordhunt.zip
 +</code>
 +Entpackt die Datei in ''~/Downloads/passwordhunt.zip'' ins aktuelle Verzeichnis.
 +
 +====== Passwordhunt Adventure ======
 +<WRAP todo>
 +  * Speichern Sie die folgende Zip-Datei ins Verzeichnis ''C:\ofiXXX'' (Rechtsklick, Link speichern als): {{lehrkraefte:blc:informatik:glf22:passwordhunt.zip}}.
 +  * Entpacken Sie das Archiv direkt auf der Kommandozeile mit ''unzip passwordhunt.zip'' (Voraussetzung ist, dass Sie sich im richtigen Verzeichnis befinden).
 +  * Überprüfen Sie wieder mit ''ls'', ob auch ein neues Verzeichnis entstanden ist.
 +  * Wechseln Sie ins neue Verzeichnis mit ''cd passwordhunt'' <key>Tab</key> <key>Enter</key>.
 +  * Starten Sie den Guide mit ''python guide.py''
 +  * Viel Spass!
 +</WRAP>