Linux¶
Terminal¶
Kurze Einführungen auf ubuntuusers: Shell, Bash
Einführung im Plenum¶
pwdlsls -lhtra(long humanreadable zeitgeordnet umgekehrt versteckte)- Tabulator zur Syntaxergänzung. Wiederholtes Drücken listet die (verbleibenden) Möglichkeiten auf.
- Pfeil-nach-oben zum Aufruf der letzten Eingabe.
- Strg+C zum Beenden eines Prozesses.
sudo- Ein
^, z.B. beim Bearbeiten einer Datei mitnanobedeutet die Strg-Taste. Die Tastenkombinationen bekommt man beinanoz.B. mit Strg+G angezeigt. Beinanobedeutet dasMdie Alt-Taste.
Übungen in EA/PA¶
Wofür sind die folgenden Befehle gut? Finde heraus, wofür die Befehle verwendet werden können und probiere den einen oder anderen Befehl aus.
Das Minimalziel der Stunde ist es, dass du Ordner und Datei erstellen und kopieren kannst.
Es gibt mehrere Möglichkeiten, wie du etwas über einen Befehl X herausfinden kannst:
whatis XX --helpman X
Zum Beispiel spuckt das Terminal bei ls --help so etwas aus wie
Aufruf: ls [OPTION]... [DATEI]...
Das heißt, dass man eine Option oder einen Dateinamen eingeben kann, aber nicht muss.
cdcd ..cd -clearmkdirrmdirtouchnanocpmvrmtreelessfindechofirefoxfirefox & disownwhichwgetcurlcaltargzipvicataptifconfighostname -Iwhereisrsyncdf -hcat /proc/partitionsdmesg
Spielereien¶
curl wttr.in/brettencurl ident.me(gibt deine IP-Adresse aus)revtr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"cat /dev/urandom | hexdump -C | grep "ca fe"- Freakige Befehle
Effektiver Umgang mit dem Terminal¶
- Bisherige Befehle nochmal aufrufen mit
- Ausrufezeichen gefolgt von einem Zeichen ruft den letzten Befehl mit diesem Zeichen auf.
history, dann!gefolgt von der Nummer.- Strg+R
sudo !!- Aliase über die Datei
~/.bashrc. - Dateien durchsuchen mit
locateoderfind(s.u.): 1, 2, 3, 4, 5, 6 - Wechselt man mit
cdzu einem Verzeichnis, will dann aber wieder zurück zum letzten Verzeichnis, dann genügtcd -. - Weitere Bash-Tricks
Weitere Beispiele¶
sudo pm-hibernatels -1 *.jpg | parallel -j 3 convert '{}' -resize 1920x -quality 60 '{/}_1920px.jpg'- http://www.shellbefehle.de/bash-tipps/
date +"Wir sind gerade die Kalenderwoche %V."
Bemerkungen zu find¶
find hat auch eine exec-Option, z.B. kann man alle Dateien im aktuellen Verzeichnis und Unterverzeichnissen mit ~ am Ende so löschen:
find -iname *.*~* -exec rm {} \;
Etwas mit Dateien unterschiedlicher Endungen machen, geht z.B. so:
find \( -iname '*.jpg' -or -iname '*.jpeg' -or -iname '*.gif' -or -iname '*.png' -or -iname '*.bmp' \) | wc -l
Bei rechenaufwendigen Operationen lohnt sich find mit parallel, z.B.
find "Quellverzeichnis" | parallel -j 2 cp {} -bv "Zielverzeichnis"
Bilder bzw. SD-Karte wiederherstellen¶
sudo dd if=/dev/sdf1 of=/tmp/usb_image
foremost jpg -o /tmp/wiederhergestellte_dateien -i /tmp/usb_image
Security mit dem Terminal¶
Mit dem Terminal kann man seine Sicherheit hinsichtlich seines Datenschutzes erhöhen. Z.B.
diceware -n 4diceware auf GitHubfind \( -iname '*.jpg' -or -iname '*.jpeg' -or -iname '*.gif' -or -iname '*.png' -or -iname '*.bmp' \) -print0 | xargs -0 mogrify -strip
Bash-Skripte¶
Bash-Skripte haben die Endung *.sh und können in der ersten Zeile ein Shebang haben. Mit einem Bash-Skript kann man mehrere Terminal-Befehle hintereinander ausführen lassen; ein Bash-Skript ist also quasi ein Terminal-Programm. Und so sieht der Code der Datei test.sh aus:
```Bash
!/bin/bash¶
notify-send "Start"
``
Dabei sind Zeilen mit#` Kommentare.
Das Skript starten geht z.B. mit
bash test.sh
oder
./test.sh
Beim letzteren Startbefehl muss man vor dem Ausführen bei den Zugriffsrechten das starten zulassen:
chmod u+x test.sh
Bash-Spiel¶
Programmiere mit Hilfe dieses Links ein Bash-Spiel.