Terminal-Befehle

KAPITEL 03 · BETRIEBSSYSTEME

Terminal-Befehle

Die wichtigsten Kommandozeilen-Befehle für Linux, Windows und macOS – von der Navigation über Dateiverwaltung bis zu Netzwerk-Tools. Mit interaktiver Befehlsreferenz und Linux-vs-Windows Vergleich.

Linux / Bash Windows / PowerShell macOS / Zsh Interaktive Referenz

Inhaltsverzeichnis

Schnellübersicht

Auf dieser Seite lernen Sie alles über Terminal-Befehle und Kommandozeilen:

  • Definition: Was ist ein Terminal und eine Shell?
  • Wichtige Shells: Bash, Zsh, PowerShell, CMD
  • Grundbefehle: Navigation, Dateien, Verzeichnisse
  • Systeminformationen: Status, Prozesse, Ressourcen
  • Netzwerk-Befehle: ping, traceroute, netstat
  • Berechtigungen: chmod, chown, ACL
  • Pipes & Redirects: Datenströme verbinden
  • Linux vs. Windows: Befehle im Vergleich
  • Interaktive Referenz: Befehle suchen und filtern
  • FAQ: Häufige Fragen & Antworten

1. Was ist ein Terminal?

Definition

Ein Terminal (auch Konsole, Kommandozeile oder CLI – Command Line Interface) ist eine textbasierte Schnittstelle, über die Benutzer Befehle direkt an das Betriebssystem senden können. Im Gegensatz zur grafischen Oberfläche (GUI) erfolgt die Interaktion ausschließlich über Texteingaben.

Die Shell ist das Programm, das im Terminal läuft und die Befehle interpretiert. Sie übersetzt Ihre Eingaben in Systemaufrufe und zeigt die Ergebnisse an. Bekannte Shells sind Bash (Linux Standard), Zsh (macOS Standard), PowerShell (Windows) und CMD (Windows Legacy).

Warum Terminal statt GUI? Viele Aufgaben sind über die Kommandozeile schneller, automatisierbar (Skripte) und präziser. Server werden fast ausschließlich über SSH/Terminal verwaltet – eine GUI ist dort oft gar nicht vorhanden.

Terminal vs. Konsole – Was ist der Unterschied?

Die Begriffe werden oft synonym verwendet, haben aber feine Unterschiede:

  • Terminal: Das Fenster/Programm, das die Ein- und Ausgabe anzeigt (z.B. GNOME Terminal, Windows Terminal)
  • Konsole: Oft synonym verwendet, bezeichnet aber eigentlich das physische Terminal (Bildschirm + Tastatur)
  • Shell: Das Programm, das im Terminal läuft und Befehle ausführt (z.B. Bash, PowerShell)
  • CLI: Command Line Interface – das textbasierte Interface im Gegensatz zur GUI

2. Die wichtigsten Shells

Jedes Betriebssystem bringt seine eigenen Shells mit. Hier die wichtigsten im Überblick:

Bash

Bourne Again Shell · Linux Standard

Die Standard-Shell der meisten Linux-Distributionen. Seit 1989 im Einsatz und extrem weit verbreitet.

  • Standard auf Linux (Ubuntu, Debian, CentOS)
  • POSIX-kompatibel
  • Riesige Community & Dokumentation
  • Ideal für Shell-Skripte
  • Auch auf macOS und Windows (WSL) verfügbar

Zsh

Z Shell · macOS Standard

Erweiterter Nachfolger der Bash mit vielen modernen Features. Seit macOS Catalina Standard.

  • Standard auf macOS (seit Catalina)
  • Intelligente Auto-Vervollständigung
  • Plugins (Oh My Zsh Framework)
  • Bessere Themes & Prompt
  • Bash-kompatibel (meistens)

PowerShell

Modern · Objektorientiert

Microsofts moderne Shell. Arbeitet mit Objekten statt Text – extrem mächtig für Windows-Automation.

  • Standard auf Windows 10/11
  • Objektorientiert (keine Text-Parsing)
  • Cross-Platform (PowerShell 7+)
  • Ideal für Windows-Administration
  • Azure & Microsoft 365 Integration

