Die 30 wichtigsten Linux-Befehle — Grundlegende Kommandos für den Alltag

Einsteiger Grundlagen Veröffentlicht am 20. März 2026 (Aktualisiert: 5. April 2026) von Gunter Herdrich

Du kennst die Kommandozeile vielleicht noch nicht — oder du hast schon ein paar Befehle ausprobiert und möchtest jetzt systematisch die wichtigsten kennenlernen. Diese Übersicht zeigt dir 30 Linux-Befehle, die du im Alltag wirklich brauchst: geordnet nach Aufgabe, mit konkreten Beispielen und dem erwarteten Terminal-Output. Code-Blöcke kannst du direkt abtippen und ausprobieren.

Tipp: Wenn du noch nie in einem Terminal gearbeitet hast, lies zuerst den Artikel Die Shell für Neulinge — dort erfährst du, wie du ein Terminal öffnest, was der Prompt bedeutet und wie du dich mit grundlegenden Tastaturkürzeln bewegst.

Dateien anzeigen und durchsuchen

Diese neun Befehle sind deine täglichen Werkzeuge: Verzeichnisse auflisten, Dateiinhalte lesen, nach Text oder Dateien suchen. Du wirst sie ständig brauchen — in dieser Gruppe steckt gut die Hälfte deines Terminal-Alltags.

ls — Verzeichnisinhalt auflisten

ls zeigt den Inhalt eines Ordners. Die Option -l liefert Details wie Berechtigungen, Besitzer, Dateigröße und Änderungsdatum. Mit -a siehst du auch versteckte Dateien — also alle Dateien, deren Name mit einem Punkt beginnt wie .bashrc oder .profile. Die Kombination -la nutzt du am häufigsten.

ls -la /home/gunter
total 48
drwxr-xr-x  6 gunter gunter 4096 Apr  5 11:20 .
drwxr-xr-x  3 root   root   4096 Mär 20 09:00 ..
-rw-------  1 gunter gunter  220 Mär 20 09:00 .bash_logout
-rw-r--r--  1 gunter gunter 3526 Mär 20 09:00 .bashrc
drwxr-xr-x  2 gunter gunter 4096 Apr  3 14:10 Dokumente
drwxr-xr-x  3 gunter gunter 4096 Apr  2 09:15 Downloads

cat — Dateiinhalt ausgeben

cat gibt den gesamten Inhalt einer Datei direkt im Terminal aus. Das ist praktisch für kurze Konfigurationsdateien oder Skripte. Bei langen Dateien scrollt der Text einfach durch — dort ist less die bessere Wahl. Mit cat -n werden Zeilennummern angezeigt, was beim Debuggen von Skripten hilft.

cat /etc/hostname
mein-laptop

cat -n mein_skript.sh
     1	#!/bin/bash
     2	# Simples Backup-Skript
     3	echo "Backup startet..."

less — Dateien seitenweise lesen

less öffnet eine Datei in einem scrollbaren Pager — du kannst mit den Pfeiltasten oder Page Up/Down navigieren. Ich benutze less für alles über 30 Zeilen. cat auf eine 500-Zeilen-Config ist Zeitverschwendung — die Ausgabe rauscht durch und du siehst nur das Ende. Mit /suchbegriff suchst du vorwärts, mit ?suchbegriff rückwärts. n springt zum nächsten Treffer, q beendet less. Besonders nützlich für lange Log-Dateien oder Man-Pages.

less /var/log/syslog
less /etc/ssh/sshd_config

head und tail — Anfang und Ende einer Datei

head gibt standardmäßig die ersten 10 Zeilen aus, tail die letzten 10. Mit -n passt du die Anzahl an. Die mächtigste Variante ist tail -f: Sie folgt der Datei in Echtzeit und gibt neue Zeilen aus, sobald sie erscheinen. Ich habe tail -f /var/log/syslog vermutlich öfter getippt als jeden anderen Befehl. Wer Probleme diagnostiziert und nicht live mitliest, stochert im Nebel.

