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.

Inhaltsverzeichnis
- Verbindung herstellen
- 1. Navigation im Dateisystem: Wo bin ich und wohin will ich?
- 2. Dateien und Ordner erstellen und verwalten
- 3. Textdateien anzeigen und bearbeiten
- 4. Berechtigungen verstehen und ändern
- 5. Prozesse anzeigen und beenden
- 6. Netzwerk-Grundlagen
- 7. Systeminformationen und Speicherplatz
- 8. Software installieren und verwalten (Paketmanager)
- 9. Mächtige Helfer: sudo, Pipes und Umleitungen
- Wichtige Tipps für den Anfang
- Fazit
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:
- Die IP-Adresse deines Servers.
- Deinen Benutzernamen auf dem Server.
- 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. Dasl
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 Mitcd
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 erstellenmkdir 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 aktualisierentouch 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 lautetcp 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 wiecp
, 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 mitrm
! 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 falscherrm -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 istless
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 duless
.less /var/log/syslog
-
nano
: Einfacher Texteditornano
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
(odervi
): Mächtiger, aber gewöhnungsbedürftiger Editorvim
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).
- Drücke I, um in den Einfüge-Modus (
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 vonls -l
siehst du etwas wiedrwxr-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.
- Das erste Zeichen:
-
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 istchmod 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: ---
- Symbolisch:
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 oftsudo
.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 dutop
. -
htop
: Benutzerfreundlichere Alternative zutop
htop
ist farbig und bietet mehr Interaktionsmöglichkeiten (z.B. Prozesse mit den Pfeiltasten auswählen und mit F9kill
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 mitkill
und seiner Prozess-ID (PID – findest du z.B. mitps
oderhtop
) beenden.# Finde die PID von htop, z.B. 62434 kill 62434
kill
sendet standardmäßig einTERM
-Signal (15), was dem Prozess sagt, er möge sich bitte sauber beenden. Wenn das nicht hilft, kannst du einKILL
-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
(oderifconfig
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 übertragencurl
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 mitsystemd
(wie Ubuntu, Debian) istjournalctl
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
odernginx
).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 vorupgrade
oderinstall
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 installierensudo 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: Nutzeman 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.