tar bündelt Dateien und Verzeichnisse zu einem Archiv, gzip komprimiert einzelne Dateien. Zusammen ergeben sie das weltweit verbreitetste Backup- und Verteilformat unter Linux: .tar.gz.
tar: Archiv erstellen und entpacken
tar -cf archiv.tar verzeichnis # Archiv erstellen (c=create, f=Datei)
tar -xf archiv.tar # Archiv entpacken (x=extract)
tar -tf archiv.tar # Inhalt anzeigen (t=list)
tar -czf archiv.tar.gz verzeichnis # komprimiert mit gzip (z)
tar -xzf archiv.tar.gz # komprimiertes Archiv entpacken
gzip: Dateien komprimieren
gzip datei.txt # erzeugt datei.txt.gz
gunzip datei.txt.gz # wieder entpacken
gzip -k datei.txt # Original behalten (-k wie keep)
zcat log.txt.gz # Inhalt anzeigen ohne zu entpacken
zgrep "Fehler" log.txt.gz # direkt in der gz-Datei suchen
Typische Praxis
tar -czf backup-$(date +%F).tar.gz /home/user/ # Backup mit Datum
tar -xzf paket.tar.gz -C /opt/ # in ein Zielverzeichnis
tar -czf web.tar.gz --exclude=cache --exclude=tmp /var/www # Ordner ausschließen
tar -cjf archiv.tar.bz2 verzeichnis # stärkere Kompression (bzip2)
tar -cJf archiv.tar.xz verzeichnis # noch stärker (xz)
Praxis-Tipps
- Die Option
-fsteht immer zuletzt, weil dahinter der Dateiname kommt:tar czf datei.tar.gz .... tarallein bündelt nur; Kompression kommt vonz(gzip),j(bzip2) oderJ(xz) — je stärker, desto langsamer.- Vor dem Entpacken immer
tar -tf archiv.tar.gzprüfen — manche Archive enthalten kein eigenes Oberverzeichnis. - Mit
gzip -t datei.gzlässt sich eine Datei auf Integrität testen. - Backups mit Datum im Dateinamen (
$(date +%F)) sind der einfachste Weg, mehrere Versionen zu behalten.
Verwandte Grundlagen: Bash-Befehle, find-Befehle und xargs-Befehle.
chmod ändert Dateirechte, chown ändert Besitzer und Gruppe, ln erstellt Links. Diese drei Befehle gehören zu den Grundlagen jeder Linux-Systemadministration — wer sie beherrscht, versteht, wie Linux Zugriff und Dateiverweise organisiert.
chmod: Rechte vergeben
Jede Datei hat drei Rechtegruppen: User (Besitzer), Group, Others — jeweils mit r (lesen=4), w (schreiben=2) und x (ausführen=1).
chmod 755 skript.sh # Besitzer 7 (rwx), Gruppe 5 (r-x), Andere 5 (r-x)
chmod 644 notizen.txt # Besitzer rw-, Gruppe r--, Andere r--
chmod u+x skript.sh # Ausführen-Recht nur für den Besitzer ergänzen
chmod -R 755 /var/www/html # -R: rekursiv für alle Dateien im Verzeichnis
chmod a-w datei.txt # Schreibrecht für alle entfernen
chmod g+w,o-r datei.txt # Gruppe +w, Andere -r in einem Aufruf
chown: Besitzer und Gruppe ändern
chown michael datei.txt # Besitzer ändern
chown michael:www-data datei.txt # Besitzer UND Gruppe setzen
chown -R michael:www-data /projekt/ # rekursiv für das ganze Verzeichnis
chgrp www-data datei.txt # nur die Gruppe ändern (Kurzform)
ln: Links erstellen
ln -s /opt/app/aktuell /home/michael/app # symbolischer Link (Verknüpfung)
ln datei.txt harte_kopie.txt # harter Link (zweiter Name, gleiche Daten)
ln -s ../var/www/htdocs /top/www-link # relativer Zielpfad
Ein symbolischer Link ist eine Verknüpfung auf einen Pfad (bricht, wenn das Ziel verschoben wird), ein harter Link ist ein zweiter Name für dieselben Daten auf derselben Partition (überlebt Verschieben, funktioniert nicht über Dateisystemgrenzen).
Praxis-Tipps
- Mit
ls -lsieht man die Rechte direkt:-rwxr-xr-xbedeutet Besitzer rwx, Gruppe r-x, Andere r-x. - Für Web-Verzeichnisse ist
chown -R user:www-data+chmod 750/640ein sicheres Grundmuster. chmod -xentfernt das Ausführen-Recht — praktisch, um versehentliches Starten zu verhindern.- Symbolische Links erkennt man mit
ls -lam Pfeil:app -> /opt/app/aktuell.
Verwandte Grundlagen: Bash-Befehle, find-Befehle und ps, top und kill.
ps zeigt eine Momentaufnahme laufender Prozesse, top überwacht sie live und kill beendet sie. Zusammen sind sie das Basiswerkzeug, um zu verstehen, was auf einem Linux-System gerade arbeitet — und es bei Bedarf zu stoppen.
ps: Prozesse anzeigen
ps aux # alle Prozesse mit CPU-/Speichernutzung (Standard)
ps -ef # alle Prozesse, volle Kommandozeile
ps aux | grep nginx # nach einem Dienst filtern
ps -e --forest # Prozessbaum (Eltern-Kind-Beziehung)
ps -u michael # nur Prozesse eines Benutzers
ps -p 1234 -o pid,cmd # gezielt eine PID abfragen
Die PID (Process ID) ist die Nummer, mit der man einen Prozess später anspricht. ps aux zeigt sie in der zweiten Spalte.
top: Live-Überwachung
top # Live-Ansicht, aktualisiert sich selbst
top -o %MEM # nach Speichernutzung sortieren
htop # komfortablere Variante (falls installiert)
In top sortiert P nach CPU, M nach Speicher, k beendet einen Prozess (PID eingeben), q verlässt die Ansicht.
kill: Prozesse beenden
kill 1234 # Signal TERM: sauberes Beenden anfordern
kill -9 1234 # Signal KILL: sofort beenden (letzte Möglichkeit)
killall nginx # alle Prozesse mit diesem Namen beenden
pkill -f "node app.js" # per Namensmuster beenden
kill -l # Liste aller Signale anzeigen
Die Reihenfolge ist wichtig: erst kill PID (Signal 15, TERM — der Prozess kann aufräumen), erst wenn das nicht wirkt kill -9 (Signal 9, KILL — hartes Beenden ohne Aufräumen).
Praxis-Tipps
pgrep nginxliefert nur die PID-Nummern — perfekt für Skripte.- Hängende Prozesse lassen sich oft mit
kill -9beenden; vorher aberkillversuchen, sonst gehen ungesicherte Daten verloren. - Mit
ps -o pid,%cpu,%mem,cmd --sort=-%cpubekommt man die CPU-lastigsten Prozesse als Liste. nice -n 10 ./schwer.shstartet einen Prozess mit niedrigerer Priorität, damit er andere nicht ausbremst.
Verwandte Grundlagen: Bash-Befehle, sort, uniq und cut und systemctl und journalctl.
systemctl steuert Dienste (Services) und Systemzustände unter systemd — dem Standard-Init-System moderner Linux-Distributionen. journalctl liest die zentrale Log-Sammlung (Journal). Zusammen verwalten sie, was beim Boot startet, was gerade läuft und was schiefgelaufen ist.
systemctl: Dienste steuern
systemctl status nginx # Status: läuft, aktiviert, letzte Log-Zeilen
systemctl start nginx # Dienst starten
systemctl stop nginx # Dienst stoppen
systemctl restart nginx # neu starten (nach Konfig-Änderungen)
systemctl reload nginx # Konfiguration neu laden ohne Neustart
systemctl enable nginx # automatischer Start beim Booten
systemctl disable nginx # Autostart entfernen
systemctl --failed # alle fehlgeschlagenen Dienste anzeigen
systemctl list-units --type=service --state=running # laufende Dienste
systemctl daemon-reload # Unit-Dateien nach Änderungen neu einlesen
journalctl: Logs lesen
journalctl -u nginx # Logs eines Dienstes
journalctl -u nginx -f # -f: live mitverfolgen (wie tail -f)
journalctl --since "1 hour ago" # seit einem Zeitpunkt
journalctl --since today # seit heute
journalctl -p err # nur Fehler (err) und Schlimmeres
journalctl -n 50 # die letzten 50 Zeilen
journalctl -b # seit dem letzten Boot
journalctl -k # Kernel-Meldungen
Typische Fehlersuche
systemctl status apache2 # zeigt den Fehler direkt an
journalctl -u apache2 -p err --since today # Fehler des Tages
systemctl restart apache2 # nach Config-Änderung
systemctl --failed # welche Dienste nicht starten
Praxis-Tipps
- Nach Änderungen an
/etc/systemd/system/immersystemctl daemon-reloadausführen, sonst ignoriert systemd die neue Datei. systemctl enable --now nginxstartet den Dienst UND aktiviert den Autostart in einem Schritt.- Wer
journalctl-Ausgaben weiterverarbeiten will, nutzt die Pipe:journalctl -u nginx | grep Fehler. - Das Journal speichert auch Kernel-Meldungen —
journalctl -k -p errzeigt Hardware-Probleme.
Verwandte Grundlagen: Bash-Befehle, ps, top und kill und grep-Befehle.
TypeScript – Schnellreferenz
TypeScript ist JavaScript mit statischen Typen – der Standard für große Web-Projekte und Angular/React-Anwendungen.
Typen und Interfaces
const name: string = "Hanse";
const alter: number = 42;
const aktiv: boolean = true;
interface Kunde {
name: string;
alter: number;
email?: string; // optional
}
const k: Kunde = { name: "Hanse", alter: 42 };
Union Types und Type Alias
type Id = string | number;
type Status = "aktiv" | "inaktiv";
let id: Id = 42;
let status: Status = "aktiv";
Generics
function erste<T>(liste: T[]): T | undefined {
return liste[0];
}
const x = erste([1, 2, 3]); // number
Klassen
class Kunde {
constructor(public name: string, private alter: number) {}
istVolljaehrig(): boolean {
return this.alter >= 18;
}
}
tsc-Befehle
| Aufgabe | Befehl |
|---|---|
| Kompilieren | npx tsc datei.ts |
| Watch-Modus | npx tsc --watch |
| Konfiguration | npx tsc --init |
| Strikte Prüfung | npx tsc --strict |
Verwandt: JavaScript · HTML & CSS · API