head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

tail -f /var/log/syslog
Apr  5 11:20:01 mein-laptop kernel: [12345.678] usb: new device connected

wc — Zeilen, Wörter und Zeichen zählen

wc (word count) zählt Zeilen (-l), Wörter (-w) und Bytes (-c) in einer Datei. Ohne Optionen gibt es alle drei Werte auf einmal aus. Das ist praktisch, wenn du zum Beispiel wissen willst, wie viele Benutzer in /etc/passwd definiert sind oder wie groß eine Textdatei ist.

wc -l /etc/passwd
45 /etc/passwd

wc /etc/passwd
  45  105 2648 /etc/passwd

file — Dateityp erkennen

file analysiert den tatsächlichen Inhalt einer Datei und sagt dir, was sie ist — unabhängig von der Dateiendung. Das ist nützlich, wenn du eine Datei ohne Endung vorfindest oder sicherstellen willst, dass ein Download vollständig und nicht beschädigt ist.

file foto.jpg skript.sh bild.png unbekannt
foto.jpg:   JPEG image data, JFIF standard 1.01
skript.sh:  Bourne-Again shell script, ASCII text executable
bild.png:   PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced
unbekannt:  gzip compressed data, from Unix

find — Dateien suchen

find durchsucht Verzeichnisbäume nach Dateien und Ordnern. Du kannst nach Name (-name), Typ (-type f für Dateien, -type d für Verzeichnisse), Größe (-size +10M) oder Änderungsdatum (-mtime -7 für die letzten 7 Tage) filtern. Groß-/Kleinschreibung ignorierst du mit -iname.

find /home/gunter -name "*.pdf" -type f
/home/gunter/Dokumente/rechnung_2025.pdf
/home/gunter/Downloads/handbuch.pdf

find /tmp -size +10M -mtime -1
/tmp/firefox_cache_123456
/tmp/update_download.tmp

grep — Text in Dateien suchen

grep durchsucht Dateien nach einem Muster und gibt passende Zeilen aus. Mit -r suchst du rekursiv in Unterordnern, mit -i ohne Rücksicht auf Groß-/Kleinschreibung, mit -n mit Zeilennummer und mit -l nur die Dateinamen. grep versteht reguläre Ausdrücke, was es zu einem der mächtigsten Suchwerkzeuge macht. Ehrlich: grep ist der Befehl, den ich am häufigsten tippe. Kein Tag ohne grep -r in irgendeinem Verzeichnis.

grep -rn "TODO" /home/gunter/projekte/
/home/gunter/projekte/skript.sh:12:# TODO: Fehlerbehandlung ergänzen
/home/gunter/projekte/notizen.txt:5:TODO: Backup-Script testen

grep -i "error" /var/log/syslog | tail -5
Apr  5 10:15:32 mein-laptop kernel: [1234.5] usb 1-1: device not responding
Tipp: grep -v muster kehrt die Suche um — es werden alle Zeilen ausgegeben, die das Muster nicht enthalten. Nützlich, um Kommentarzeilen aus Konfigurationsdateien herauszufiltern: grep -v "^#" /etc/ssh/sshd_config

Dateien und Ordner verwalten

Mit diesen sieben Befehlen erledigst du alles rund ums Verschieben, Kopieren, Löschen und Erstellen von Dateien und Verzeichnissen. Besondere Vorsicht gilt bei rm — gelöschte Dateien landen nicht im Papierkorb.

cp — Kopieren

cp kopiert Dateien. Mit -r (recursive) kopierst du komplette Verzeichnisse inklusive aller Unterordner. Die Option -p erhält Zeitstempel und Berechtigungen der Originaldatei — wichtig für Backups. Mit -v (verbose) siehst du, was gerade kopiert wird.

