Linux-Terminal für Anfänger: Die wichtigsten Befehle für deinen Server

Lerne die wichtigsten Linux-Terminalbefehle für deinen Server. Ein anfängerfreundlicher Guide zum Navigieren, Verwalten von Dateien, Anzeigen von Systeminformationen und mehr.

Linux-Terminal für Anfänger: Die wichtigsten Befehle für deinen Server hero image

Wenn du einen eigenen Linux-Server betreibst, sei es ein VPS (Virtual Private Server) oder ein Heimserver, kommst du meistens um das Terminal nicht herum. Am Anfang kann das vielleicht etwas einschüchternd wirken – eine schwarze Box mit blinkendem Cursor, die auf deine Eingaben wartet. Aber keine Sorge, es ist gar nicht so kompliziert, wie es aussieht! Das Terminal, auch Kommandozeile oder Shell genannt, ist ein unglaublich mächtiges Werkzeug, um deinen Server direkt und effizient zu steuern.

Heute zeige ich euch die wichtigsten Linux-Befehle, die ihr als Selfhoster kennen müsst, um auf eurem Server zu navigieren, Dateien zu verwalten und grundlegende Aufgaben zu erledigen.

Verbindung herstellen

Bevor wir loslegen, musst du dich natürlich erst einmal mit deinem Server verbinden. Das geschieht in der Regel über SSH (Secure Shell). Du benötigst dafür:

  1. Die IP-Adresse deines Servers.
  2. Deinen Benutzernamen auf dem Server.
  3. Dein Passwort oder (besser) einen SSH-Schlüssel.

Auf Windows kannst du Tools wie PuTTY verwenden oder das in Windows 10/11 integrierte OpenSSH im Terminal/PowerShell nutzen. Auf macOS und Linux ist der SSH-Client direkt im Terminal verfügbar.

ssh DEIN_BENUTZERNAME@DEINE_SERVER_IP

Gib dein Passwort ein, wenn du dazu aufgefordert wirst, und schon bist du drin!

1. Navigation im Dateisystem: Wo bin ich und wohin will ich?

Das Wichtigste zuerst: Wie bewegen wir uns im Dateisystem? Stell dir das Dateisystem wie ein System von Ordnern (Verzeichnissen) und Dateien vor.

  • pwd (Print Working Directory): Wo bin ich gerade? Dieser Befehl zeigt dir den kompletten Pfad des Verzeichnisses an, in dem du dich aktuell befindest.

    pwd

    Beispielausgabe: /home/DEIN_BENUTZERNAME

  • ls (List): Was ist hier drin? Listet den Inhalt des aktuellen Verzeichnisses auf – also welche Dateien und Ordner sich hier befinden.

    ls

    ls kann noch mit weiteren Parametern (Optionen) ergänzt werden. Nützliche Optionen sind z.B.:

    • ls -l: Zeigt eine detaillierte Liste mit Berechtigungen, Besitzer, Größe und Änderungsdatum. Das l steht für “long”.
    • ls -lh: Wie -l, aber mit “human readable” Dateigrößen (z.B. “1.5K” statt “1536”).
    • ls -a: Listet auch versteckte Dateien und Ordner auf (die mit einem Punkt beginnen, z.B. .bashrc). Hier siehst du auch . (aktuelles Verzeichnis) und .. (übergeordnetes Verzeichnis).

    Du kannst ls auch einen Pfad mitgeben, um den Inhalt eines anderen Ordners anzuzeigen:

    ls /var/log # Zeigt den Inhalt von /var/log
    ls /        # Zeigt den Inhalt des Root-Verzeichnisses
  • Hilfe! man (Manual): Du musst dir nicht alle Befehle und Optionen merken! Für die gängigen Befehle gibt es eingebaute Anleitungen, die “man pages”.

    man ls

    Das zeigt dir alles über den ls-Befehl. Mit den Pfeiltasten navigierst du, mit Q verlässt du die Ansicht.

  • cd (Change Directory): Verzeichnis wechseln Mit cd wechselst du das Verzeichnis.

    cd /var/www/html  # Wechselt in das Verzeichnis /var/www/html
    cd ..             # Wechselt eine Ebene höher (ins übergeordnete Verzeichnis)
    cd                # Wechselt ohne Argumente zurück in dein Home-Verzeichnis
    cd ~              # Ebenfalls ins Home-Verzeichnis
    cd -              # Wechselt ins vorherige Verzeichnis

    Dein Terminal zeigt dir oft an, in welchem Verzeichnis du dich gerade befindest (z.B. DEIN_BENUTZERNAME@SERVERNAME:~/docker$). Die Tilde (~) steht für dein Home-Verzeichnis.

  • Tab-Vervollständigung: Dein bester Freund! Ein wichtiger Tipp: Wenn du anfängst, einen Pfad- oder Dateinamen zu tippen und dann die Tab-Taste drückst, versucht die Shell, den Namen zu vervollständigen. Drückst du Tab zweimal, werden dir mögliche Vervollständigungen angezeigt. Das spart enorm viel Zeit und vermeidet Tippfehler!

    cd AdGu  # Tippe "AdGu" und drücke Tab -> wird zu "cd AdGuardHome/" (wenn eindeutig)
  • clear: Bildschirm aufräumen Leert den aktuellen Bildschirminhalt des Terminals.

