Linux – Grundbefehle für IT-Allrounder
Die wichtigsten Linux-Terminalbefehle kompakt erklärt: Navigation, Dateioperationen, Berechtigungen, Prozesse, Netzwerk und Paketverwaltung.
Warum du als IT-Allrounder Linux brauchst
Auch wenn dein Arbeitsalltag hauptsächlich aus Windows besteht: Linux begegnet dir früher oder später. Webserver, NAS-Systeme, Firewalls, Docker-Container, Raspberry Pi, virtuelle Maschinen – ein riesiger Teil der IT-Infrastruktur läuft auf Linux. Wer die Kommandozeile nicht scheut, kann Probleme direkt am Server lösen, ohne eine GUI zu brauchen.
Diese Seite gibt dir einen praxisnahen Einstieg in die wichtigsten Befehle. Du brauchst kein Vorwissen – nur ein Terminal und etwas Neugier.
Terminal öffnen
Das Terminal ist dein Werkzeug. Auf den meisten Desktop-Distributionen öffnest du es mit Strg+Alt+T. Auf einem Server ohne GUI ist das Terminal automatisch das, was dich begrüsst – meistens über SSH.
Das Prompt sieht typischerweise so aus:
seya@server01:~$
seya= eingeloggter Benutzerserver01= Hostname~= aktuelles Verzeichnis (hier: Home-Verzeichnis)$= normaler Benutzer (bei Root wäre es#)
Navigation im Dateisystem
Das Linux-Dateisystem ist eine Baumstruktur. Alles beginnt bei / (Root). Kein Laufwerksbuchstabe wie in Windows – stattdessen gibt es feste Verzeichnisse wie /etc (Konfiguration), /var/log (Logs), /home (Benutzerordner), /tmp (temporäre Dateien).
pwd # Zeigt, wo du gerade bist ("Print Working Directory")
ls # Inhalt des aktuellen Verzeichnisses auflisten
ls -l # Detailansicht: Berechtigungen, Grösse, Datum
ls -la # Wie -l, aber auch versteckte Dateien (beginnen mit Punkt)
ls -lh # Wie -l, aber Dateigrössen menschenlesbar (KB, MB)
cd /etc # In das Verzeichnis /etc wechseln
cd ~ # Ins eigene Home-Verzeichnis springen
cd .. # Eine Ebene höher
cd - # Zurück ins letzte Verzeichnis (praktisch!)
Beispiel: Logdateien auf einem Server aufspüren
cd /var/log
ls -lh
# -> zeigt alle Logs mit Grösse und Datum
Wichtige Verzeichnisse auf einen Blick
| Pfad | Inhalt |
|---|---|
/etc | Konfigurationsdateien |
/var/log | Logdateien |
/home/username | Home-Verzeichnis des Benutzers |
/tmp | Temporäre Dateien (werden bei Neustart gelöscht) |
/opt | Optionale Drittanbieter-Software |
/usr/bin | Ausführbare Programme |
/etc/systemd/system | Eigene systemd-Dienste |
Dateien und Verzeichnisse verwalten
mkdir logs # Verzeichnis "logs" erstellen
mkdir -p /opt/app/logs # Verzeichnis inklusive aller Elternordner erstellen
touch datei.txt # Leere Datei erstellen (oder Timestamp aktualisieren)
cp datei.txt backup.txt # Datei kopieren
cp -r /etc/nginx /tmp/nginx-bak # Verzeichnis rekursiv kopieren
mv alte.txt neue.txt # Datei umbenennen
mv datei.txt /tmp/ # Datei in ein anderes Verzeichnis verschieben
rm datei.txt # Datei löschen
rm -rf /tmp/test # Verzeichnis rekursiv und ohne Rückfrage löschen
ln -s /opt/app/config /etc/app # Symbolischen Link erstellen
Dateien suchen
find /var/log -name "*.log" # Alle .log-Dateien unter /var/log suchen
find /home -name "*.txt" -mtime -7 # .txt-Dateien, geändert in den letzten 7 Tagen
find / -name "nginx.conf" 2>/dev/null # Überall suchen, Fehler unterdrücken
which nginx # Pfad zu einem Programm anzeigen
locate nginx.conf # Schnelle Dateisuche (aus Index, muss aktuell sein)
Dateiinhalte lesen und durchsuchen
cat datei.txt # Kompletten Inhalt ausgeben
less datei.txt # Seitenweise blättern (q zum Beenden, / zum Suchen)
head -n 20 datei.txt # Erste 20 Zeilen
tail -n 50 datei.txt # Letzte 50 Zeilen
tail -f /var/log/syslog # Live-Ausgabe: neue Zeilen werden sofort angezeigt
grep – der mächtigste Suchbefehl
grep "error" /var/log/syslog # Zeilen mit "error" ausgeben
grep -i "ERROR" /var/log/syslog # Gross-/Kleinschreibung ignorieren
grep -r "timeout" /etc/nginx/ # Rekursiv in einem Verzeichnis suchen
grep -n "fail" /var/log/auth.log # Mit Zeilennummern
grep -v "DEBUG" /var/log/app.log # Zeilen OHNE "DEBUG" anzeigen
grep -c "error" /var/log/syslog # Nur Anzahl der Treffer ausgeben
# Kombinieren mit Pipe (|)
tail -f /var/log/syslog | grep "error" # Nur Fehler im Live-Log anzeigen
cat access.log | grep "192.168.1.10" # Alle Einträge einer bestimmten IP
Benutzer, Gruppen und Berechtigungen
Wer bin ich?
whoami # Aktuellen Benutzernamen anzeigen
id # UID, GID und alle Gruppen des aktuellen Benutzers
id seya # Infos zu einem anderen Benutzer
groups # Nur die eigenen Gruppen
sudo – als Root handeln
sudo apt update # Befehl als Root ausführen
sudo -i # Root-Shell öffnen (Vorsicht!)
sudo -u www-data bash # Shell als anderer Benutzer öffnen
su - seya # Zu anderem Benutzer wechseln (braucht dessen Passwort)
Benutzer verwalten
useradd -m -s /bin/bash seya # Benutzer erstellen (mit Home-Verzeichnis und Bash)
passwd seya # Passwort setzen oder ändern
usermod -aG sudo seya # Benutzer zur sudo-Gruppe hinzufügen
usermod -aG docker seya # Benutzer zur docker-Gruppe hinzufügen
userdel -r seya # Benutzer löschen (inkl. Home-Verzeichnis)
cat /etc/passwd # Alle Benutzer auflisten
getent group sudo # Mitglieder einer Gruppe anzeigen
Dateiberechtigungen lesen und setzen
Linux-Berechtigungen bestehen aus drei Teilen: Owner (Besitzer), Group (Gruppe), Others (alle anderen). Jeder Teil hat Read (r=4), Write (w=2), Execute (x=1).
ls -l datei.sh
# -> -rwxr-xr-- 1 seya staff 1234 Jun 23 10:00 datei.sh
# rwx = Owner kann lesen, schreiben, ausführen
# r-x = Gruppe kann lesen und ausführen
# r-- = Andere können nur lesen
chmod 755 skript.sh # rwxr-xr-x (Owner alles, Rest nur lesen/ausführen)
chmod 644 config.txt # rw-r--r-- (Owner schreiben, Rest nur lesen)
chmod +x skript.sh # Ausführbar machen (für alle)
chmod -x skript.sh # Ausführbar-Flag entfernen
chown seya datei.txt # Besitzer ändern
chown seya:staff datei.txt # Besitzer und Gruppe ändern
chown -R www-data /var/www # Rekursiv Besitzer für ganzes Verzeichnis setzen
Prozesse und Systemübersicht
ps aux # Alle laufenden Prozesse aller Benutzer
ps aux | grep nginx # Prozesse nach Name filtern
top # Live-Prozessübersicht (q zum Beenden)
htop # Verbesserte top-Version (muss installiert werden)
kill 1234 # Prozess mit PID 1234 beenden (freundlich)
kill -9 1234 # Prozess erzwungen beenden (SIGKILL)
pkill nginx # Prozess nach Name beenden
killall -9 python3 # Alle Instanzen eines Programms beenden
Systemressourcen im Blick
df -h # Festplattennutzung (menschenlesbar)
df -h /var # Nur ein bestimmtes Dateisystem
du -sh /var/log # Grösse eines Verzeichnisses
du -sh /var/log/* # Grösse aller Unterordner
free -h # RAM-Nutzung (total, used, free, cached)
uptime # Systemlaufzeit und CPU-Last (1/5/15 Min)
uname -a # Kernel-Version und Architektur
lscpu # CPU-Informationen
lsblk # Blockgeräte (Festplatten, Partitionen)
Typischer Troubleshooting-Ablauf: Disk Full
df -h # Welche Partition ist voll?
du -sh /var/log/* # Was belegt am meisten Platz?
ls -lhS /var/log/ # Grösste Dateien zuerst anzeigen
# -> Verdächtige Logdatei gefunden: 8 GB nginx-access.log
truncate -s 0 /var/log/nginx/access.log # Datei leeren (nicht löschen!)
Netzwerkbefehle
ip a # Alle Netzwerkinterfaces mit IP-Adressen
ip r # Routing-Tabelle
ip link show # Interface-Status (up/down)
ss -tulpn # Alle offenen Ports und zugehörige Prozesse
ss -tulpn | grep :80 # Wer hört auf Port 80?
ping -c 4 8.8.8.8 # 4 Pings an Google DNS (Erreichbarkeit testen)
traceroute 8.8.8.8 # Netzwerkpfad zum Ziel verfolgen
nslookup firma.ch # DNS-Auflösung testen
dig firma.ch # Detaillierte DNS-Abfrage
host 192.168.1.1 # Reverse-DNS-Lookup
curl -I https://firma.ch # HTTP-Header einer URL abrufen
curl -s https://api.example.com/status # API-Endpunkt testen
wget https://example.com/datei.zip # Datei herunterladen
Offene Ports prüfen – wer lauscht wo?
ss -tulpn
# -> Zeigt: Proto, Local Address:Port, Process
# Beispiel-Output:
# tcp LISTEN 0 128 0.0.0.0:22 users:(("sshd",pid=1234))
# tcp LISTEN 0 128 0.0.0.0:80 users:(("nginx",pid=5678))
Paketverwaltung
Debian / Ubuntu (apt)
apt update # Paketlisten aktualisieren (kein Upgrade!)
apt upgrade -y # Alle installierten Pakete aktualisieren
apt install htop curl vim -y # Pakete installieren
apt remove paketname # Paket entfernen
apt autoremove # Nicht mehr benötigte Pakete aufräumen
apt search stichwort # Nach Paket suchen
apt show nginx # Details zu einem Paket
dpkg -l | grep nginx # Prüfen ob ein Paket installiert ist
RHEL / Rocky / AlmaLinux (dnf)
dnf update -y # System aktualisieren
dnf install htop curl vim -y # Pakete installieren
dnf remove paketname # Paket entfernen
dnf search stichwort # Nach Paket suchen
rpm -qa | grep nginx # Installierte Pakete filtern
Pipes, Umleitungen und praktische Shortcuts
Diese Konzepte machen die Shell so mächtig:
# Pipe: Output eines Befehls als Input des nächsten
ps aux | grep nginx
cat /var/log/syslog | grep error | tail -n 20
# Ausgabe in Datei umleiten
echo "Backup erfolgreich" > backup.log # Datei überschreiben
echo "Weiterer Eintrag" >> backup.log # Datei anhängen
ls -la /etc > /tmp/etc-listing.txt
# Fehlerausgabe
befehl 2>/dev/null # Fehlermeldungen unterdrücken
befehl > ausgabe.log 2>&1 # Alles (stdout + stderr) in Datei
# Mehrere Befehle verketten
apt update && apt upgrade -y # Zweiter Befehl nur wenn erster erfolgreich
rm /tmp/test || echo "Löschen fehlgeschlagen" # Zweiter Befehl wenn erster scheitert
Weitere nützliche Shortcuts im Terminal:
| Tastenkombination | Funktion |
|---|---|
| Tab | Autovervollständigung |
| Strg+C | Aktuellen Befehl abbrechen |
| Strg+Z | Prozess in Hintergrund schieben |
| Strg+L | Terminal leeren (wie clear) |
| Pfeil hoch | Vorherigen Befehl aus History |
| Strg+R | In der Befehlshistorie suchen |
!! | Letzten Befehl wiederholen (z.B. sudo !!) |
Häufige Troubleshooting-Situationen
Dienst startet nicht
systemctl status nginx # Status und letzte Logzeilen anzeigen
journalctl -u nginx -n 50 # Letzte 50 Log-Einträge des Dienstes
journalctl -u nginx -f # Live mitlesen
nginx -t # Konfiguration auf Syntaxfehler prüfen
Verbindung schlägt fehl
ping 192.168.1.10 # Host erreichbar?
ss -tulpn | grep :80 # Lauscht der Dienst überhaupt?
curl -v http://192.168.1.10 # HTTP-Verbindung testen mit Details
# Firewall prüfen:
iptables -L -n # Regeln anzeigen (ältere Systeme)
ufw status # UFW-Firewall-Status (Ubuntu)
firewall-cmd --list-all # firewalld-Status (RHEL/Rocky)
Welcher Prozess blockiert eine Datei oder einen Port?
lsof /var/log/nginx/error.log # Welcher Prozess hat diese Datei geöffnet?
lsof -i :80 # Welcher Prozess nutzt Port 80?
fuser 80/tcp # PID des Prozesses auf Port 80
Zu wenig Festplattenplatz
df -h # Übersicht aller Partitionen
du -sh /var/log/* | sort -rh | head -10 # Top 10 der grössten Log-Verzeichnisse
find /var/log -name "*.log" -size +100M # Logs grösser als 100 MB finden
journalctl --disk-usage # Wie viel Platz belegen die journald-Logs?
journalctl --vacuum-size=500M # journald-Logs auf 500 MB begrenzen
Textdateien bearbeiten
Auf einem Server ohne GUI brauchst du einen Terminal-Editor. Die zwei wichtigsten:
nano – einfach, anfängerfreundlich:
nano /etc/hosts # Datei bearbeiten
# Strg+O = Speichern, Strg+X = Beenden, Strg+W = Suchen
vim – mächtig, aber mit Lernkurve:
vim /etc/nginx/nginx.conf
# i = Insert-Modus (schreiben)
# Esc = Normal-Modus
# :w = Speichern
# :q = Beenden
# :wq = Speichern und Beenden
# :q! = Beenden ohne Speichern
# /suchbegriff = Suchen, n = nächster Treffer
Crosslinks
Hast du die Grundbefehle im Griff, sind das die logischen nächsten Schritte:
- SSH – Grundlagen und Schlüsselverwaltung – Remote-Zugriff auf Linux-Server
- Cron Jobs – Automatisierung unter Linux – Aufgaben zeitgesteuert ausführen
- Linux systemd – Dienste verwalten – Services starten, stoppen, überwachen
- Docker – Container Grundlagen – Applikationen in Containern betreiben
- PowerShell IT-Alltag – Das Windows-Pendant zur Linux-Shell
- Troubleshooting-Methodik – Strukturiertes Vorgehen bei Problemen
Weiterlernen
- The Linux Command Line (online kostenlos) – das Standardwerk für Einsteiger, kostenlos als PDF
- explainshell.com – Beliebige Shell-Befehle analysieren und erklären lassen
- Linux Befehle Referenz – IONOS Digitalguide – Kompakte Übersicht der wichtigsten Terminalbefehle
- Ubuntu Server Guide (offizielle Doku) – Offizielle Ubuntu-Serverdokumentation auf Englisch
- Debian Reference Manual – Umfassende Debian-Referenz
- tldr.sh – Vereinfachte Man-Pages mit echten Beispielen (auch als CLI-Tool installierbar)
Videos
Kommentare
Frage, Verbesserungsvorschlag oder eigene Erfahrung zu diesem Artikel? Schreib einen Kommentar. Neue Beiträge erscheinen nach kurzer Moderation.
- Lade Kommentare …