cp bericht.txt bericht_backup.txt
cp -rp /home/gunter/Dokumente /mnt/backup/Dokumente_2026-04-05
cp -v *.conf /etc/myapp/
'app.conf' -> '/etc/myapp/app.conf'
'db.conf' -> '/etc/myapp/db.conf'

mv — Verschieben und Umbenennen

mv verschiebt eine Datei oder benennt sie um — beides ist dieselbe Operation. Gibst du als Ziel ein vorhandenes Verzeichnis an, wird die Datei dorthin verschoben. Gibst du einen neuen Namen an, wird sie umbenannt. Mit -i fragt mv nach, bevor es eine vorhandene Datei überschreibt.

mv entwurf.txt bericht_final.txt
mv /home/gunter/Downloads/foto.jpg /home/gunter/Bilder/
mv -i wichtig.txt /tmp/
mv: overwrite '/tmp/wichtig.txt'? n

rm — Löschen

rm löscht Dateien dauerhaft — es gibt keinen Papierkorb auf der Kommandozeile. Mit -r löschst du Verzeichnisse rekursiv, mit -i wird vor jedem Löschen nachgefragt. Die Kombination -rf löscht ohne jede Rückfrage.

rm alte_datei.txt
rm -i wichtige_datei.txt
rm: remove regular file 'wichtige_datei.txt'? y
rm -r temp_ordner/
Achtung: rm -rf mit einem falschen Pfad kann ganze Verzeichnisbäume vernichten — ohne Warnung, ohne Rückfrage. Überprüfe den Pfad immer mit ls bevor du rm -r ausführst. Niemals rm -rf / oder rm -rf ~ eingeben.

mkdir — Verzeichnis erstellen

mkdir erstellt einen neuen Ordner. Mit -p erstellst du auch fehlende übergeordnete Verzeichnisse in einem Schritt — ohne -p gibt es einen Fehler, wenn der übergeordnete Ordner noch nicht existiert. Mit -v siehst du, welche Verzeichnisse erstellt wurden.

mkdir projekte
mkdir -pv projekte/2026/januar/fotos
mkdir: created directory 'projekte/2026'
mkdir: created directory 'projekte/2026/januar'
mkdir: created directory 'projekte/2026/januar/fotos'

rmdir — Leeres Verzeichnis entfernen

rmdir entfernt nur leere Verzeichnisse und gibt eine Fehlermeldung, wenn noch Inhalt vorhanden ist. Das ist sicherer als rm -r und schützt vor versehentlichem Datenverlust. Für nicht-leere Ordner brauchst du rm -r.

rmdir leerer_ordner
rmdir gefuellter_ordner
rmdir: failed to remove 'gefuellter_ordner': Directory not empty

touch — Datei erstellen oder Zeitstempel aktualisieren

touch erstellt eine leere Datei, falls sie noch nicht existiert. Existiert sie bereits, aktualisiert touch nur den Zeitstempel auf die aktuelle Zeit. Das ist nützlich für Skripte, die prüfen, ob eine Datei vorhanden ist, oder für Make-Builds, die auf Zeitstempeln basieren.

touch neue_datei.txt
ls -l neue_datei.txt
-rw-r--r-- 1 gunter gunter 0 Apr  5 11:20 neue_datei.txt

touch mehrere_dateien.txt log.txt status.txt

ln — Links erstellen

ln erstellt harte Links, die auf dieselbe Inode wie das Original zeigen. Mit -s erstellst du symbolische Links (Symlinks) — das sind Zeiger auf einen Pfad. Symlinks funktionieren auch über Dateisystemgrenzen hinweg und können auf Verzeichnisse zeigen, harte Links nicht.

ln -s /home/gunter/Dokumente/handbuch.txt ~/Desktop/handbuch-link.txt
ls -l ~/Desktop/handbuch-link.txt
lrwxrwxrwx 1 gunter gunter 38 Apr  5 11:20 handbuch-link.txt -> /home/gunter/Dokumente/handbuch.txt

Berechtigungen und Besitz

