Linux Terminal Grundlagen – Die wichtigsten Befehle für Einsteiger

Das Terminal ist das Herzstück von Linux. Dieser Guide erklärt die 50 wichtigsten Linux-Befehle mit Beispielen – von Navigation und Dateiverwaltung bis zu Prozessen und Netzwerk.

9 min Lesezeit

Linux Terminal Grundlagen – Die wichtigsten Befehle für Einsteiger

Das Terminal wirkt auf den ersten Blick einschüchternd – ein schwarzes Fenster mit blinkendem Cursor. Dabei ist es das mächtigste Werkzeug, das Linux zu bieten hat. Mit wenigen Befehlen erledigst du Aufgaben, die in einer grafischen Oberfläche mehrere Klicks erfordern würden.

Dieser Guide führt dich durch die grundlegenden Befehle, erklärt sie mit konkreten Beispielen und zeigt dir, wie du denkst wie ein Linux-Nutzer.


Terminal öffnen und erste Orientierung

Terminal starten

Desktop Tastenkürzel
GNOME Strg + Alt + T
KDE Strg + Alt + T
Cinnamon (Mint) Strg + Alt + T
Alle Rechtsklick auf Desktop → „Terminal öffnen"

Der Prompt erklärt

Nach dem Öffnen siehst du etwas wie:

andre@mein-laptop:~$

Aufbau: benutzername@hostname:aktuelles-verzeichnis$

  • ~ ist eine Abkürzung für dein Home-Verzeichnis (/home/benutzername)
  • $ bedeutet: normaler Benutzer
  • # würde bedeuten: Root (Administrator) – mit Vorsicht verwenden!

Befehle funktionieren so

befehl [optionen] [argumente]

Beispiel: ls -la /home bedeutet:

  • ls – Befehl (list)
  • -la – Optionen (l = Detailansicht, a = versteckte Dateien auch zeigen)
  • /home – Argument (welches Verzeichnis)

Das Linux-Dateisystem hat eine andere Struktur als Windows. Alles startet von der Wurzel /, es gibt keine Laufwerksbuchstaben wie C: oder D:.

Grundlegende Verzeichnisse

Pfad Inhalt
/ Wurzelverzeichnis
/home/benutzername Deine persönlichen Dateien
/etc Systemkonfigurationsdateien
/var/log Logdateien
/usr/bin Installierte Programme
/tmp Temporäre Dateien
/boot Boot-Dateien

Die Navigation-Befehle

# Aktuelles Verzeichnis anzeigen (print working directory)
pwd
# Ausgabe: /home/andre

# Inhalt des aktuellen Verzeichnisses anzeigen
ls

# Detaillierte Ansicht mit Berechtigungen, Größe, Datum
ls -l

# Auch versteckte Dateien anzeigen (beginnen mit .)
ls -la

# Lesbare Dateigrößen (K, M, G statt Bytes)
ls -lh

# In ein Verzeichnis wechseln
cd /etc
cd ~/Downloads     # ~ steht für dein Home-Verzeichnis
cd ..              # Eine Ebene nach oben
cd -               # Zurück zum letzten Verzeichnis

# Home-Verzeichnis zeigen
echo $HOME

Praktisches Beispiel:

# Von irgendwo zu Downloads navigieren
cd ~/Downloads

# Inhalt anzeigen
ls -lh

# Zurück zum letzten Ort
cd -

Dateien und Verzeichnisse verwalten

Erstellen

# Leere Datei erstellen (oder Zeitstempel aktualisieren)
touch datei.txt

# Verzeichnis erstellen
mkdir mein-ordner

# Verzeichnis-Baum erstellen (auch Elternverzeichnisse)
mkdir -p projekte/web/assets/css

# Datei mit Inhalt erstellen
echo "Hallo Welt" > datei.txt

# Text an Datei anhängen (>> überschreibt NICHT, > überschreibt!)
echo "Zweite Zeile" >> datei.txt

Kopieren, Verschieben, Löschen

# Datei kopieren
cp datei.txt backup.txt

# Datei in anderes Verzeichnis kopieren
cp datei.txt ~/Downloads/

