lehrkraefte:blc:informatik:glf22:bashadvanced

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:blc:informatik:glf22:bashadvanced [2022/09/28 08:46] – [Umlenkung der Ausgabe in eine Datei mit '>'] Ivo Blöchligerlehrkraefte:blc:informatik:glf22:bashadvanced [2022/09/30 07:11] (current) – [grep (Zeilen filtern)] Ivo Blöchliger
Line 1: Line 1:
 +====== Kommandozeile für Fortgeschrittene ======
 +Hier werden weitere Standard-Kommandos aus der Unix-Welt vorgestellt. Diese sind mit der git-bash automatisch mitinstalliert.
 +
 +===== 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>
 +echo gibt einfach den gegebenen Text aus. Das ''>'' Zeichen leitet die Ausgabe in eine Datei um. Diese wird dabei überschrieben falls die Datei schon existiert. 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 (speichern 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 «yes» aus, bzw. jenen, der danach angegeben wird.  
 +Das Python Programm liest dies ein, also ob man dies auf der Tastatur eingegeben hätte. Es werden also automatisch alle Hilfen angezeigt ;-)
 +
 +===== 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 oder aus der Datei (oder den Dateien) die angegeben wurde(n).
 +
 +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 zählt Zeilen, Wörter und Bytes.
 +
 +Mit der Option ''-R'' werden alle Dateien und Unterverzeichnisse nach dem Muster durchsucht.
 +<code bash>
 +grep -R 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'
 +</code>
 +
 +==== unzip (zip-Datei entpacken) ====
 +<code bash>
 +unzip ~/Downloads/passwordhunt.zip
 +</code>
 +Entpackt die Datei in ''~/Downloads/passwordhunt.zip'' ins aktuelle Verzeichnis.
 +
 +====== Passwordhunt Adventure ======
 +Viel Pass mit {{lehrkraefte:blc:informatik:glf22:passwordhunt.zip}}.
 +
 +