Linux trennt strikt zwischen Eigentümer einer Datei, ihrer Gruppe und allen anderen Nutzern. Jeder dieser drei Ebenen kannst du Lese-, Schreib- und Ausführungsrechte geben oder entziehen. Diese drei Befehle steuern das. Mehr Details zum Berechtigungsmodell findest du im Artikel Das Linux-Dateisystem.

chmod — Berechtigungen ändern

chmod setzt Lese-, Schreib- und Ausführungsrechte für Eigentümer (u), Gruppe (g) und alle anderen (o). Du kannst symbolisch arbeiten (u+x fügt Ausführungsrecht für den Eigentümer hinzu) oder oktal: 4 = lesen, 2 = schreiben, 1 = ausführen. chmod 755 bedeutet: Eigentümer darf alles (7=4+2+1), Gruppe und andere dürfen lesen und ausführen (5=4+1).

chmod +x mein_skript.sh
chmod 644 bericht.txt
chmod 755 /home/gunter/bin/

ls -l mein_skript.sh bericht.txt
-rwxr-xr-x 1 gunter gunter 1024 Apr  5 10:00 mein_skript.sh
-rw-r--r-- 1 gunter gunter  512 Apr  5 10:00 bericht.txt

chown — Besitzer ändern

chown ändert den Besitzer einer Datei oder eines Verzeichnisses. Mit benutzer:gruppe kannst du beides gleichzeitig setzen. Mit -R änderst du rekursiv alle Dateien in einem Verzeichnis. Diese Operation benötigt root-Rechte — du brauchst also sudo.

sudo chown gunter:gunter datei.txt
sudo chown -R gunter:gunter /home/gunter/projekte/
ls -l datei.txt
-rw-r--r-- 1 gunter gunter 2048 Apr  5 09:30 datei.txt

chgrp — Gruppe ändern

chgrp ändert nur die Gruppe einer Datei — ohne den Besitzer zu berühren. Das ist nützlich, wenn mehrere Benutzer gemeinsam auf Projektdateien zugreifen sollen: Du legst eine Gruppe an, setzt sie mit chgrp und gibst der Gruppe Schreibrechte mit chmod g+w.

sudo chgrp entwickler projekt_datei.py
ls -l projekt_datei.py
-rw-r--r-- 1 gunter entwickler 2048 Apr  5 09:30 projekt_datei.py

sudo chgrp -R www-data /var/www/html/
Tipp: Mit stat dateiname siehst du alle Metadaten einer Datei auf einen Blick: Berechtigungen als Oktalzahl und symbolisch, Besitzer und Gruppe mit UID/GID, Dateigröße sowie alle drei Zeitstempel — Access, Modify und Change.

System und Prozesse

Diese sieben Befehle geben dir Einblick in laufende Prozesse, Arbeitsspeicher und Festplattennutzung. Unverzichtbar, wenn das System träge wird, ein Prozess hängt oder du wissen willst, wo der Speicher geblieben ist.

ps — Prozessliste anzeigen

ps aux zeigt alle laufenden Prozesse mit Besitzer, PID (Prozess-ID), CPU- und RAM-Nutzung sowie dem vollständigen Befehl. Die PID brauchst du, um mit kill einen Prozess zu beenden. Die Kombination mit grep filtert gezielt nach einem bestimmten Programm.

ps aux | grep firefox
gunter  3421  2.1  5.3 2345678 215000 ?  Sl  10:30  0:45 /usr/lib/firefox/firefox
gunter  3489  0.0  0.0   6152   648 pts/1  S+  10:31  0:00 grep --color=auto firefox

top und htop — Systemauslastung live

top zeigt eine live aktualisierte Übersicht aller Prozesse, sortiert nach CPU-Last. Mit k kannst du direkt aus top heraus einen Prozess beenden — du gibst die PID ein. htop ist die komfortablere Version mit Farben, Balkengrafiken und Maus-Unterstützung. Es muss meist nachinstalliert werden: sudo apt install htop.

