↓ Zum Hauptinhalt springen
  1. Anleitungen/

tmux – nie wieder Arbeit verlieren, wenn die SSH-Verbindung abreißt

Patrick Adams
Autor
Patrick Adams
Linux-Administrator und IT-Specialist. Ich schreibe über Server, Self-Hosting und Open-Source-Software, praxisnah und selbst getestet. Mehr über mich →
Inhaltsverzeichnis

Du startest auf dem Server ein langes Update, die WLAN-Verbindung bricht kurz weg – und mit der SSH-Sitzung ist auch das Update abgebrochen. Genau dagegen hilft tmux. Das Programm hält deine Terminal-Sitzung auf dem Server am Leben, auch wenn du die Verbindung trennst. Später meldest du dich wieder an und machst genau dort weiter, wo du aufgehört hast.

Nebenbei kann tmux noch mehr: Du teilst ein einziges Terminal in mehrere Bereiche, öffnest mehrere Fenster und behältst so Logs, Editor und Shell gleichzeitig im Blick. Wir nutzen tmux auf praktisch jedem Server, den wir betreuen.

Die drei Begriffe, die du kennen musst
#

  • Sitzung (Session): Eine komplette tmux-Arbeitsumgebung. Sie läuft im Hintergrund weiter, auch wenn du dich abmeldest.
  • Fenster (Window): Wie Tabs im Browser. Eine Sitzung kann mehrere Fenster haben.
  • Bereich (Pane): Ein Fenster lässt sich in mehrere Bereiche aufteilen, nebeneinander oder untereinander.

Schritt 1: tmux installieren
#

Unter Debian, Ubuntu und Linux Mint:

sudo apt update
sudo apt install -y tmux

Unter Fedora: sudo dnf install tmux

Schritt 2: Die erste Sitzung starten
#

Starte eine Sitzung mit einem sprechenden Namen:

tmux new -s arbeit

Unten erscheint eine grüne Statusleiste. Das heißt: Du bist in tmux.

Das Wichtigste: der Präfix
#

Alle tmux-Befehle beginnen mit einer Tastenkombination, dem sogenannten Präfix. Standardmäßig ist das Strg+b. Du drückst Strg+b, lässt beide Tasten los und drückst dann die eigentliche Befehlstaste.

Beispiel: Strg+b, dann d – damit trennst du dich von der Sitzung.

Schritt 3: Trennen und wieder verbinden
#

Das ist die Funktion, für die die meisten tmux nutzen.

Sitzung verlassen, ohne sie zu beenden: Strg+b, dann d (für „detach“)

Alles, was in der Sitzung läuft, läuft weiter. Du kannst jetzt sogar die SSH-Verbindung trennen.

Laufende Sitzungen anzeigen:

tmux ls

Wieder verbinden:

tmux attach -t arbeit

Gibt es nur eine Sitzung, reicht auch tmux attach oder kurz tmux a.

Sitzung endgültig beenden:

tmux kill-session -t arbeit

Oder einfach in der Sitzung exit eingeben, bis alle Fenster geschlossen sind.

Die wichtigsten Tastenkürzel
#

Alle Kürzel gelten nach dem Präfix Strg+b.

Sitzungen
#

TasteFunktion
dVon der Sitzung trennen
sListe aller Sitzungen, zum Wechseln
$Sitzung umbenennen

Fenster
#

TasteFunktion
cNeues Fenster öffnen
n / pNächstes / vorheriges Fenster
0 bis 9Direkt zu Fenster Nummer x springen
wÜbersicht aller Fenster
,Fenster umbenennen
&Fenster schließen

Bereiche
#

TasteFunktion
%Bereich teilen, nebeneinander
"Bereich teilen, untereinander
PfeiltastenZwischen Bereichen wechseln
zBereich auf ganzen Bildschirm vergrößern und zurück
xBereich schließen
LeertasteZwischen vorgegebenen Layouts wechseln

Sonstiges
#