CMD

Command Prompt · Windows Legacy

Die klassische Windows-Kommandozeile. Seit DOS-Zeiten, heute durch PowerShell ersetzt.

  • Seit MS-DOS (1980er)
  • Einfache Text-basierte Befehle
  • Begrenzte Funktionalität
  • Nur für Windows
  • Wird durch PowerShell ersetzt

3. Grundlegende Terminal-Befehle

Diese Befehle sollten Sie auswendig kennen – sie werden täglich verwendet.

Dateien & Verzeichnisse

8 Befehle
mkdir
Neues Verzeichnis erstellen (Make Directory)
mkdir projekt
mkdir -p a/b/c (rekursiv)
rmdir
Leeres Verzeichnis löschen
rmdir altes_verzeichnis
touch
Leere Datei erstellen / Zeitstempel aktualisieren
touch neue_datei.txt
cp
Dateien/Verzeichnisse kopieren
cp datei.txt ziel.txt
cp -r ordner/ ziel/ (rekursiv)
mv
Dateien verschieben oder umbenennen
mv alt.txt neu.txt (umbenennen)
mv datei.txt /ziel/ (verschieben)
rm
Dateien löschen (VORSICHT!)
rm datei.txt
rm -r ordner/ (rekursiv)
rm -rf ordner/ (ohne Nachfrage)
cat
Dateiinhalt anzeigen
cat datei.txt
cat a.txt b.txt > zusammen.txt
less / more
Datei seitenweise anzeigen
less große_datei.log
Leertaste = nächste Seite

Systeminformationen

7 Befehle
uname
Systeminformationen anzeigen
uname -a (alle Infos)
uname -r (Kernel-Version)
uptime
System-Laufzeit und Load anzeigen
uptime → 14:23:45 up 5 days, 3:42, 2 users
df
Festplattenspeicher anzeigen
df -h (lesbare Größen)
df -i (Inodes)
free
RAM-Speicher anzeigen
free -h (lesbare Größen)
top / htop
Echtzeit-Systemmonitor
htop (besser als top)
Taste 'q' = beenden
whoami
Aktuellen Benutzer anzeigen
whoami → root
history
Befehlsverlauf anzeigen
history
history \| grep ssh
!123 (Befehl 123 erneut)

Netzwerk-Befehle

7 Befehle
ping
Erreichbarkeit eines Hosts testen
ping google.de
ping -c 4 google.de (4 Pakete)
traceroute / tracert
Route zum Ziel anzeigen
traceroute google.de (Linux)
tracert google.de (Windows)
ip / ifconfig
Netzwerkkonfiguration anzeigen
ip addr (modern)
ifconfig (veraltet)
ip route (Routing-Tabelle)
netstat / ss
Offene Ports und Verbindungen
ss -tulpn (alle Listener)
netstat -an (alle Verbindungen)
nslookup / dig
DNS-Abfragen durchführen
nslookup google.de
dig google.de MX
curl / wget
Daten vom Server herunterladen
curl https://example.com
wget https://example.com/file.zip
ssh
Secure Shell – Remote-Login
ssh user@server
ssh -p 2222 user@server

Berechtigungen

6 Befehle
chmod
Dateiberechtigungen ändern
chmod 755 script.sh
chmod +x script.sh (ausführbar)
chmod u=rw,g=r,o= datei
chown
Besitzer/Gruppe ändern
chown user:datei
chown -R user:gruppe ordner/
sudo
Befehl als Root/Admin ausführen
sudo apt update
sudo systemctl restart nginx
su
Benutzer wechseln
su - (zu root)
su - username (zu User)
id
Benutzer- und Gruppen-IDs anzeigen
id
id username
umask
Standard-Berechtigungen anzeigen/setzen
umask → 0022
umask 027 (strenger)

Prozessmanagement