top
top - 11:20:00 up  2:30,  1 user,  load average: 0.42, 0.38, 0.35
Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.2 us,  1.1 sy,  0.0 ni, 95.4 id,  0.3 wa
MiB Mem :  7823.4 total,  2341.2 free,  3210.8 used,  2271.4 buff/cache
MiB Swap:  2048.0 total,  2048.0 free,     0.0 used.  3921.0 avail Mem

kill — Prozess beenden

kill sendet ein Signal an einen Prozess. Standardmäßig ist das SIGTERM (Signal 15), das den Prozess auffordert, sich sauber zu beenden. Reagiert der Prozess nicht, erzwingst du das sofortige Ende mit -9 (SIGKILL). Mit killall programmname beendest du alle Prozesse mit diesem Namen auf einmal.

kill 3421
kill -9 3421
killall firefox

df — Festplattenplatz anzeigen

df -h zeigt den verfügbaren Speicherplatz aller eingehängten Dateisysteme in lesbarer Form — h steht für human-readable, also GB/MB statt rohe Bytes. Die Spalte „Use%“ gibt den Füllstand in Prozent an. Wenn eine Partition über 90% liegt, solltest du aufräumen.

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       234G   87G  135G  40% /
tmpfs           3.9G  1.2M  3.9G   1% /run
/dev/sda2       512G  230G  257G  48% /home

du — Verzeichnisgröße messen

du -sh zeigt die Gesamtgröße eines Verzeichnisses kompakt an. Mit du -sh * siehst du die Größe jedes Eintrags im aktuellen Ordner — praktisch, um den größten Platzverschlinger zu finden. --max-depth=1 begrenzt die Tiefe der Analyse.

du -sh /home/gunter/Downloads/
4.7G	/home/gunter/Downloads/