TasteFunktion
[Scroll-Modus: mit Pfeiltasten oder Bild auf/ab blättern, q beendet ihn
?Hilfe mit allen Tastenkürzeln

Schritt 4: tmux komfortabler machen
#

Die Standardeinstellungen sind etwas sperrig. Mit einer eigenen Konfigurationsdatei wird tmux deutlich angenehmer:

nano ~/.tmux.conf

Füg diesen Inhalt ein:

# Maus aktivieren: Bereiche anklicken, Größe ziehen, scrollen
set -g mouse on

# Fenster und Bereiche ab 1 zählen statt ab 0
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on

# Bereiche mit | und - teilen, im aktuellen Ordner
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# Neue Fenster ebenfalls im aktuellen Ordner öffnen
bind c new-window -c "#{pane_current_path}"

# Längerer Verlauf zum Zurückscrollen
set -g history-limit 10000

# Volle Farbunterstützung
set -g default-terminal "tmux-256color"

# Konfiguration mit Präfix + r neu laden
bind r source-file ~/.tmux.conf \; display "Konfiguration neu geladen"

Speichern mit Strg+O, Enter, und Beenden mit Strg+X.

Laden kannst du die neue Konfiguration in einer laufenden Sitzung so:

tmux source-file ~/.tmux.conf

Danach reicht in Zukunft Strg+b, dann r.

Mit dieser Konfiguration teilst du Bereiche mit Strg+b, | nebeneinander und Strg+b, - untereinander. Das kann man sich deutlich leichter merken.

Tipp zur Maus: Ist mouse on aktiv, markiert tmux beim Ziehen mit der Maus selbst. Willst du Text wie gewohnt ins System kopieren, halt beim Markieren Shift gedrückt.

Schritt 5 (optional): Sitzungen auch nach einem Neustart behalten
#

tmux-Sitzungen überleben zwar einen Verbindungsabbruch, aber keinen Neustart des Servers. Abhilfe schafft das Plugin tmux-resurrect. Dafür brauchst du zuerst den Plugin-Manager TPM:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Ergänze ganz unten in deiner ~/.tmux.conf:

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'

# Muss die letzte Zeile der Datei bleiben
run '~/.tmux/plugins/tpm/tpm'

Lade die Konfiguration neu und installiere die Plugins mit Strg+b, dann Shift+i (großes I).

Ab jetzt gilt:

  • Strg+b, Strg+s speichert alle Sitzungen, Fenster und Bereiche.
  • Strg+b, Strg+r stellt sie nach einem Neustart wieder her.

Typische Einsätze aus der Praxis
#

  • Updates auf Servern: tmux new -s update, dann sudo apt upgrade. Bricht die Verbindung ab, läuft das Update trotzdem sauber durch.
  • Logs im Blick behalten: Links den Editor, rechts journalctl -f oder tail -f /var/log/syslog.
  • Lange Kopiervorgänge: Ein großes rsync oder Backup im Hintergrund laufen lassen und später nachsehen.
  • Mehrere Server gleichzeitig: In jedem Fenster eine SSH-Verbindung, mit Strg+b, w schnell umschalten.

Wenn etwas nicht klappt
#

  • „sessions should be nested with care“: Du hast tmux innerhalb von tmux gestartet. Verlass die innere Sitzung mit exit oder verbinde dich stattdessen mit tmux attach.
  • „no sessions“ bei tmux attach: Es läuft keine Sitzung mehr, zum Beispiel nach einem Neustart. Starte eine neue mit tmux new -s name.
  • Farben sehen merkwürdig aus: Lass die Zeile mit default-terminal testweise weg oder setze stattdessen "screen-256color".
  • Änderungen an der Konfiguration greifen nicht: Konfiguration neu laden oder alle Sitzungen beenden mit tmux kill-server und neu starten.

Fazit
#

tmux ist eines dieser Werkzeuge, die man nach einer Woche nicht mehr missen will. Wer regelmäßig per SSH auf Servern arbeitet, spart sich damit jede Menge Ärger durch abgebrochene Verbindungen – und gewinnt nebenbei einen deutlich aufgeräumteren Arbeitsplatz im Terminal.

Du willst deine Server sicher und komfortabel verwalten oder brauchst Unterstützung bei Linux? Sprich uns an – wir helfen dir gern.

Verwandte Artikel