Linux-Cheatsheet
Linux ist das Betriebssystem auf allen Pool-Rechnern und Rechenservern des Instituts. Für viele Aufgaben genügt eine grafische Oberfläche; die volle Stärke entfaltet Linux auf der Kommandozeile (Terminal). Hier die wichtigsten Befehle für den Einstieg.
Datei.txt und datei.txt sind zwei verschiedene Dateien.
Hilfreich von Anfang an
Tab-Ergänzung, Befehlshistorie und das eingebaute Handbuch.
Tab-Ergänzung und Befehlshistorie
Tab ergänzt Befehle und Dateinamen automatisch – spart Tipparbeit und Tippfehler.
Mit ↑ / ↓ durch frühere Befehle navigieren.
man – Handbuch aufrufen
Zeigt die vollständige Dokumentation eines Befehls:
$ man ls # Handbuch für "ls"
$ man man # Handbuch für "man"
Scrollen: Leertaste (Seite vor), b (zurück), q (beenden).
Verzeichnisse und Dateien
ls – Verzeichnisinhalt auflisten
Zeigt Dateien und Unterverzeichnisse an.
$ ls # Inhalt des aktuellen Verzeichnisses
$ ls -l # ausführliche Liste (Rechte, Größe, Datum)
$ ls -la # wie -l, zeigt auch versteckte Dateien (. am Anfang)
$ ls Verz/ # Inhalt eines anderen Verzeichnisses
pwd – Aktuelles Verzeichnis anzeigen
Zeigt den vollständigen Pfad des aktuellen Verzeichnisses.
$ pwd
cd – Verzeichnis wechseln
$ cd Verzeichnis # wechselt in "Verzeichnis"
$ cd # wechselt ins Home-Verzeichnis (~)
$ cd .. # eine Ebene höher
$ cd - # zum vorherigen Verzeichnis zurück
mkdir – Verzeichnis erstellen
$ mkdir neues_verz # erstellt "neues_verz"
$ mkdir -p pfad/zu/verz # erstellt alle Zwischenverzeichnisse
Dateien lesen und bearbeiten
cat – Datei ausgeben
$ cat datei.txt # gibt Inhalt aus
$ cat datei1.txt datei2.txt # gibt beide Dateien hintereinander aus
less – Datei seitenweise lesen
Für große Dateien besser geeignet als cat.
$ less datei.txt
Navigation: Leertaste (vor), b (zurück), /Suchbegriff (suchen), q (beenden).
head, tail, wc – Anfang, Ende, Statistik
$ head datei.txt # erste 10 Zeilen
$ head -n 50 datei.txt # erste 50 Zeilen
$ tail -n 20 datei.txt # letzte 20 Zeilen
$ tail -f log.txt # Datei live verfolgen (z. B. Logs)
$ wc datei.txt # Zeilen, Wörter, Bytes
$ wc -l datei.txt # nur Zeilen zählen
nano – einfacher Texteditor
Anfängerfreundlich, alle wichtigen Tastenkürzel werden unten in der Statuszeile angezeigt.
$ nano datei.txt # Datei öffnen oder neu anlegen
Wichtigste Shortcuts: Strg+O speichern, Strg+X beenden, Strg+K Zeile ausschneiden, Strg+W suchen.
vim erwischt?
Mit Esc, :q!, Enter kommst du wieder raus –
ganz ohne Speichern.
Kopieren, Verschieben, Löschen
cp und mv – Kopieren und Verschieben
| Befehl | Wirkung |
|---|---|
cp quelle ziel |
Kopiert Datei quelle nach ziel |
cp -r quellverz/ zielverz/ |
Kopiert ein Verzeichnis rekursiv |
mv quelle ziel |
Verschiebt oder benennt um |
rm – Löschen
$ rm datei.txt # löscht eine Datei
$ rm -i datei.txt # fragt vor dem Löschen nach (sicherer)
$ rm -r verz/ # löscht ein Verzeichnis rekursiv
Suchen
grep – Dateiinhalt durchsuchen
Durchsucht Dateien nach Mustern (reguläre Ausdrücke).
$ grep "Suchbegriff" datei.txt # sucht in einer Datei
$ grep -r "Suchbegriff" verz/ # sucht rekursiv in Verzeichnis
$ grep -i "suchbegriff" datei* # Groß-/Kleinschreibung ignorieren
$ grep -n "Suchbegriff" datei.txt # zeigt Zeilennummern
find – Dateien finden
$ find . -name "*.pdf" # alle PDF-Dateien ab aktuellem Verzeichnis
$ find ~ -name "*.tex" -newer x # .tex-Dateien, neuer als Datei x
Wildcards (Globbing)
Die Shell ersetzt diese Platzhalter vor Befehlsausführung durch passende Dateinamen:
$ ls *.tex # alle Dateien, die auf .tex enden
$ rm bild_?.png # bild_1.png, bild_a.png … (genau 1 Zeichen)
$ ls daten_[0-9].csv # daten_0.csv … daten_9.csv
$ cp projekt/* backup/ # alle Dateien aus projekt/ kopieren
Umleitungen und Pipes
Mit Umleitungsoperatoren können Ausgaben umgeleitet und Programme miteinander verbunden werden.
$ ls -l > liste.txt # Ausgabe in Datei schreiben (überschreibt)
$ ls -l >> liste.txt # Ausgabe anhängen (nicht überschreiben)
$ sort < liste.txt # Datei als Eingabe verwenden
$ ls -l | grep ".pdf" # Ausgabe von ls an grep weitergeben (Pipe)
$ cat datei.txt | sort | uniq # sortieren und doppelte Zeilen entfernen
Berechtigungen
chmod – Dateiberechtigungen ändern
Linux verwaltet Berechtigungen für Besitzer, Gruppe und alle anderen
(Lesen r, Schreiben w, Ausführen x).
$ chmod +x skript.sh # Ausführungsrecht hinzufügen
$ chmod 644 datei.txt # rw-r--r-- (Standardrecht für Dateien)
$ chmod 755 verz/ # rwxr-xr-x (Standardrecht für Verzeichnisse)
Archive packen und entpacken
| Befehl | Wirkung |
|---|---|
tar -czvf archiv.tar.gz verz/ |
Verzeichnis als .tar.gz packen |
tar -xzvf archiv.tar.gz |
.tar.gz entpacken |
tar -tvf archiv.tar.gz |
Inhalt anzeigen, ohne zu entpacken |
zip -r archiv.zip verz/ · unzip archiv.zip |
ZIP-Archive packen / entpacken |
Prozesse im Hintergrund
Wichtig auf den Rechenservern: Prozesse so starten, dass sie weiterlaufen, auch wenn die SSH-Verbindung trennt.
| Befehl | Wirkung |
|---|---|
befehl & |
im Hintergrund starten |
| Strg+Z | laufenden Prozess pausieren |
bg |
pausierten Prozess im Hintergrund weiterlaufen lassen |
fg |
in den Vordergrund holen |
jobs |
eigene Hintergrundprozesse auflisten |
nohup befehl & |
Prozess von Terminal abkoppeln (überlebt SSH-Logout) |
Für lange Sessions ist allerdings tmux oder screen meist komfortabler – siehe SSH-Seite.
Weitere nützliche Befehle
| Befehl | Wirkung |
|---|---|
whoami |
Aktuellen Benutzernamen anzeigen |
df -h |
Belegten Speicherplatz anzeigen |
du -sh verz/ |
Größe eines Verzeichnisses anzeigen |
ps aux |
Laufende Prozesse anzeigen |
kill PID |
Prozess mit der angegebenen PID beenden |
history |
Befehlshistorie anzeigen |
du -sh ~ |
Eigenen Home-Speicherverbrauch anzeigen |
hostname |
Aktuellen Server-Namen anzeigen (hilfreich beim Server-Hopping) |
which befehl |
Pfad zum Programm anzeigen |
befehl --help |
Schnelle Optionsübersicht (kürzer als man) |
mc – Midnight Commander
Wer lieber mit einem visuellen Dateimanager arbeitet:
$ mc
Tastatur-Shortcuts der Shell
Diese funktionieren in fast jeder Bash- oder Zsh-Sitzung – ein massiver Produktivitätsgewinn:
| Shortcut | Wirkung |
|---|---|
| Strg+R | Rückwärtssuche in der Befehlshistorie (zum Wiederfinden alter Befehle) |
| Strg+L | Bildschirm leeren (wie clear) |
| Strg+C | Laufenden Befehl abbrechen |
| Strg+D | Eingabe beenden / Shell beenden |
| Strg+A · Strg+E | Cursor an Zeilenanfang / -ende |
| Strg+U · Strg+K | Zeile vor / nach Cursor löschen |
| Alt+. | letztes Argument des vorigen Befehls einfügen |