# Verzeichnis rekursiv kopieren
cp -r mein-ordner/ backup-ordner/

# Datei/Verzeichnis verschieben (auch zum Umbenennen)
mv datei.txt neue-datei.txt
mv datei.txt ~/Dokumente/

# Datei löschen
rm datei.txt

# Verzeichnis mit Inhalt löschen (VORSICHT!)
rm -r mein-ordner/

# Interaktiv nachfragen vor jedem Löschvorgang
rm -ri mein-ordner/

Wichtig: rm löscht endgültig – es gibt keinen Papierkorb. Immer mit Vorsicht verwenden!

Verzeichnis-Baum anzeigen

# Falls nicht installiert:
sudo apt install tree

# Verzeichnisbaum anzeigen
tree

# Nur 2 Ebenen tief
tree -L 2

# Nur Verzeichnisse
tree -d

Suchen

# Datei nach Name suchen
find /home -name "datei.txt"

# Nach Dateiendung suchen
find . -name "*.log"

# In Dateien suchen (grep)
grep "Suchbegriff" datei.txt

# Rekursiv in allen Dateien eines Verzeichnisses
grep -r "Suchbegriff" /etc/

# Groß-/Kleinschreibung ignorieren
grep -i "fehler" /var/log/syslog

Archivieren und Entpacken

# tar.gz Archiv erstellen
tar -czf archiv.tar.gz mein-ordner/

# tar.gz Archiv entpacken
tar -xzf archiv.tar.gz

# Archiv anzeigen ohne zu entpacken
tar -tzf archiv.tar.gz

# ZIP entpacken
unzip archiv.zip

# ZIP erstellen
zip -r archiv.zip mein-ordner/

Dateiinhalte anzeigen und durchsuchen

# Gesamten Inhalt einer Datei ausgeben
cat datei.txt

# Mehrere Dateien hintereinander
cat datei1.txt datei2.txt

# Mit Zeilennummern
cat -n datei.txt

# Datei seitenweise anzeigen (navigierbar)
less datei.txt
# Navigation in less: Pfeiltasten, Leertaste vor, q zum Beenden, /suche

# Erste 10 Zeilen anzeigen
head datei.txt

# Erste 20 Zeilen
head -n 20 datei.txt

# Letzte 10 Zeilen
tail datei.txt

# Letzte 50 Zeilen
tail -n 50 datei.txt

# Datei live verfolgen (z.B. Logdatei)
tail -f /var/log/syslog
# Beenden: Strg + C

# Zeilenanzahl, Wörter, Zeichen zählen
wc -l datei.txt    # Zeilen
wc -w datei.txt    # Wörter
wc -c datei.txt    # Bytes

Ausgaben kombinieren (Pipes)

Der |-Operator leitet die Ausgabe eines Befehls als Eingabe an den nächsten weiter:

# Nur Fehler-Zeilen aus Log anzeigen
grep "error" /var/log/syslog | tail -n 50

# Prozessliste durchsuchen
ps aux | grep nginx

# Verzeichnisinhalt nach Größe sortiert
ls -lh | sort -k5 -h

# Dateien zählen
ls | wc -l

Berechtigungen verstehen und setzen

Berechtigungen lesen

ls -l datei.txt
# Ausgabe: -rw-r--r-- 1 andre andre 1234 Feb 18 10:00 datei.txt

Aufbau der Berechtigungsanzeige:

-  rw-  r--  r--
│  │    │    └── Andere (others): nur lesen
│  │    └─────── Gruppe (group): nur lesen
│  └──────────── Eigentümer (user): lesen + schreiben
└─────────────── Dateityp (- = Datei, d = Verzeichnis, l = Symlink)

Rechte-Tabelle:

Zeichen Bedeutung Oktalwert
r Lesen 4
w Schreiben 2
x Ausführen 1
- Kein Recht 0

Berechtigungen ändern (chmod)

# Ausführbar machen (für den Eigentümer)
chmod u+x script.sh

# Alle Rechte für Eigentümer, lesen für alle anderen
chmod 755 script.sh

# Nur Eigentümer darf lesen/schreiben
chmod 600 private.key