6 Befehle
ps
Laufende Prozesse anzeigen
ps aux (alle Prozesse)
ps -ef (alternativ)
kill
Prozess beenden
kill 1234 (PID)
kill -9 1234 (force)
killall nginx
jobs
Hintergrundjobs anzeigen
jobs
jobs -l (mit PIDs)
bg / fg
Job in Hintergrund/Vordergrund
bg %1 (Job 1 in Hintergrund)
fg %1 (Job 1 zurück)
nohup
Prozess läuft nach Logout weiter
nohup ./script.sh &
nohup ./script.sh > log.txt &
systemctl
System-Dienste verwalten (Linux)
systemctl status nginx
systemctl restart ssh
systemctl enable apache2

4. Linux vs. Windows – Befehle im Vergleich

Viele Aufgaben lassen sich auf beiden Systemen lösen – nur die Befehle sind unterschiedlich:

Aufgabe Linux / macOS Windows (PowerShell) Windows (CMD)
Verzeichnis anzeigen pwd Get-Location / pwd cd
Verzeichnis wechseln cd /pfad cd \pfad / Set-Location cd \pfad
Dateien auflisten ls -la Get-ChildItem / dir dir
Verzeichnis erstellen mkdir name New-Item -Type Directory mkdir name
Datei kopieren cp quelle ziel Copy-Item / copy copy quelle ziel
Datei verschieben mv quelle ziel Move-Item / move move quelle ziel
Datei löschen rm datei Remove-Item / del del datei
Dateiinhalt anzeigen cat datei Get-Content / type type datei
Text suchen grep "text" datei Select-String findstr "text" datei
Prozesse anzeigen ps aux / top Get-Process tasklist
Prozess beenden kill PID Stop-Process taskkill /PID
Netzwerk-Info ip addr / ifconfig Get-NetIPAddress ipconfig
Erreichbarkeit testen ping host Test-Connection / ping ping host
DNS abfragen dig / nslookup Resolve-DnsName nslookup
Route anzeigen traceroute Test-Connection -Traceroute tracert
System-Info uname -a Get-ComputerInfo systeminfo
Benutzer wechseln su - user runas /user:... runas /user:...
Root/Admin sudo befehl Start-Process -Verb RunAs (als Admin starten)

PowerShell-Tipp

In PowerShell können Sie für fast jedes Cmdlet einen Alias verwenden, der dem Linux-Befehl entspricht:

  • ls = Get-ChildItem
  • cd = Set-Location
  • cp = Copy-Item
  • mv = Move-Item
  • rm = Remove-Item

Mit Get-Alias können Sie alle verfügbaren Aliase anzeigen.

5. Pipes & Redirects – Datenströme verbinden

Mit Pipes und Redirects können Sie die Ausgabe eines Befehls als Eingabe für einen anderen verwenden oder in Dateien umleiten.

Die wichtigsten Operatoren

Pipe (|)

Leitet die Ausgabe eines Befehls als Eingabe an den nächsten Befehl weiter.

ps aux | grep nginx
cat log.txt | grep "ERROR" | wc -l
Erklärung: Zeigt alle laufenden Prozesse, filtert nach "nginx" und zählt die Fehler in einer Log-Datei.
Ausgabe umleiten (>)

Leitet die Ausgabe in eine Datei um (überschreibt bestehende Datei).

ls -la > dateiliste.txt
echo "Hallo" > test.txt
Erklärung: Speichert die Ausgabe von ls in dateiliste.txt. Bestehende Datei wird überschrieben.
Ausgabe anhängen (>>)

Leitet die Ausgabe in eine Datei um (hängt an bestehende Datei an).

echo "Neue Zeile" >> log.txt
date >> protokoll.txt
Erklärung: Fügt eine neue Zeile an log.txt an, ohne den bestehenden Inhalt zu löschen.
Fehler umleiten (2>)

Leitet nur Fehlermeldungen (Standard Error) um.

command 2> errors.txt
command > output.txt 2> errors.txt
Erklärung: Speichert normale Ausgabe in output.txt und Fehler in errors.txt.
Eingabe umleiten (<)

