
Terminal Guide
Eine umfassende Übersicht der wichtigsten Terminal-Befehle für macOS und Linux
Die Beherrschung der Terminal-Befehle ist ein wesentlicher Bestandteil der Arbeit mit Unix-basierten Systemen wie macOS und Linux. Dieser Guide bietet einen umfassenden Überblick über die wichtigsten Befehle und deren Anwendung.
1. Basis-Navigation und Dateioperationen
pwd
Zeigt das aktuelle Arbeitsverzeichnis (Pfad zum aktuellen Ordner) an.
pwdcd
Wechselt das Verzeichnis. Erfordert einen Pfad, um dorthin zu navigieren.
cd /pfad/zum/verzeichniscd .. (ein Verzeichnis nach oben)ls
Listet Dateien und Verzeichnisse auf. Unter macOS (BSD-Version) kann -G für Farbausgabe, unter Linux (GNU-Version) --color verwendet werden.
ls -lls -lG (macOS)ls -l --color (Linux)mkdir
Erstellt ein neues Verzeichnis.
mkdir neuer_ordnerrmdir
Löscht ein leeres Verzeichnis.
rmdir leerer_ordnerrm
Löscht Dateien oder Verzeichnisse. Mit -r rekursives Löschen.
rm datei.txtrm -r ordner_namecp
Kopiert Dateien oder Verzeichnisse. Mit -r werden Verzeichnisse rekursiv kopiert.
cp quelle.txt ziel.txtcp -r ordner neuer_ordnermv
Verschiebt oder benennt Dateien/Verzeichnisse um.
mv alter_name.txt neuer_name.txtmv datei.txt /ziel/pfad/touch
Erstellt eine leere Datei oder aktualisiert den Zeitstempel einer bestehenden Datei.
touch neue_datei.txtopen (macOS)
Öffnet eine Datei oder ein Verzeichnis mit der Standardanwendung (nur macOS).
open datei.txtopen .xdg-open (Linux)
Öffnet eine Datei oder ein Verzeichnis mit der Standardanwendung (Linux).
xdg-open datei.txtxdg-open .2. Dateien ansehen und bearbeiten
cat
Zeigt den Inhalt von Dateien an oder verknüpft mehrere Dateien zur Ausgabe.
cat datei.txtless
Zeigt den Inhalt einer Datei in einem scrollbaren Puffer an. Mit 'q' beenden.
less datei.txthead
Zeigt die ersten Zeilen einer Datei an (Standard: 10 Zeilen).
head datei.txthead -n 20 datei.txttail
Zeigt die letzten Zeilen einer Datei an (Standard: 10 Zeilen). Mit -f kann eine Datei ‚live' verfolgt werden.
tail datei.txttail -f /var/log/system.lognano/vi/vim
Terminal-Texteditoren. nano ist einfacher, vi/vim sind mächtiger.
nano datei.txtvim datei.txt3. Suchen und Finden
grep
Durchsucht Text nach Mustern oder regulären Ausdrücken. Mit -r wird rekursiv in Verzeichnissen gesucht.
grep "suchbegriff" datei.txtgrep -r "suchbegriff" /pfadfind
Durchsucht Verzeichnisbäume nach Dateien oder Verzeichnissen (z.B. nach Name).
find / -name "datei.txt"locate
Findet schnell Dateien nach Namen mithilfe einer vorab erzeugten Datenbank (ggf. updatedb erforderlich).
locate dateinamewhich
Zeigt den vollständigen Pfad eines Befehls an.
which ls4. Rechte und Besitz
chmod
Ändert die Zugriffsrechte (Permissions) für Dateien oder Verzeichnisse.
chmod 755 skript.shchmod u+rwx,g+rx,o+rx datei.shchown
Ändert den Besitzer einer Datei oder eines Verzeichnisses.
sudo chown neuer_besitzer datei.txtchgrp
Ändert die Gruppenzugehörigkeit einer Datei oder eines Verzeichnisses.
sudo chgrp neue_gruppe datei.txtsudo
Führt einen Befehl mit Superuser-Rechten (root) aus.
sudo rm -r /geschuetzter/ordner5. Systeminformationen
uname
Zeigt Systeminformationen an. Mit -a werden alle Infos ausgegeben.
uname -awhoami
Zeigt den aktuellen Benutzer an.
whoamiwho
Zeigt an, welche Benutzer aktuell angemeldet sind.
whodate
Zeigt oder setzt Datum und Uhrzeit des Systems.
dateuptime
Zeigt die Laufzeit des Systems, die Anzahl der Benutzer und den Load Average an.
uptimedf
Zeigt den Plattenplatz auf Dateisystemebene an. Mit -h in menschenlesbarem Format.
df -hdu
Gibt geschätzten Speicherplatzverbrauch an. -s für Zusammenfassung, -h für menschenlesbar.
du -sh *free (Linux)
Zeigt freien und belegten Arbeitsspeicher an (auf macOS nicht standardmäßig vorhanden).
free -hvm_stat (macOS)
Zeigt virtuelle Speicherstatistiken unter macOS an.
vm_statsw_vers (macOS)
Gibt Informationen zur macOS-Version aus.
sw_vers6. Prozess- und Job-Verwaltung
ps
Gibt eine Momentaufnahme der aktuellen Prozesse aus. Häufig wird ps aux genutzt.
ps auxtop
Zeigt laufende Prozesse in Echtzeit an (dynamisch aktualisiert).
tophtop (Linux)
Interaktiver Prozess-Viewer mit komfortabler Navigation (nicht immer vorinstalliert).
htopkill
Beendet einen Prozess anhand seiner PID. -9 erzwingt das Beenden.
kill 12345kill -9 12345killall
Beendet alle Prozesse mit einem bestimmten Namen (funktioniert unter Linux und macOS).
killall chromejobs
Listet Hintergrundprozesse (Jobs) in der aktuellen Shell auf.
jobsfg / bg
Bringt einen Prozess in den Vordergrund (fg) oder schickt ihn in den Hintergrund (bg).
fg %1bg %17. Netzwerk
ping
Sendet ICMP-ECHO_REQUESTs an einen Host, um die Netzwerk-Erreichbarkeit zu testen.
ping google.comifconfig (macOS, älteres Linux)
Konfiguriert oder zeigt Netzwerkinterfaces an. Auf neueren Linux-Versionen wird oft 'ip' verwendet.
ifconfigifconfig eth0 upip (Linux)
Zeigt oder konfiguriert Netzwerkrouten, Devices und Tunnel (moderner Ersatz für ifconfig).
ip addr showip link set eth0 upcurl
Überträgt Daten zu oder von einem Server mittels verschiedener Protokolle (HTTP, FTP, etc.).
curl https://beispiel.dewget (Linux)
Lädt Dateien aus dem Internet herunter (HTTP, HTTPS, FTP).
wget https://beispiel.de/datei.zipscp
Kopiert Dateien sicher über SSH zwischen lokalem und entferntem Rechner.
scp datei.txt benutzer@remote_host:/pfad/zielscp benutzer@remote_host:/pfad/datei.txt ./lokaler_ordnerssh
Sichere Remote-Shell-Verbindung zu einem anderen Rechner.
ssh benutzer@remote_hostnetstat / ss
Zeigt Netzwerkverbindungen, Routing-Tabellen und Interface-Statistiken an.
netstat -tulnss -tuln8. Archivierung und Kompression
tar
Erstellt oder entpackt Tar-Archive. Oft in Kombination mit Kompression (gzip oder bzip2).
tar -czvf archiv.tar.gz ordnertar -xzvf archiv.tar.gzzip / unzip
Erstellt oder entpackt ZIP-Archive.
zip archiv.zip datei1 datei2unzip archiv.zipgzip / gunzip
Komprimiert oder entpackt Dateien mittels gzip.
gzip datei.txtgunzip datei.txt.gz9. Paketverwaltung
Verschiedene Linux-Distributionen verwenden unterschiedliche Paketmanager (apt, yum, dnf, pacman, zypper). Auf macOS wird häufig Homebrew als Drittanbieter-Manager genutzt.
apt (Debian/Ubuntu)
Installiert, aktualisiert und entfernt Pakete auf Debian/Ubuntu-Systemen.
sudo apt updatesudo apt upgradesudo apt install <paketname>sudo apt remove <paketname>yum / dnf (RHEL, CentOS, Fedora)
Paketverwaltung für RPM-basierte Distributionen.
sudo yum updatesudo yum install <paketname>pacman (Arch Linux)
Paketverwaltung für Arch Linux und Ableger.
sudo pacman -Syusudo pacman -S <paketname>brew (macOS)
Homebrew-Paketmanager für macOS.
brew updatebrew upgradebrew install <formula>brew uninstall <formula>10. Umleitung und Pipes
>
Leitet die Standardausgabe in eine Datei um (überschreibt bestehende Inhalte).
echo "Hallo" > datei.txt>>
Leitet die Standardausgabe in eine Datei um (hängt an bestehende Inhalte an).
echo "Welt" >> datei.txt2>
Leitet die Standardfehlerausgabe in eine Datei um.
grep "suchbegriff" datei.txt 2> fehler.log| (pipe)
Verknüpft die Ausgabe eines Befehls mit der Eingabe eines anderen Befehls.
ls -l | grep ".txt"&>
Leitet Standardausgabe und Standardfehler gleichzeitig in eine Datei um (bash/zsh).
befehl &> ausgabe.log11. Verschiedene nützliche Befehle
alias
Erstellt einen Alias für einen Befehl.
alias ll='ls -alF'history
Zeigt oder bearbeitet die Befehls-Historie.
historyclear
Löscht den Inhalt des Terminals (Bildschirm).
clearenv
Zeigt Umgebungsvariablen an.
envexport
Setzt eine Umgebungsvariable (z.B. in bash/zsh).
export PATH="/usr/local/bin:$PATH"echo
Gibt einen String oder Variablen aus.
echo $SHELLtype
Zeigt an, wie ein Befehlsname interpretiert wird (Alias, Shell Builtin, Pfad zur Datei).
type lswc
Zählt Wörter, Zeilen, Zeichen oder Bytes einer Datei oder Eingabe.
wc -l datei.txtman
Zeigt die Manpage (Handbuch) für einen Befehl an.
man lsapropos
Durchsucht Manpages nach einem Schlüsselwort.
apropos netzwerkcal
Zeigt einen Kalender im Terminal an.
calcal 2025xargs
Erstellt und führt Befehlszeilen basierend auf der Standardeingabe aus.
cat liste.txt | xargs rmHinweise
macOS verwendet meist BSD-Varianten der Befehle, während Linux typischerweise GNU-Varianten nutzt. Einige Flags können sich unterscheiden.
Neuere macOS-Versionen verwenden standardmäßig zsh, während viele Linux-Distributionen bash als Standard-Shell einsetzen.
Im Zweifelsfall konsultieren Sie 'man <befehl>' oder die Online-Dokumentation für zusätzliche Flags und Verwendungshinweise.