Auf Linux-Servern ist die Shell das primäre Werkzeug. Ein guter Linux-Administrator kennt die wichtigsten Befehle auswendig. Dieser Artikel gibt einen strukturierten Überblick über die täglich genutzten Kommandos.
# Aktuelles Verzeichnis anzeigen
pwd
# Verzeichniswechsel
cd /etc
cd ~ # Heimverzeichnis
cd .. # Verzeichnis höher
cd - # Letztes Verzeichnis
# Verzeichnisinhalt anzeigen
ls # einfach
ls -l # Langformat (Rechte, Besitzer, Größe)
ls -la # wie -l, auch versteckte Dateien (. am Anfang)
ls -lh # wie -l, Größen menschenlesbar (KB, MB)
# Verzeichnis erstellen
mkdir neuer-ordner
mkdir -p pfad/zu/neuer/ordner # mit allen übergeordneten Ordnern
# Dateien kopieren
cp quelle.txt ziel.txt
cp -r quellordner/ zielordner/ # Verzeichnis rekursiv kopieren
# Dateien verschieben / umbenennen
mv alte-datei.txt neue-datei.txt
mv datei.txt /tmp/
# Dateien löschen
rm datei.txt
rm -r verzeichnis/ # Verzeichnis rekursiv löschen
rm -rf verzeichnis/ # erzwungen (kein Nachfragen) – Vorsicht!
# Symbolischen Link erstellen
ln -s /pfad/zur/datei linkname# Ganze Datei ausgeben
cat /etc/hostname
# Seitenweise anzeigen
less /var/log/syslog
# Steuerung: q = beenden, / = suchen, n = nächstes Ergebnis
# Ersten/letzten Zeilen anzeigen
head -n 20 logdatei.log # erste 20 Zeilen
tail -n 50 logdatei.log # letzte 50 Zeilen
tail -f /var/log/syslog # live mitlesen (follow)
# Datei suchen
find / -name "sshd_config"
find /home -user username -name "*.txt"
find /var/log -mtime -1 # geändert in den letzten 24h
# In Dateien suchen
grep "error" /var/log/syslog
grep -r "passwort" /etc/ # rekursiv
grep -i "ERROR" logdatei.log # Groß/Klein ignorieren
grep -n "sshd" /var/log/auth.log # mit ZeilennummerDas Pipe-Zeichen | leitet die Ausgabe eines Befehls als Eingabe an den nächsten weiter – das ist das Herzstück der Unix-Philosophie:
# Ausgabe filtern
ps aux | grep apache
cat /etc/passwd | grep bash | wc -l
# Ausgabe in Datei umleiten
echo "Hallo" > datei.txt # überschreiben
echo "Hallo" >> datei.txt # anhängen
ls -la > verzeichnis.txt
# Fehlerausgabe umleiten
befehl 2> fehler.txt # nur Fehler
befehl > ausgabe.txt 2>&1 # alles in eine Datei
befehl 2>/dev/null # Fehler unterdrücken# Zeilen zählen
wc -l datei.txt
# Sortieren
sort datei.txt
sort -n zahlen.txt # numerisch sortieren
sort -r datei.txt # umgekehrt
# Doppelte Zeilen entfernen
sort datei.txt | uniq
# Spalten extrahieren
cut -d: -f1 /etc/passwd # erstes Feld (Trennzeichen :)
# Text ersetzen
sed 's/alt/neu/g' datei.txt
sed -i 's/alt/neu/g' datei.txt # in-place (Datei ändern)
# Mächtiges Text-Tool
awk '{print $1}' datei.txt # erste Spalte ausgeben
awk -F: '{print $1,$3}' /etc/passwd # Name und UID# Systeminformationen
uname -a # Kernel und Architektur
hostname # Hostname
uptime # Laufzeit und Auslastung
date # Datum und Uhrzeit
# Speicherverbrauch
free -h # RAM-Nutzung menschenlesbar
df -h # Festplattenbelegung
# CPU-Informationen
lscpu
nproc # Anzahl CPU-Kerne
# Hardware-Informationen
lshw -short # Hardware-Übersicht
lsblk # Blockgeräte (Festplatten, Partitionen)
lsusb # USB-Geräte
lspci # PCI-Geräte# Befehlshistorie
history
history | grep ssh # in History suchen
!! # letzten Befehl wiederholen
!ssh # letzten Befehl der mit ssh begann
# Tastenkürzel in der Shell
Strg+C # Prozess abbrechen
Strg+Z # Prozess pausieren (in Hintergrund)
Strg+L # Terminal löschen (wie clear)
Strg+R # Rückwärtssuche in History
Tab # Autovervollständigung
# Mehrere Befehle
befehl1 ; befehl2 # nacheinander (unabhängig)
befehl1 && befehl2 # zweiter nur wenn erster erfolgreich
befehl1 || befehl2 # zweiter nur wenn erster fehlschlägt# Variable setzen
NAME="Max"
echo $NAME
# Umgebungsvariable setzen (für Kindprozesse sichtbar)
export DATABASE_URL="postgresql://localhost/db"
# Wichtige Umgebungsvariablen
echo $PATH # Suchpfad für ausführbare Programme
echo $HOME # Heimverzeichnis
echo $USER # Aktueller Benutzername
echo $SHELL # Aktuelle Shell
echo $? # Rückgabewert des letzten Befehls (0 = Erfolg)Befehl | Aufgabe |
|---|---|
ls, cd, pwd | Navigation |
cp, mv, rm, mkdir | Dateiverwaltung |
cat, less, head, tail | Dateiinhalt anzeigen |
grep, find | Suchen |
| , >, >> | Pipes und Umleitungen |
Berechtigungen | |
df, free, uname | Systeminformationen |
sed, awk, cut, sort | Textverarbeitung |