Liest Eingabe aus einer Datei statt von der Tastatur.

sort < unsortiert.txt
mysql -u root < backup.sql
Erklärung: Sortiert die Zeilen einer Datei oder spielt ein SQL-Backup ein.
Standard Output & Error zusammen (2>&1)

Leitet beide Streams (Ausgabe + Fehler) in dieselbe Datei.

command > log.txt 2>&1
command &> log.txt (Bash)
Erklärung: Alles (normale Ausgabe und Fehler) landet in log.txt.

6. Interaktive Befehlsreferenz

Suchen Sie nach einem Befehl oder filtern Sie nach Kategorie und Betriebssystem:

Befehls-Datenbank

Durchsuchen Sie über 40 wichtige Terminal-Befehle. Filtern Sie nach Kategorie oder Betriebssystem, um schnell den richtigen Befehl zu finden.

Alle Navigation Dateien System Netzwerk Berechtigungen Prozesse Nur Linux Nur Windows

7. FAQ – Häufige Fragen & Antworten

Häufige Fragen zu Terminal-Befehlen

Wie öffne ich das Terminal auf verschiedenen Betriebssystemen?

Linux:

  • Tastenkombination: Strg + Alt + T
  • Oder über Anwendungsmenü: "Terminal" suchen

macOS:

  • Spotlight: Cmd + Leertaste → "Terminal" eingeben
  • Oder: Programme → Dienstprogramme → Terminal

Windows:

  • PowerShell: Rechtsklick auf Start → "Windows PowerShell"
  • CMD: Win + R → "cmd" eingeben
  • Windows Terminal (empfohlen): Aus Microsoft Store installieren
Was ist der Unterschied zwischen Bash, Zsh und PowerShell?
  • Bash: Standard auf Linux. Text-basiert, POSIX-kompatibel, riesige Community
  • Zsh: Standard auf macOS. Bash-kompatibel, aber mit mehr Features (Auto-Vervollständigung, Themes, Plugins via Oh My Zsh)
  • PowerShell: Standard auf Windows. Objektorientiert – arbeitet mit .NET-Objekten statt Text. Mächtig für Windows-Automation, aber andere Syntax

Empfehlung: Für Linux/macOS: Bash oder Zsh. Für Windows: PowerShell (nicht CMD!).

Wie finde ich Hilfe zu einem Befehl?

Linux / macOS:

  • man befehl – Handbuchseite anzeigen (z.B. man ls)
  • befehl --help – Kurzhilfe
  • befehl -h – Alternative Kurzhilfe
  • apropos stichwort – Befehle zu einem Thema suchen

Windows PowerShell:

  • Get-Help befehl – Hilfe anzeigen
  • Get-Help befehl -Detailed – Ausführliche Hilfe
  • Get-Help befehl -Examples – Nur Beispiele
  • Get-Command *muster* – Befehle suchen
Was bedeutet "Permission denied" und wie löse ich es?

Die Fehlermeldung "Permission denied" bedeutet, dass Sie keine Berechtigung für die Aktion haben.

Lösungen:

  • sudo verwenden: sudo befehl – Führt Befehl als Root aus
  • Berechtigungen prüfen: ls -l datei – Zeigt aktuelle Berechtigungen
  • Berechtigungen ändern: chmod 755 datei – Gibt mehr Rechte
  • Besitzer ändern: sudo chown user:datei – Ändert Besitzer

Windows: PowerShell als Administrator starten (Rechtsklick → "Als Administrator ausführen").

Wie breche ich einen laufenden Befehl ab?

Strg + C – Bricht den aktuellen Befehl ab (funktioniert fast immer).

Weitere nützliche Tastenkombinationen:

  • Strg + C – Befehl abbrechen (SIGINT)
  • Strg + Z – Befehl pausieren (in Hintergrund)
  • Strg + D – Terminal schließen / EOF senden
  • Strg + L – Bildschirm löschen (wie clear)
  • Tab – Auto-Vervollständigung
  • Pfeil hoch/runter – Durch Befehlsverlauf blättern