# Verzeichnis rekursiv ändern
chmod -R 755 mein-ordner/

Oktal-Kurzreferenz:

Oktal Rechte Bedeutung
755 rwxr-xr-x Standard für Skripte/Programme
644 rw-r--r-- Standard für Dateien
600 rw------- Nur Eigentümer (SSH-Keys!)
700 rwx------ Nur Eigentümer ausführbar

Eigentümer ändern (chown)

# Eigentümer ändern
sudo chown andre datei.txt

# Eigentümer und Gruppe ändern
sudo chown andre:www-data datei.txt

# Rekursiv
sudo chown -R andre:andre /var/www/html/

Prozesse verwalten

Prozesse anzeigen

# Aktuelle Prozesse des eigenen Benutzers
ps

# Alle Prozesse (a = alle, u = Benutzerformat, x = ohne Terminal)
ps aux

# Nur nginx-Prozesse
ps aux | grep nginx

# Live-Ansicht (beenden mit q)
top

# Interaktive Ansicht mit mehr Details (muss installiert sein)
htop
sudo apt install htop

Prozesse beenden

# Prozess anhand seiner PID beenden (sanft)
kill 1234

# Prozess erzwungen beenden
kill -9 1234

# Prozess nach Name beenden
pkill nginx

# Alle Instanzen eines Programms beenden
killall firefox

Befehle im Hintergrund ausführen

# Prozess in den Hintergrund schicken
befehl &

# Laufenden Prozess in den Hintergrund schicken
# Zuerst: Strg + Z (pausiert)
# Dann:
bg

# Hintergrundprozesse anzeigen
jobs

# Prozess wieder in den Vordergrund holen
fg

# Prozess läuft weiter, auch wenn Terminal geschlossen wird
nohup langer-befehl &

Paketverwaltung

Die Paketverwaltung ist eines der größten Stärken von Linux: Software kommt aus geprüften Quellen, wird zentral verwaltet und automatisch aktualisiert.

Debian/Ubuntu: apt

# Paketlisten aktualisieren (immer zuerst!)
sudo apt update

# Alle Pakete aktualisieren
sudo apt upgrade

# Paket installieren
sudo apt install nginx

# Mehrere Pakete auf einmal
sudo apt install curl wget git htop

# Paket entfernen (Konfiguration bleibt)
sudo apt remove nginx

# Paket mit Konfiguration entfernen
sudo apt purge nginx

# Nicht mehr benötigte Abhängigkeiten entfernen
sudo apt autoremove

# Nach Paket suchen
apt search "webserver"

# Infos zu einem Paket
apt show nginx

# Installierte Pakete auflisten
dpkg -l | grep nginx

Fedora/RHEL: dnf

sudo dnf update
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf search nginx
sudo dnf info nginx
dnf list installed | grep nginx

Arch Linux: pacman

sudo pacman -Syu           # System aktualisieren
sudo pacman -S nginx       # Paket installieren
sudo pacman -R nginx       # Paket entfernen
sudo pacman -Ss nginx      # Suchen
sudo pacman -Q | grep nginx # Installiert prüfen

Netzwerk und Verbindungen

# Netzwerkinterfaces anzeigen
ip addr show
# oder kurz:
ip a

# Routing-Tabelle
ip route

# Verbindungstest
ping google.com

# Nur 4 Pakete senden
ping -c 4 1.1.1.1

# Datei herunterladen
curl -O https://example.com/datei.txt

# Datei herunterladen mit Fortschritt
wget https://example.com/datei.txt

# HTTP-Header anzeigen
curl -I https://example.com

# Offene Ports anzeigen
ss -ltnp

# Aktive Verbindungen
ss -tnp

# DNS-Auflösung testen
dig google.com
nslookup google.com

# Traceroute (Netzwerkpfad verfolgen)
traceroute google.com
# Alternativ (moderner):
mtr google.com

SSH – Verbindung zu Remote-Servern

# Mit Passwort verbinden
ssh benutzername@server-ip

# Mit Port angeben
ssh -p 2222 benutzername@server-ip

# Mit SSH-Key verbinden
ssh -i ~/.ssh/mein_key benutzername@server-ip