2. Dateien und Ordner erstellen und verwalten

Jetzt, wo wir navigieren können, wollen wir auch Dinge anlegen und verändern.

  • mkdir (Make Directory): Neue Ordner erstellen

    mkdir mein_projekt

    Das erstellt einen Ordner namens mein_projekt im aktuellen Verzeichnis. Wenn du eine ganze Kette von Ordnern erstellen willst, die noch nicht existieren (z.B. mein_projekt/assets/images), geht das mit der Option -p (parents):

    mkdir -p mein_projekt/assets/images
  • touch: Leere Dateien erstellen oder Zeitstempel aktualisieren

    touch wichtige_notiz.txt

    Erstellt eine leere Datei namens wichtige_notiz.txt. Wenn die Datei schon existiert, wird ihr Zeitstempel aktualisiert.

  • cp (Copy): Dateien und Ordner kopieren Der Befehl lautet cp QUELLE ZIEL.

    cp wichtige_notiz.txt backup_notiz.txt   # Kopiert die Datei
    cp wichtige_notiz.txt mein_projekt/      # Kopiert die Datei in den Ordner mein_projekt

    Um ganze Ordner mit Inhalt zu kopieren, brauchst du die Option -r (recursive):

    cp -r mein_projekt /tmp/projekt_backup
  • mv (Move): Dateien und Ordner verschieben oder umbenennen Ähnlich wie cp, aber die Quelle wird entfernt.

    mv wichtige_notiz.txt nur_notiz.txt             # Benennt die Datei um
    mv nur_notiz.txt mein_projekt/                # Verschiebt die Datei in den Ordner
    mv mein_projekt/wichtige_notiz_2.txt .        # Verschiebt Datei aus mein_projekt ins aktuelle Verz. (.)
  • rm (Remove): Dateien und Ordner löschen Sei vorsichtig mit rm! Gelöschte Dateien sind meistens wirklich weg.

    rm nur_notiz.txt  # Löscht die Datei

    Um einen Ordner zu löschen, brauchst du wieder die Option -r (recursive). Wenn der Ordner nicht leer ist, wird oft eine Nachfrage kommen.

    rm -r mein_projekt # Löscht den Ordner mein_projekt und seinen Inhalt

    Manchmal kommen beim Löschen Nachfragen. Diese kann man mit -f (force) unterdrücken. EXTREM GEFÄHRLICH: rm -rf PFAD löscht ohne Nachfrage rekursiv alles im angegebenen Pfad. Ein falscher rm -rf / kann dein gesamtes System löschen! Nutze -f nur, wenn es absolut nötig ist und du genau weißt, was du tust.

3. Textdateien anzeigen und bearbeiten