Wie erstelle ich ein Shell-Skript?

Schritt 1: Datei erstellen mit Shebang-Zeile:

#!/bin/bash
# Mein erstes Skript
echo "Hallo Welt!"
ls -la

Schritt 2: Skript ausführbar machen:

chmod +x mein_skript.sh

Schritt 3: Skript ausführen:

./mein_skript.sh

Windows PowerShell: Datei mit Endung .ps1 erstellen, Execution Policy anpassen: Set-ExecutionPolicy RemoteSigned

Was ist SSH und wie verwende ich es?

SSH (Secure Shell) ist ein verschlüsseltes Protokoll für Remote-Logins und Befehlsausführung auf anderen Computern.

Grundlegende Verwendung:

ssh user@server
ssh user@server -p 2222 # Anderer Port
ssh -i ~/.ssh/key.pem user@server # Mit Key

SSH-Key erstellen (passwortlos):

ssh-keygen -t ed25519 -C "email@example.com"
ssh-copy-id user@server

Windows: Seit Windows 10 ist SSH nativ integriert. Alternativ PuTTY verwenden.

Wie kann ich das Terminal produktiver nutzen?

1. Auto-Vervollständigung nutzen:

  • Tab – Vervollständigt Befehle, Pfade, Benutzernamen
  • Tab + Tab – Zeigt alle Möglichkeiten

2. Befehlsverlauf:

  • Pfeil hoch/runter – Durch Verlauf blättern
  • Strg + R – Verlauf durchsuchen
  • history – Verlauf anzeigen
  • !123 – Befehl 123 erneut ausführen

3. Aliase definieren:

# In ~/.bashrc oder ~/.zshrc
alias ll='ls -la'
alias gs='git status'
alias update='sudo apt update && sudo apt upgrade'

4. Terminal-Multiplexer: tmux oder screen – Mehrere Sessions in einem Terminal, bleiben nach Logout aktiv.

Zusammenfassung

Die wichtigsten Punkte

  • Terminal: Textbasierte Schnittstelle zum Betriebssystem – schneller und automatisierbarer als GUI
  • Shells: Bash (Linux), Zsh (macOS), PowerShell (Windows), CMD (Windows Legacy)
  • Navigation: pwd, cd, ls, tree
  • Dateien: mkdir, touch, cp, mv, rm, cat
  • System: uname, uptime, df, free, top
  • Netzwerk: ping, traceroute, ip, netstat, ssh
  • Berechtigungen: chmod, chown, sudo, su
  • Prozesse: ps, kill, jobs, systemctl
  • Pipes & Redirects: |, >, >>, 2>, <
  • Linux vs. Windows: Viele Aufgaben ähnlich, aber unterschiedliche Befehle
  • Interaktive Referenz: Über 40 Befehle durchsuchbar nach Kategorie und OS

Tipps für den Einstieg

  • Übung macht den Meister: Öffnen Sie das Terminal und probieren Sie die Befehle aus
  • Hilfe nutzen: man befehl oder befehl --help zeigt Dokumentation
  • Keine Angst vor Fehlern: Die meisten Befehle sind reversibel (außer rm -rf!)
  • Skripte schreiben: Wiederkehrende Aufgaben in Shell-Skripte packen
  • Aliase definieren: Häufige Befehle abkürzen
  • SSH lernen: Remote-Server-Verwaltung ist essenziell

Weiterführende Themen

Linux

Linux im Detail – Distributionen, Paketmanager, Dateisystem und Administration.

Zu Linux
Windows

Windows im Detail – Registry, Dienste, PowerShell und Administration.

Zu Windows
Prozessmanagement

Prozesse, Threads, Scheduling und Ressourcenverwaltung im Detail.

Zu Prozessmanagement
Dateisysteme

NTFS, ext4, APFS – wie Betriebssysteme Daten organisieren.

Zu Dateisystemen