# Datei auf Server kopieren
scp datei.txt benutzername@server:/pfad/ziel/

# Verzeichnis auf Server kopieren
scp -r ordner/ benutzername@server:/pfad/ziel/

Mehr zu SSH: SSH-Schlüssel erstellen und sicher verwenden


Nützliche Kurzkommandos und Tricks

Tastaturkürzel im Terminal

Kürzel Aktion
Strg + C Laufenden Befehl abbrechen
Strg + Z Prozess pausieren (in den Hintergrund)
Strg + D Terminal beenden (EOF)
Strg + L Bildschirm leeren (wie clear)
Tab Autovervollständigung
Tab Tab Alle Möglichkeiten anzeigen
Pfeil oben/unten Befehlshistorie
Strg + R In Befehlshistorie suchen
Strg + A Cursor zum Anfang der Zeile
Strg + E Cursor zum Ende der Zeile

Weitere nützliche Befehle

# Befehlshistorie anzeigen
history

# Letzten Befehl wiederholen
!!

# Befehl Nr. 42 aus der Historie
!42

# Letztes Argument des vorherigen Befehls
!$

# Man-Page (Handbuch) eines Befehls öffnen
man ls
man grep
# Navigation: Pfeiltasten, q zum Beenden

# Kurze Hilfe zu einem Befehl
ls --help

# Pfad eines Programms herausfinden
which python3
which nginx

# Systeminfo
uname -a          # Kernel-Version
lsb_release -a    # Distribution und Version
df -h             # Festplattennutzung
free -h           # RAM-Nutzung
uptime            # Systemlaufzeit
whoami            # Aktueller Benutzer
id                # Benutzer-ID und Gruppen

# Datum und Uhrzeit
date
date "+%Y-%m-%d %H:%M"

# Ausgabe in Datei schreiben UND auf dem Bildschirm anzeigen
befehl | tee ausgabe.txt

# Als anderen Benutzer ausführen
sudo -u www-data befehl

# Zu Root wechseln (wenn erlaubt)
sudo -i
# Zurück: exit

Alias – eigene Kurzformen definieren

# Temporärer Alias (gilt nur in dieser Session)
alias update='sudo apt update && sudo apt upgrade -y'
alias ll='ls -lah'

# Dauerhafter Alias: in ~/.bashrc oder ~/.zshrc eintragen
echo "alias ll='ls -lah'" >> ~/.bashrc
source ~/.bashrc    # Änderungen sofort übernehmen

Häufige Fehler und deren Bedeutung

command not found

bash: nginx: command not found

Bedeutung: Das Programm ist nicht installiert oder nicht im PATH.

# Prüfen ob installiert
which nginx
apt list --installed 2>/dev/null | grep nginx

# Installieren
sudo apt install nginx

Permission denied

bash: /etc/hosts: Permission denied

Bedeutung: Du hast nicht die nötigen Rechte.

# Mit sudo (Administratorrechten) ausführen
sudo nano /etc/hosts

No such file or directory

ls: cannot access 'datei.txt': No such file or directory

Bedeutung: Datei oder Verzeichnis existiert nicht an dem angegebenen Pfad.

# Aktuellen Pfad prüfen
pwd
ls

Broken pipe

Erscheint manchmal bei Pipes (|). Meist harmlos – das linke Programm wurde beendet, bevor das rechte fertig war.

sudo: command not found (seltener)

# sudo ist nicht installiert (z.B. in manchen Container-Umgebungen)
su -c "befehl" root
# oder su - , dann als root anmelden

Fazit

Das Terminal ist kein Rückschritt – es ist der direkteste Weg, mit deinem System zu kommunizieren. Die hier gezeigten Befehle decken 90 % aller alltäglichen Aufgaben ab.

Dein Lernpfad:

  1. Navigation und Dateiverwaltung in Fleisch und Blut üben
  2. man-Pages nutzen, wenn du einen Befehl nicht kennst
  3. Aliases für häufig genutzte Befehle anlegen
  4. Mit Pipes experimentieren – die Kraft von Linux liegt in der Kombination

War dieser Artikel hilfreich?