Linux Command Line-Grundlagen, die jeder Entwickler kennen sollte
Eine praktische Referenz für Linux-Befehle, die täglich in der Entwicklung eingesetzt werden – Dateisystemnavigation, Berechtigungen, Prozessverwaltung, Textverarbeitung und Netzwerk.
Die Linux-Kommandozeile ist die universelle Schnittstelle für Server, Container, CI-Pipelines und Entwicklungsumgebungen. Ob man um 2 Uhr morgens per SSH auf einem Produktionsserver arbeitet oder einen Docker-Container debuggt – Sicherheit im Umgang mit diesen Befehlen ist der Unterschied zwischen Verwirrung und Souveränität.
Navigation und Dateiverwaltung
# Verzeichnisse navigieren
pwd # aktuelles Verzeichnis anzeigen
cd /var/log # absoluter Pfad
cd .. # eine Ebene nach oben
cd - # zum vorherigen Verzeichnis zurück
cd ~ # Home-Verzeichnis
# Dateien auflisten
ls # einfache Auflistung
ls -la # Langformat + versteckte Dateien
ls -lh # menschenlesbare Dateigrößen
ls -lt # nach Änderungszeit sortieren (neueste zuerst)
# Erstellen, kopieren, verschieben, löschen
mkdir -p path/to/dir # Verzeichnis + übergeordnete erstellen
cp -r source/ dest/ # rekursiv kopieren
mv oldname newname # umbenennen oder verschieben
rm -rf directory/ # Verzeichnis und Inhalt löschen (unwiderruflich!)
touch file.txt # leere Datei erstellen / Zeitstempel aktualisieren
# Dateien anzeigen und navigieren
cat file.txt # gesamte Datei ausgeben
less file.txt # seitenweiser Viewer (q zum Beenden, / zum Suchen)
head -n 20 file.txt # erste 20 Zeilen
tail -n 20 file.txt # letzte 20 Zeilen
tail -f /var/log/app.log # Log in Echtzeit verfolgen
Dateiberechtigungen
Linux-Berechtigungen werden als drei Sätze von Lese-/Schreib-/Ausführungs-Bits für Eigentümer, Gruppe und andere ausgedrückt:
-rwxr-xr-- 1 alice devs 4096 Apr 8 10:00 script.sh
Den Berechtigungsstring lesen: -rwxr-xr--
-— Dateityp (d = Verzeichnis, l = Symlink)rwx— Eigentümer: lesen, schreiben, ausführenr-x— Gruppe: lesen, ausführen (kein Schreiben)r--— andere: nur lesen
chmod — Berechtigungen ändern
# Symbolische Schreibweise
chmod u+x script.sh # Ausführen für Eigentümer hinzufügen
chmod g-w file.txt # Schreiben für Gruppe entfernen
chmod o=r file.txt # andere auf nur lesen setzen
chmod a+r file.txt # Lesen für alle hinzufügen (a = all)
# Numerische (Oktal-)Schreibweise
chmod 755 script.sh # rwxr-xr-x (üblich für ausführbare Dateien)
chmod 644 file.txt # rw-r--r-- (üblich für Dateien)
chmod 600 ~/.ssh/id_rsa # rw------- (erforderlich für SSH-Schlüssel)
chmod 700 ~/.ssh/ # rwx------ (erforderlich für .ssh-Verzeichnis)
Nutze unseren Chmod Calculator, um Berechtigungsstrings visuell zu erstellen und zu verstehen, was jeder Oktalwert bedeutet.
Suchen und Textverarbeitung
# Dateien suchen
find /var/log -name "*.log" # nach Name suchen
find . -name "*.ts" -newer package.json # Dateien neuer als package.json
find . -type f -size +10M # Dateien über 10 MB
find . -name "node_modules" -prune # Verzeichnisse ausschließen
# Dateiinhalte durchsuchen
grep "error" app.log # in Datei suchen
grep -r "TODO" ./src # rekursive Suche
grep -i "error" app.log # Groß-/Kleinschreibung ignorieren
grep -n "error" app.log # Zeilennummern anzeigen
grep -v "DEBUG" app.log # Zeilen OHNE Übereinstimmung
grep -E "error|warning" app.log # Regex: error ODER warning
# Stream-Textverarbeitung
cat access.log | grep "404" | wc -l # 404-Fehler zählen
cat data.csv | cut -d',' -f1,3 # Spalten 1 und 3 extrahieren
cat file.txt | sort | uniq # sortieren und deduplizieren
cat file.txt | sort | uniq -c | sort -rn # Vorkommen zählen, nach Häufigkeit sortieren
awk — feldbasierte Verarbeitung
# Bestimmte Felder ausgeben (standardmäßig tabulator-getrennt)
awk '{print $1, $3}' file.txt
# CSV verarbeiten (kommagetrennt)
awk -F',' '{print $2}' data.csv
# Eine Spalte summieren
awk -F',' '{sum += $3} END {print sum}' data.csv
# Zeilen ausgeben, die einem Muster entsprechen
awk '/ERROR/ {print $0}' app.log
sed — Stream-Editor
# Text ersetzen
sed 's/foo/bar/' file.txt # erstes Vorkommen pro Zeile ersetzen
sed 's/foo/bar/g' file.txt # alle Vorkommen ersetzen (global)
sed -i 's/foo/bar/g' file.txt # direkt in der Datei bearbeiten (ändert die Datei)
# Zeilen löschen
sed '/^#/d' file.txt # Kommentarzeilen löschen
sed '5,10d' file.txt # Zeilen 5–10 löschen
# Bestimmte Zeilen ausgeben
sed -n '10,20p' file.txt # Zeilen 10–20 ausgeben
Prozessverwaltung
# Laufende Prozesse anzeigen
ps aux # alle Prozesse mit Details
ps aux | grep nginx # nginx-Prozesse finden
top # interaktiver Prozess-Viewer
htop # verbesserter interaktiver Viewer (falls installiert)
# Prozesssteuerung
kill PID # SIGTERM senden (geordnetes Beenden)
kill -9 PID # SIGKILL senden (erzwungenes Beenden)
pkill nginx # nach Name beenden
killall node # alle übereinstimmenden Prozesse beenden
# Hintergrundjobs
command & # im Hintergrund ausführen
jobs # Hintergrundjobs auflisten
fg %1 # Job 1 in den Vordergrund bringen
nohup command & # immun gegen Hangup ausführen (überlebt Abmeldung)
# Systemressourcen
free -h # Speichernutzung
df -h # Festplattenspeichernutzung
du -sh /var/log/ # Verzeichnisgröße
lsof -i :3000 # was verwendet Port 3000
Netzwerkbefehle
# Konnektivität
ping google.com # Verbindung testen
curl -I https://example.com # nur HTTP-Header
curl -o file.zip https://example.com/file.zip # Datei herunterladen
wget https://example.com/file.zip # alternativer Downloader
# Verbindungen prüfen
ss -tulpn # lauschende Ports und Prozesse
netstat -tulpn # Alternative (ältere Systeme)
lsof -i :80 # was läuft auf Port 80
# DNS
dig example.com # DNS-Abfrage
dig example.com MX # MX-Einträge
host example.com # einfache DNS-Abfrage
nslookup example.com # interaktive DNS-Abfrage
SSH und Remote-Zugriff
# Mit einem Server verbinden
ssh user@server.com
ssh -p 2222 user@server.com # nicht standardmäßiger Port
ssh -i ~/.ssh/id_rsa user@server.com # bestimmter Schlüssel
# Dateien kopieren
scp file.txt user@server.com:~/ # ins Remote-Home-Verzeichnis kopieren
scp user@server.com:~/file.txt . # vom Remote kopieren
scp -r ./dist user@server.com:~/app/ # rekursiv kopieren
# SSH-Tunneling (Port-Weiterleitung)
ssh -L 5432:localhost:5432 user@server.com # Remote-DB auf lokalen Port tunneln
Generiere SSH-Schlüsselpaare für sichere Authentifizierung mit unserem SSH Key Generator.
Umgebung und Shell
# Umgebungsvariablen
export API_KEY=abc123 # für aktuelle Sitzung und Kindprozesse setzen
echo $API_KEY # Variable ausgeben
env # alle Umgebungsvariablen auflisten
printenv PATH # bestimmte Variable ausgeben
unset API_KEY # Variable entfernen
# Shell-Verlauf
history # vorherige Befehle auflisten
!! # letzten Befehl wiederholen
!grep # letzten grep-Befehl wiederholen
Ctrl+R # Verlauf rückwärts durchsuchen (tippen zum Suchen)
# Nützliche Shortcuts
Ctrl+C # aktuellen Prozess unterbrechen
Ctrl+Z # in den Hintergrund suspendieren
Ctrl+L # Bildschirm leeren (wie clear)
Ctrl+A # zum Zeilenanfang springen
Ctrl+E # zum Zeilenende springen
Ctrl+U # Zeile vor dem Cursor löschen
Pipes und Umleitung
# Pipes — Befehle verketten
ls -la | grep ".log" | wc -l
# Ausgabe umleiten
command > file.txt # Datei mit stdout überschreiben
command >> file.txt # stdout an Datei anhängen
command 2> errors.txt # stderr umleiten
command > all.txt 2>&1 # stdout + stderr in dieselbe Datei umleiten
command &> all.txt # Kurzform für das Obige
# /dev/null — Ausgabe verwerfen
command > /dev/null 2>&1 # alle Ausgaben verwerfen (lautlos ausführen)
Nützliche Einzeiler für Entwickler
# In allen Dateien eines Verzeichnisses suchen und ersetzen
find . -name "*.tsx" | xargs sed -i 's/OldComponent/NewComponent/g'
# Öffentliche IP abrufen
curl -s ifconfig.me
# Datei auf Änderungen überwachen
watch -n 2 "ls -la uploads/"
# Verzeichnis komprimieren
tar -czf archive.tar.gz ./directory/
# Eine tar.gz entpacken
tar -xzf archive.tar.gz
# Die 10 größten Dateien im aktuellen Verzeichnis anzeigen
du -sh * | sort -rh | head -10
# Codezeilen nach Dateityp zählen
find . -name "*.ts" | xargs wc -l | sort -rn | head -20
Die Kommandozeile belohnt Investitionen. Jeder Befehl, den man lernt, wird zum Baustein für noch mächtigere Kombinationen. Fange mit Navigation und grep an, füge dann Pipes hinzu, dann awk – und du wirst jede Textverarbeitungsaufgabe bewältigen, die auf dich zukommt.