du -sh /home/gunter/* | sort -rh | head -5
4.7G	/home/gunter/Downloads
1.2G	/home/gunter/Videos
356M	/home/gunter/Bilder
 48M	/home/gunter/Dokumente
 12M	/home/gunter/.cache

free — Arbeitsspeicher anzeigen

free -h gibt eine kompakte Übersicht über den Arbeitsspeicher. „available“ ist die wichtigste Zahl — das ist der RAM, der tatsächlich für neue Prozesse verfügbar ist, inklusive des Buff/Cache-Anteils den Linux bei Bedarf freigibt. „free“ allein ist oft irreführend niedrig.

free -h
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       3.1Gi       2.3Gi       312Mi       2.2Gi       3.9Gi
Swap:          2.0Gi          0B       2.0Gi

uname — Systeminformationen

uname -a gibt alle verfügbaren Systeminformationen aus: Kernel-Version, Hostname, Kernel-Release, Prozessor-Architektur und Betriebssystem. Die Kernel-Version brauchst du oft, wenn du ein Problem googelst oder einen Bug reportierst.

uname -a
Linux mein-laptop 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

uname -r
6.8.0-51-generic

Netzwerk — Grundlagen

Für die meisten Desktop-Nutzer reichen vier Befehle, um grundlegende Netzwerkfragen zu beantworten: Ist ein Host erreichbar? Welche IP hat mein Rechner? Wie lade ich eine Datei aus dem Web?

ping — Erreichbarkeit testen

ping schickt ICMP-Echo-Pakete an einen Host und misst die Antwortzeit in Millisekunden. Unter Linux läuft ping endlos — mit Ctrl+C stoppst du es. Mit -c 4 begrenzst du auf vier Pakete. Der Quad9-DNS (9.9.9.9) ist ein guter Test-Host, weil er zuverlässig antwortet.

ping -c 4 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
64 bytes from 9.9.9.9: icmp_seq=1 ttl=58 time=12.3 ms
64 bytes from 9.9.9.9: icmp_seq=2 ttl=58 time=11.8 ms
64 bytes from 9.9.9.9: icmp_seq=3 ttl=58 time=12.1 ms
64 bytes from 9.9.9.9: icmp_seq=4 ttl=58 time=11.9 ms
--- 9.9.9.9 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss
rtt min/avg/max/mdev = 11.8/12.0/12.3/0.2 ms

ip addr — Netzwerkschnittstellen anzeigen

ip addr (Kurzform: ip a) zeigt alle Netzwerkschnittstellen mit ihren IP-Adressen. Das Kommando ersetzt das ältere ifconfig, das auf modernen Ubuntu- und Debian-Systemen oft nicht mehr vorinstalliert ist. Die Schnittstelle lo ist der Loopback (127.0.0.1), eth0 oder ens3 sind kabelgebundene Verbindungen, wlan0 das WLAN.

ip addr show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    link/ether a0:b1:c2:d3:e4:f5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.42/24 brd 192.168.1.255 scope global dynamic wlan0
    inet6 fe80::a2b1:c2ff:fed3:e4f5/64 scope link

curl — HTTP-Anfragen stellen

curl überträgt Daten zu oder von einem Server. Mit -I (Großbuchstabe i) holst du nur den HTTP-Header — nützlich, um den Status-Code oder Server-Typ zu prüfen. Mit -O lädst du eine Datei herunter und behältst den Originalnamen, mit -o name gibst du einen eigenen Namen an.

curl -I https://bin-bash.de
HTTP/2 200
content-type: text/html; charset=UTF-8
server: nginx
x-powered-by: PHP/8.2

curl -O https://example.com/skript.sh

wget — Dateien herunterladen

wget lädt Dateien aus dem Web herunter. Es eignet sich besonders für größere Downloads, weil es unterbrochene Verbindungen mit -c (continue) fortsetzen kann. Mit -b läuft der Download im Hintergrund, der Fortschritt wird in wget-log protokolliert.

wget https://example.com/datei.tar.gz
--2026-04-05 11:20:00--  https://example.com/datei.tar.gz
Resolving example.com... 93.184.216.34
HTTP request sent, awaiting response... 200 OK
Length: 2457600 (2.3M) [application/x-tar]
Saving to: 'datei.tar.gz'
datei.tar.gz    100%[=============================>]   2.34M  1.82MB/s  in 1.3s

Textverarbeitung

Bash-Nutzer kombinieren diese Befehle mit Pipes (|), um Textdaten direkt in der Shell zu verarbeiten — ohne Editor, ohne grafisches Tool. Wie Pipes und Umleitungen funktionieren, erklärt der Artikel Shellscripts ausführlich. Diese fünf Befehle decken den größten Teil der praktischen Textverarbeitung ab.

sort — Zeilen sortieren

sort sortiert Zeilen einer Datei oder Eingabe alphabetisch. Mit -n sortierst du numerisch, mit -r in umgekehrter Reihenfolge und mit -u entfernst du gleichzeitig Duplikate. Für die Sortierung nach Spalten nutzt du -k mit der Spaltennummer.

echo -e "Banane
Apfel
Kirsche
Aprikose" | sort
Apfel
Aprikose
Banane
Kirsche

sort -rn zahlen.txt
100
42
17
3

uniq — Duplikate entfernen

uniq entfernt aufeinanderfolgende identische Zeilen. Wichtig: Die Eingabe muss sortiert sein, damit identische Zeilen nebeneinander stehen — deshalb wird uniq fast immer direkt nach sort eingesetzt. -c zählt, wie oft jede Zeile vorkommt.

sort zugriffe.log | uniq -c | sort -rn | head -5
     42 192.168.1.100
     31 192.168.1.101
     18 10.0.0.5
      9 192.168.1.200
      3 172.16.0.1

cut — Spalten ausschneiden

cut extrahiert bestimmte Felder (Spalten) aus Zeilen. Mit -d bestimmst du das Trennzeichen, mit -f die Felder. Felder können als Einzelzahl (-f1), Liste (-f1,3) oder Bereich (-f2-5) angegeben werden.

cut -d: -f1,3 /etc/passwd | head -4
root:0
daemon:1
bin:2
sys:3

cut -d, -f2 adressen.csv | sort | uniq

tr — Zeichen ersetzen oder löschen

tr (translate) ersetzt oder löscht einzelne Zeichen in der Eingabe. Es liest ausschließlich von der Standardeingabe — du verwendest es per Pipe. Mit -d löschst du bestimmte Zeichen, mit -s (squeeze) reduzierst du aufeinanderfolgende gleiche Zeichen auf eines.

echo "linux ist grossartig" | tr 'a-z' 'A-Z'
LINUX IST GROSSARTIG

echo "Hallo   Welt" | tr -s ' '
Hallo Welt

echo "Passwort123" | tr -d '0-9'
Passwort

diff — Dateien vergleichen

diff vergleicht zwei Dateien zeilenweise und zeigt Unterschiede an. Zeilen mit < stammen aus der ersten Datei, Zeilen mit > aus der zweiten. Das Unified-Format (-u) ist leichter zu lesen — es zeigt Kontext-Zeilen mit und entspricht dem Format, das du aus Git-Diffs kennst.

diff version1.txt version2.txt
3c3
< echo "Hallo Welt"
---
> echo "Hallo Linux"
7a8
> echo "Neue Zeile in Version 2"

diff -u alt.conf neu.conf
--- alt.conf	2026-03-20 09:00:00
+++ neu.conf	2026-04-05 11:20:00
@@ -12,6 +12,7 @@
 MaxConnections=100
-Timeout=30
+Timeout=60
Tipp: diff -u ist die Grundlage des Patch-Formats. Mit diff -u alt.txt neu.txt > aenderung.patch speicherst du die Änderungen, und mit patch alt.txt < aenderung.patch wendest du sie auf eine andere Kopie an.

Befehle kombinieren — ein praktisches Beispiel

Die wahre Stärke der Linux-Kommandozeile liegt darin, einfache Werkzeuge zu kombinieren. Mit einer einzigen Pipeline lassen sich komplexe Aufgaben lösen — ohne ein Programm zu schreiben:

# Die 5 größten Dateien im aktuellen Verzeichnis finden und sortiert anzeigen:
find . -maxdepth 1 -type f -exec du -sh {} + | sort -rh | head -5
156M  ./video_backup.mp4
 47M  ./archiv.tar.gz
 23M  ./foto_sammlung.zip
8.2M  ./handbuch.pdf
1.1M  ./skripte.tar

# Alle einzigartigen IP-Adressen aus einem Apache-Log extrahieren:
cut -d' ' -f1 /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -10

Das ist erst der Anfang. Wenn du diese Befehle kombinierst und in Skripte fasst, kannst du Aufgaben automatisieren, die sonst Minuten dauern würden. Wie das geht, zeigt der Artikel Shellscripts.

Nächste Schritte

Du hast jetzt einen soliden Überblick über die 30 wichtigsten Linux-Befehle. Drei Empfehlungen für deinen weiteren Lernweg:

  • Lies Das Linux-Dateisystem — dann verstehst du, warum Befehle wie chmod, chown und find so funktionieren, wie sie es tun. Das Dateisystem ist das Fundament.
  • Schau dir Die Shell für Neulinge an, wenn du die Tab-Completion, die History oder das Arbeiten mit Aliasen noch nicht kennst — das spart täglich Zeit.
  • Starte mit Shellscripts, wenn du anfangen willst, Befehle zu automatisieren. Das erste eigene Skript ist einfacher als du denkst.

Der schnellste Weg, diese Befehle wirklich zu lernen: Tippe sie täglich ab — auch wenn du eine grafische Alternative hättest. Nach zwei Wochen Praxis sitzt die Syntax, und du wirst merken, wie viel schneller du in der Shell bist als mit der Maus.