Zum Inhalt

Linux

distrochooser.de

Verzeichnisstruktur

Terminal

HO

Nette Übersicht auf Linuxmint

Kurze Einführungen auf ubuntuusers: Shell, Bash

Einführung im Plenum

  • pwd
  • ls
  • ls -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 mit nano bedeutet die Strg-Taste. Die Tastenkombinationen bekommt man bei nano z.B. mit Strg+G angezeigt. Bei nano bedeutet das M die 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:

  1. whatis X
  2. X --help
  3. man 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.

  • cd
  • cd ..
  • cd -
  • clear
  • mkdir
  • rmdir
  • touch
  • nano
  • cp
  • mv
  • rm
  • tree
  • less
  • find
  • echo
  • firefox
  • firefox & disown
  • which
  • wget
  • curl
  • cal
  • tar
  • gzip
  • vi
  • cat
  • apt
  • ifconfig
  • hostname -I
  • whereis
  • rsync
  • df -h
  • cat /proc/partitions
  • dmesg

Spielereien

  • curl wttr.in/bretten
  • curl ident.me (gibt deine IP-Adresse aus)
  • rev
  • tr -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 locate oder find (s.u.): 1, 2, 3, 4, 5, 6
  • Wechselt man mit cd zu einem Verzeichnis, will dann aber wieder zurück zum letzten Verzeichnis, dann genügt cd -.
  • Weitere Bash-Tricks

Weitere Beispiele

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 4 diceware auf GitHub
  • find \( -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.