Um Konfigurationsdateien oder Skripte anzusehen und zu bearbeiten, brauchst du einen Texteditor.

  • cat (Concatenate): Inhalt einer Datei anzeigen Zeigt den gesamten Inhalt einer Datei direkt im Terminal an. Für kurze Dateien praktisch.

    cat testdatei.txt
  • less: Inhalt einer Datei seitenweise anzeigen Für längere Dateien ist less besser. Du kannst mit den Pfeiltasten oder Bild auf/ab blättern. Mit / kannst du nach Text suchen, mit N zum nächsten Treffer springen. Mit Q verlässt du less.

    less /var/log/syslog
  • nano: Einfacher Texteditor nano ist ein anfängerfreundlicher, im Terminal laufender Editor. Die wichtigsten Befehle siehst du unten am Bildschirmrand (z.B. Strg+O zum Speichern, Strg+X zum Beenden).

    nano meine_konfig.conf
  • vim (oder vi): Mächtiger, aber gewöhnungsbedürftiger Editor vim ist auf fast jedem Linux-System vorinstalliert. Er hat eine steilere Lernkurve, ist aber extrem effizient, wenn man ihn beherrscht.

    vim testdatei.txt

    Die wichtigsten vim-Basics:

    • Drücke I, um in den Einfüge-Modus (INSERT) zu wechseln und Text zu tippen.
    • Drücke Esc, um den Einfüge-Modus zu verlassen und in den Kommando-Modus zu gelangen.
    • Im Kommando-Modus:
      • :w speichert die Datei (write).
      • :q beendet Vim (quit).
      • :wq oder :x speichert und beendet.
      • :q! beendet ohne zu speichern (verwirft Änderungen).

4. Berechtigungen verstehen und ändern

Jede Datei und jeder Ordner in Linux hat Berechtigungen, die festlegen, wer was damit machen darf.

  • Berechtigungen anzeigen mit ls -l Am Anfang jeder Zeile von ls -l siehst du etwas wie drwxr-xr-x oder -rw-r--r--.

    • Das erste Zeichen: d für Directory (Ordner), - für eine normale Datei.
    • Die nächsten neun Zeichen sind in Dreiergruppen: Besitzer, Gruppe, Andere.
    • r steht für Leserecht (Read).
    • w steht für Schreibrecht (Write).
    • x steht für Ausführungsrecht (Execute – bei Ordnern bedeutet das, man darf hineinwechseln). Beispiel: drwxr-xr-x
    • d: Es ist ein Ordner.
    • rwx (Besitzer): Der Besitzer darf lesen, schreiben und ausführen.
    • r-x (Gruppe): Mitglieder der Gruppe dürfen lesen und ausführen, aber nicht schreiben.
    • r-x (Andere): Alle anderen dürfen ebenfalls lesen und ausführen.
  • chmod (Change Mode): Berechtigungen ändern Du kannst Berechtigungen symbolisch oder numerisch ändern.

    • Symbolisch:
      • u (user/Besitzer), g (group/Gruppe), o (others/Andere), a (all/alle).
      • + (hinzufügen), - (entfernen), = (genau setzen).
      chmod u+x mein_skript.sh   # Fügt dem Besitzer Ausführungsrechte hinzu
      chmod g-w sensible_datei.txt # Entzieht der Gruppe Schreibrechte
      chmod a+r wichtige_info.txt # Gibt allen Leserechte
      chmod go-rwx private_daten  # Entzieht Gruppe und Anderen alle Rechte
    • Numerisch (Oktal): Jede Berechtigung hat einen Zahlenwert: r=4, w=2, x=1. Addiere die Werte für die gewünschten Rechte.
      • 7 (4+2+1) = rwx
      • 6 (4+2+0) = rw-
      • 5 (4+0+1) = r-x
      • 4 (4+0+0) = r-- Der Befehl ist chmod ZAHL_FÜR_BESITZER ZAHL_FÜR_GRUPPE ZAHL_FÜR_ANDERE DATEI/ORDNER.
      chmod 755 mein_skript.sh  # Besitzer: rwx, Gruppe: r-x, Andere: r-x
      chmod 600 private_schluessel # Besitzer: rw-, Gruppe: ---, Andere: ---

chmod Rechte-Kalkulator

Besitzer

Gruppe

Andere

Oktal:644

Symbolisch:-rw-r--r--

