Allgemein
arch — CPU-Architektur
uname — Kernel & Systeminfos · -a alles · -r Kernel-Version
lscpu — Detaillierte CPU-Infos
clear — Terminal leeren · auch Ctrl+L
sudo — Als root ausführen · sudo -i root-Shell
history — Befehlsverlauf · !! letzten · !231 Nr. 231 wiederholen
ps — Prozesse anzeigen · -e alle · -f ausführlich · ps aux Standard
pstree -p — Prozesse als Baumstruktur mit PIDs
kill -9 <PID> — Prozess beenden · -9 erzwingen · -15 sauber (Standard)
killall firefox — Alle Prozesse mit diesem Namen beenden
htop — Interaktiver Prozess-Monitor
wget — Datei herunterladen · -O Name · -q leise · -c fortsetzen
wget -O datei.zip URLcurl — Daten von/zu URL · -L Redirects · -O speichern · -I nur Header
curl -LO URLrfkill — Funkschnittstellen ein-/ausschalten
rfkill list
rfkill block wifi # auch: bluetooth, all
rfkill unblock alltar — Entpacken eines tar-Archivs ·
-x entpacken
-z gzip
-f Datei
-C` Zielverzeichnis
tar -xzf datei.tar.gz # Entpacken im aktuellen Verzeichnis
tar -xzf datei.tar.gz -C /pfad/ziel # Entpacken in ein bestimmtes Verzeichnis
tar -tzf datei.tar.gz # Inhalt des Archivs anzeigen (ohne zu entpacken)
tar -czf archiv.tar.gz verzeichnis/ # Archiv erstellen (komprimiert)Speicher & Ressourcen
free -h — RAM-Nutzung
top — Systemauslastung live (interaktiv)
df -h — Belegter Speicher der Dateisysteme
du — Speicherbedarf von Dateien/Ordnern · -h lesbar · -s Summe · --max-depth=1
du -sh * # Größe aller Elemente im aktuellen Verzeichnislsblk — Blockgeräte (Festplatten, Partitionen)
Netzwerk
ip — Netzwerk-Konfiguration (modern)
ip a # alle Interfaces & IPs
ip link # Interface-Status
ip route # Routing-Tabelleifconfig — Netzwerkinterfaces anzeigen (veraltet, aber noch verbreitet)
ping -c 4 8.8.8.8 — Erreichbarkeit testen · -c Anzahl Pakete
ss — Offene Sockets (modernes netstat) · -t TCP · -u UDP · -l lauschend · -n numerisch
ss -tlnpssh user@host — Sicherer Remote-Login · -p Port · -i Schlüsseldatei
Variablen & Umgebung
name="Linux" # Variable setzen – kein Leerzeichen um = !
echo $name
echo "Hallo $name" # In Strings: doppelte Anführungszeichen verwenden
export name # Für Subprozesse verfügbar machen
unset name # Variable löschen
env # Alle Umgebungsvariablen anzeigenWichtige Systemvariablen:
$HOME·$PATH·$USER·$SHELL·$PWD
Befehle untersuchen
type ls — Art eines Befehls (Alias, Builtin, Binary)
which python3 — Pfad zur ausführbaren Datei
whereis bash — Binär-, Source- und Manpage-Pfade
alias ll='ls -la' — Eigene Kurzbefehle definieren / anzeigen
locate passwd — Datei suchen (Datenbank-basiert) · -i case-insensitive
sudo updatedb — Datenbank für locate aktualisieren
man ls — Handbuch-Seite · -f Kurzbeschreibung
info bash — Ausführliche GNU-Dokumentation
ls --help — Kurzreferenz
man-Navigation: Suche/Suchwort· weitern· zurückN· beendenq
Verknüpfungen & Umleitungen
cmd1 ; cmd2 # Nacheinander ausführen (unabhängig voneinander)
cmd1 && cmd2 # cmd2 nur bei Erfolg von cmd1 (Exit-Code 0)
cmd1 || cmd2 # cmd2 nur bei Fehler von cmd1
cmd1 | cmd2 # Pipe: Ausgabe von cmd1 als Eingabe für cmd2
cmd > datei # Stdout in Datei schreiben (überschreiben)
cmd >> datei # Stdout in Datei schreiben (anhängen)
cmd < datei # Datei als Eingabe verwenden
cmd 2> datei # Stderr umleiten
cmd &> datei # Stdout + Stderr zusammen umleitenNavigation
pwd — Aktuelles Verzeichnis anzeigen
cd ~/Dokumente — Verzeichnis wechseln · .. hoch · ~ Home · - vorheriges
ls -lah — Verzeichnisinhalt · -l Berechtigungen · -a versteckt · -h Größen · -R rekursiv
Dateien (CRUD)
touch datei.txt — Datei erstellen / Zeitstempel aktualisieren
mkdir -p a/b/c — Verzeichnis erstellen · -p Elternordner mit anlegen
cp -r quelle/ ziel/ — Kopieren · -i Nachfragen bei Überschreiben
mv alt.txt neu.txt — Verschieben / Umbenennen · -i Nachfragen
rm -rf ordner/ — Löschen · -r rekursiv · -f erzwingen
ln -s /pfad/ziel linkname — Symlink erstellen
cat datei.txt — Inhalt anzeigen / Dateien verketten · -n Zeilennummern
head -n 5 datei.txt — Erste n Zeilen
tail -n 5 datei.txt — Letzte n Zeilen · -f live mitverfolgen (z.B. Logs)
nano datei.txt — Einfacher Texteditor
wc -l datei.txt — Zeilen zählen · -w Wörter · -c Bytes
sort -n zahlen.txt — Sortieren · -r umgekehrt · -n numerisch
grep — Text nach Muster durchsuchen · -i case · -r rekursiv · -n Zeilennr.
grep -rn "fehler" logs/
grep -i "error" datei.log | tail -20 # kombinierbar mit Pipescut — Felder aus Text ausschneiden · -d Trenner · -f Feld
cut -d ':' -f 1 /etc/passwd # erste Spalte = Benutzernamenfind — Dateien suchen (live, ohne Datenbank) · -name · -type f/d · -size
find /home -name "*.log"
find . -type f -name "*.sh" -size +1kBenutzerverwaltung
whoami — Aktuellen Benutzernamen anzeigen
id — UID, GID und Gruppen · id username
adduser max — Benutzer anlegen (interaktiv)
deluser max — Benutzer löschen · --remove-home mit Home-Verzeichnis
usermod -aG sudo max — Zu Gruppe hinzufügen · -l für neuen Namen
passwd max — Passwort setzen · echo "max:pw" | sudo chpasswd nicht-interaktiv
addgroup entwickler — Gruppe anlegen
delgroup entwickler — Gruppe löschen
umask 022 — Standard-Berechtigungen für neue Dateien
Berechtigungen
chmod 755 skript.sh — Berechtigungen ändern · +x ausführbar machen
chown user:gruppe datei — Besitzer ändern · -R rekursiv
chgrp gruppe datei — Gruppe ändern · -R rekursiv
Skripting (Bash)
Kopf
#!/bin/bash # Shebang – immer die erste ZeileVariablen
name="Welt" # kein Leerzeichen um =
echo "Hallo $name"
zahl=$((3 + 4)) # ArithmetikVerzweigung
if [ "$a" -eq 1 ]; then
echo "a ist 1"
elif [ "$a" -gt 1 ]; then
echo "a größer als 1"
else
echo "a ist kleiner"
fiFor-Schleife
for i in 1 2 3; do
echo "Nr. $i"
done
for datei in *.txt; do # über Dateien iterieren
echo "$datei"
doneWhile-Schleife
i=0
while [ "$i" -lt 5 ]; do
echo "$i"
((i++))
doneFunktionen
greet() {
echo "Hallo $1" # $1 = erstes Argument
}
greet "Max"Vergleiche (Zahlen):
-eq= ·-ne≠ ·-lt< ·-gt> ·-le≤ ·-ge≥ Vergleiche (Strings):=·!=·-zleer ·-nnicht leer Dateien/Verzeichnisse:-fDatei existiert ·-dVerzeichnis ·-ebeides