Beispiel: chmod 644 my_file.txt
ls -l Ausgabe: -rw-r--r-- 1 user group ... my_file.txt

  • chown (Change Owner): Besitzer und Gruppe ändern Um den Besitzer und/oder die Gruppe einer Datei zu ändern. Benötigt oft sudo.
    sudo chown neuer_besitzer:neue_gruppe datei.txt
    sudo chown DEIN_BENUTZERNAME:DEIN_BENUTZERNAME wichtige_notiz.txt # Ändert Besitzer und Gruppe

5. Prozesse anzeigen und beenden

Manchmal musst du sehen, welche Programme (Prozesse) auf deinem Server laufen oder einen Prozess beenden, der Probleme macht.

  • ps aux: Alle laufenden Prozesse anzeigen Zeigt eine detaillierte Liste aller Prozesse. Die Ausgabe kann sehr lang sein.

    ps aux
    # Um nach einem bestimmten Prozess zu suchen (z.B. nginx):
    ps aux | grep nginx
  • top: Dynamische Prozessansicht Zeigt eine sich laufend aktualisierende Liste der Prozesse, sortiert nach CPU-Auslastung. Mit Q beendest du top.

  • htop: Benutzerfreundlichere Alternative zu top htop ist farbig und bietet mehr Interaktionsmöglichkeiten (z.B. Prozesse mit den Pfeiltasten auswählen und mit F9 kill senden). Muss oft erst installiert werden: sudo apt install htop.

    htop

    Mit Q (oder F10) verlässt du htop.

  • kill: Prozesse beenden Wenn ein Prozess hängt, kannst du ihn mit kill und seiner Prozess-ID (PID – findest du z.B. mit ps oder htop) beenden.

    # Finde die PID von htop, z.B. 62434
    kill 62434

    kill sendet standardmäßig ein TERM-Signal (15), was dem Prozess sagt, er möge sich bitte sauber beenden. Wenn das nicht hilft, kannst du ein KILL-Signal (9) senden, das den Prozess sofort und “hart” beendet:

    kill -9 PID_DES_PROZESSES # Nur im Notfall verwenden!

6. Netzwerk-Grundlagen

Ein paar Befehle, um deine Netzwerkverbindung zu überprüfen.

  • ip addr (oder ifconfig auf älteren Systemen): Netzwerkkonfiguration anzeigen Zeigt deine Netzwerkschnittstellen und deren IP-Adressen.

  • ping: Erreichbarkeit testen Testet, ob ein anderer Host im Netzwerk oder Internet erreichbar ist und misst die Antwortzeit.

    ping google.de

    Mit Strg+C brichst du den Ping ab.

  • curl: Daten von/zu URLs übertragen curl ist ein vielseitiges Werkzeug zum Übertragen von Daten mit URLs. Eine einfache Anwendung ist das Herunterladen des HTML-Inhalts einer Webseite:

    curl https://deployn.de

    Das zeigt den HTML-Quelltext der Seite im Terminal an.

7. Systeminformationen und Speicherplatz

Wichtige Befehle, um den Zustand deines Systems zu überwachen.

  • df -h (Disk Free): Festplattenbelegung anzeigen Zeigt die Belegung deiner Festplattenpartitionen in menschenlesbarer Form (-h) an.

    df -h
  • free -h: Arbeitsspeicher-Auslastung anzeigen Zeigt die Nutzung deines RAMs und des Swap-Speichers.

  • journalctl: System-Logs einsehen (systemd) Auf modernen Systemen mit systemd (wie Ubuntu, Debian) ist journalctl das zentrale Werkzeug, um Systemprotokolle (Logs) anzusehen.

    • journalctl -f: Zeigt Logs live an (“follow”). Mit Strg+C beenden.
    • journalctl -u SERVICE_NAME: Zeigt Logs für einen bestimmten Dienst (z.B. sshd oder nginx).
    • journalctl -xe: Zeigt die letzten Log-Einträge mit zusätzlichen Erklärungen zu Fehlern.
  • dmesg (Driver Messages): Kernel-Meldungen anzeigen Nützlich zur Diagnose von Hardware-Problemen oder Problemen beim Systemstart.

8. Software installieren und verwalten (Paketmanager)

Um Software zu installieren, zu aktualisieren oder zu entfernen, nutzt du einen Paketmanager. Bei Debian-basierten Systemen wie Ubuntu ist das apt.

  • sudo apt update: Paketlisten aktualisieren Lädt die neuesten Informationen über verfügbare Pakete von den Servern (Repositories). Sollte vor upgrade oder install ausgeführt werden.

  • sudo apt upgrade: Installierte Pakete aktualisieren Installiert die neuesten Versionen aller bereits auf deinem System installierten Pakete. Bestätige mit Y, wenn gefragt.

  • sudo apt install PAKETNAME: Ein neues Paket installieren

    sudo apt install htop tree mc  # Installiert htop, tree und Midnight Commander
  • sudo apt remove PAKETNAME: Ein Paket entfernen Deinstalliert ein Paket, lässt aber oft Konfigurationsdateien zurück.

  • sudo apt purge PAKETNAME: Ein Paket vollständig entfernen Deinstalliert ein Paket inklusive seiner Konfigurationsdateien.

  • sudo apt autoremove: Nicht mehr benötigte Pakete entfernen Entfernt Abhängigkeiten, die nach der Deinstallation anderer Pakete nicht mehr gebraucht werden.

  • apt search SUCHBEGRIFF: Nach Paketen suchen Sucht in den verfügbaren Paketen nach einem bestimmten Begriff.

9. Mächtige Helfer: sudo, Pipes und Umleitungen

  • sudo (Superuser Do): Befehle mit Root-Rechten ausführen Viele Systembefehle erfordern Administratorrechte (Root-Rechte). sudo stellt diesen Befehlen temporär Root-Rechte voran. Du wirst nach deinem Benutzerpasswort gefragt.

  • | (Pipe): Ausgaben verketten Die Pipe leitet die Standardausgabe eines Befehls als Standardeingabe an einen anderen Befehl weiter. Extrem nützlich!

    ps aux | grep sshd       # Zeigt nur Prozesszeilen, die "sshd" enthalten
    ls -l /etc | less       # Leitet die lange Liste von /etc an `less` zum Blättern
    journalctl -u nginx | grep "error" # Sucht in den nginx-Logs nach Fehlern
  • > (Umleitung): Ausgabe in eine Datei schreiben (überschreibt!) Leitet die Ausgabe eines Befehls in eine Datei um. Wenn die Datei existiert, wird sie überschrieben.

    ls -l > dateiliste.txt # Schreibt die Ausgabe von ls -l in dateiliste.txt
  • >> (Umleitung): Ausgabe an eine Datei anhängen Leitet die Ausgabe an eine Datei weiter. Wenn die Datei existiert, wird die neue Ausgabe am Ende angehängt. Wenn nicht, wird sie erstellt.

    echo "Neuer Log-Eintrag: $(date)" >> server.log # Fügt einen Zeitstempel an server.log an

Wichtige Tipps für den Anfang

  • Tab-Vervollständigung: Dein bester Freund! Spart Tipparbeit und vermeidet Fehler.
  • man-Seiten: Nutze man BEFEHL, um mehr über einen Befehl zu erfahren.
  • history: Zeigt dir eine Liste deiner zuletzt eingegebenen Befehle. Mit !NUMMER kannst du einen Befehl aus der History erneut ausführen.
  • Strg+C: Bricht den aktuell laufenden Befehl ab.
  • Strg+R: Sucht rückwärts in deiner Befehlshistorie.
  • Kleine Schritte: Besonders am Anfang, probiere Befehle erst aus und verstehe, was sie tun, bevor du sie auf wichtige Daten oder Systemkonfigurationen anwendest.
  • Testserver: Wenn möglich, spiele auf einem Testserver oder einer virtuellen Maschine herum, bevor du Änderungen am Produktivsystem vornimmst.

Fazit

Das waren jetzt viele Grundlagen! Das Terminal ist ein unglaublich vielseitiges und effizientes Werkzeug, wenn man erst einmal die Grundlagen verstanden hat.

Diesen Beitrag teilen:

Diese Website verwendet Cookies. Diese sind notwendig, um die Funktionalität der Website zu gewährleisten. Weitere Informationen finden Sie in der Datenschutzerklärung