TL;DR — Kurzzusammenfassung
Tmux-Sitzungsverwaltung für Remote-Server meistern. Persistente Sitzungen, Panels, Konfiguration, Plugins und praktische DevOps-Workflows erklärt.
Wenn Sie jemals stundenlange Arbeit verloren haben, weil eine SSH-Verbindung mitten in einem Deployment unterbrochen wurde, oder sich dabei ertappt haben, ein Dutzend Terminal-Fenster zu jonglieren, um einen Remote-Server zu überwachen, ist tmux das Werkzeug, das beide Probleme dauerhaft löst. Tmux (Terminal-Multiplexer) führt einen persistenten Serverprozess auf dem Remote-Host aus — Ihre Sitzungen, Panels und laufenden Befehle überleben Verbindungsabbrüche, Neustarts Ihres lokalen Rechners und Netzwerkausfälle. Dieser Leitfaden deckt alles ab: Installation, die Sitzungs-Fenster-Panel-Hierarchie, alle wichtigen Tastenkürzel, ein produktionsbereites ~/.tmux.conf, das Plugin-Ökosystem, Automatisierungsskripte und drei praktische DevOps-Workflows.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie:
- Ein Linux- oder macOS-System mit Terminal-Zugang (lokal oder via SSH)
sudo-Rechte für die Installation- Grundkenntnisse der Kommandozeile
- Einen SSH-Client für die Arbeit mit Remote-Servern
Warum tmux? Die wichtigsten Anwendungsfälle
Drei Szenarien machen tmux für die Remote-Server-Arbeit unverzichtbar:
SSH-Verbindungsabbrüche überleben. Wenn Ihr Internetanbieter ausfällt oder Sie den Laptop-Deckel schließen, stirbt jeder Prozess, der in einem normalen SSH-Terminal läuft. Mit tmux läuft die Sitzung auf dem Server weiter. Ihr lang laufendes rsync, ansible-playbook oder npm run build läuft weiter. Sie verbinden sich neu und hängen sich wieder an.
Multi-Panel-Workflows. Ein typisches Deployment könnte das Beobachten von Logs in einem Panel, das Ausführen von Migrationsskripten in einem anderen und einen Shell bereit für Rollback-Befehle in einem dritten umfassen — alles in einer einzigen SSH-Verbindung.
Pair-Programming. Zwei Ingenieure können sich per SSH mit demselben Server verbinden und dieselbe tmux-Sitzung anhängen. Beide sehen dasselbe Terminal und können in Echtzeit interagieren.
Installation
Tmux ist in den Standard-Repositories aller wichtigen Distributionen verfügbar.
Ubuntu/Debian:
sudo apt update && sudo apt install -y tmux
Fedora/RHEL/CentOS:
sudo dnf install -y tmux
Arch Linux:
sudo pacman -S tmux
macOS (Homebrew):
brew install tmux
Überprüfen:
tmux -V
# tmux 3.4
Jede Version 3.0 oder höher unterstützt alle Funktionen in diesem Leitfaden.
Kernkonzepte: Sitzungen, Fenster und Panels
Die tmux-Hierarchie hat drei Ebenen:
Sitzung — Der äußerste Container. Ein unabhängiger, benannter Arbeitsbereich. Sie können viele Sitzungen gleichzeitig laufen haben: arbeit, deployment, monitor. Sitzungen bleiben bestehen, auch wenn Sie nicht angehängt sind.
Fenster — Lebt in einer Sitzung. Belegt den gesamten Bildschirm wie ein Browser-Tab. Jede Sitzung kann mehrere Fenster haben. Die Statusleiste unten zeigt alle Fenster.
Panel — Eine Unterteilung eines Fensters. Sie teilen ein Fenster horizontal oder vertikal auf, um mehrere Panels zu erstellen, die jeweils ihre eigene Shell oder einen Befehl ausführen.
tmux-Server (persistent auf dem Remote-Host)
|
+-- Sitzung: "arbeit"
| +-- Fenster 0: "editor"
| | +-- Panel 0: vim src/app.py
| | +-- Panel 1: python -m pytest
| +-- Fenster 1: "logs"
| +-- Panel 0: tail -f /var/log/app.log
|
+-- Sitzung: "deployment"
+-- Fenster 0: "haupt"
+-- Panel 0: ansible-playbook deploy.yml
Der Präfix-Key signalisiert tmux, dass die nächste Taste ein Befehl ist. Standard-Präfix ist Ctrl+b.
Wichtige Tastenkürzel
Vollständige Referenz für den täglichen tmux-Gebrauch (Standard-Präfix Ctrl+b):
| Aktion | Tastenkürzel |
|---|---|
| Sitzungen | |
| Von Sitzung trennen | Ctrl+b d |
| Sitzungen auflisten und wechseln | Ctrl+b s |
| Aktuelle Sitzung umbenennen | Ctrl+b $ |
| Vorherige Sitzung | Ctrl+b ( |
| Nächste Sitzung | Ctrl+b ) |
| Fenster | |
| Neues Fenster erstellen | Ctrl+b c |
| Aktuelles Fenster umbenennen | Ctrl+b , |
| Nächstes Fenster | Ctrl+b n |
| Vorheriges Fenster | Ctrl+b p |
| Fenster nach Nummer wechseln | Ctrl+b 0-9 |
| Fenster auflisten und auswählen | Ctrl+b w |
| Aktuelles Fenster schließen | Ctrl+b & |
| Panels | |
| Vertikal teilen | Ctrl+b % |
| Horizontal teilen | Ctrl+b " |
| Zwischen Panels navigieren | Ctrl+b ←↑↓→ |
| Panels durchschalten | Ctrl+b o |
| Panel-Nummern anzeigen | Ctrl+b q |
| Panel zoomen (Vollbild) | Ctrl+b z |
| Mit vorherigem Panel tauschen | Ctrl+b { |
| Mit nächstem Panel tauschen | Ctrl+b } |
| Panel in eigenes Fenster | Ctrl+b ! |
| Aktuelles Panel schließen | Ctrl+b x |
| Layouts durchschalten | Ctrl+b Space |
| Kopiermodus | |
| Kopiermodus aktivieren | Ctrl+b [ |
| Puffer einfügen | Ctrl+b ] |
| Kopiermodus verlassen | q |
| Sonstiges | |
| Befehlszeile öffnen | Ctrl+b : |
| Alle Tastenkürzel anzeigen | Ctrl+b ? |
| Konfiguration neu laden | Ctrl+b r |
Sitzungsverwaltung
Sitzungen erstellen
# Neue unbenannte Sitzung
tmux
# Neue benannte Sitzung (immer bevorzugen)
tmux new -s arbeit
# Sitzung mit einem bestimmten Befehl
tmux new -s logs "tail -f /var/log/syslog"
# Sitzung in einem bestimmten Verzeichnis
tmux new -s api -c /var/www/api
Sitzungen auflisten und wechseln
tmux ls
# Beispielausgabe:
# deployment: 2 Fenster (erstellt So 22 Mär 09:15:22 2026)
# monitor: 1 Fenster (erstellt So 22 Mär 08:30:15 2026) (angehängt)
# arbeit: 3 Fenster (erstellt So 22 Mär 07:45:00 2026)
Anhängen und Trennen
# Trennen (Sitzung läuft weiter): Ctrl+b d
# An die letzte Sitzung anhängen
tmux attach
# An eine bestimmte Sitzung anhängen
tmux attach -t arbeit
# Anhängen und andere Clients trennen
tmux attach -t arbeit -d
Sitzungen umbenennen und beenden
tmux rename-session -t alter-name neuer-name
tmux kill-session -t deployment
tmux kill-session -a
tmux kill-server
Fensterverwaltung
# Neues Fenster erstellen: Ctrl+b c
# Aktuelles Fenster umbenennen: Ctrl+b ,
# Zu Fenster 0 wechseln: Ctrl+b 0
# Nächstes/vorheriges: Ctrl+b n / Ctrl+b p
# Fenster auflisten: Ctrl+b w
# Fenster schließen: Ctrl+b &
Panel-Verwaltung
Teilen
# Vertikale Teilung (Panels nebeneinander): Ctrl+b %
# Horizontale Teilung (Panels übereinander): Ctrl+b "
Panels skalieren
# Feinskalierung: Ctrl+b, dann Ctrl + Pfeil gedrückt halten
# Über Befehlszeile (Ctrl+b :):
resize-pane -D 10 # Unten 10 Zeilen
resize-pane -U 10 # Oben 10 Zeilen
resize-pane -L 20 # Links 20 Spalten
resize-pane -R 20 # Rechts 20 Spalten
Panel-Layouts
Tmux hat fünf integrierte Layouts, die Sie mit Ctrl+b Space durchschalten können:
even-horizontal— Panels nebeneinander, gleiche Breiteeven-vertical— Panels übereinander, gleiche Höhemain-horizontal— ein großes Panel oben, kleinere Panels untenmain-vertical— ein großes Panel links, kleinere Panels rechtstiled— Panels im Raster
Panels trennen und verbinden
# Panel in eigenes Fenster konvertieren: Ctrl+b !
# Panel aus einem anderen Fenster einbinden (via Ctrl+b :)
join-pane -s 2.0 # Panel 0 aus Fenster 2 in aktuelles Fenster verschieben
join-pane -t 3 # Aktuelles Panel in Fenster 3 verschieben
Kopiermodus
Der Kopiermodus gibt Ihnen vollen Zugriff auf den Scroll-Puffer mit Suche und Textauswahl.
Kopiermodus aktivieren und navigieren
# Kopiermodus aktivieren
Ctrl+b [
# Navigation
Pfeiltasten # Cursor bewegen
BildAuf / BildAb # Seitenweise scrollen
g # Zum Anfang des Puffers
G # Zum Ende des Puffers
/suchbegriff # Vorwärts suchen
?suchbegriff # Rückwärts suchen
n / N # Nächste / vorherige Übereinstimmung
q # Verlassen
Vi-Modus (Empfohlen)
Zur ~/.tmux.conf hinzufügen:
setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
Im Kopiermodus:
v # Auswahl beginnen
y # Auswahl kopieren
Ctrl+b ] # Einfügen
Benutzerdefinierte ~/.tmux.conf Konfiguration
Vollständige Startkonfiguration
# ~/.tmux.conf
# Präfix
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Maus
set -g mouse on
# Farben
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# Scroll-Puffer
set -g history-limit 50000
# Vi-Modus
setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
# Indizierung
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# Kein Escape-Delay
set -sg escape-time 0
# Panel-Teilungen
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# Neu laden
bind r source-file ~/.tmux.conf \; display-message "Konfiguration neu geladen"
# Statusleiste
set -g status-position bottom
set -g status-style "bg=#1a1b26,fg=#a9b1d6"
set -g status-left "#[fg=#06b6d4,bold] #S "
set -g status-left-length 30
set -g status-right "#[fg=#a9b1d6] %Y-%m-%d %H:%M "
setw -g window-status-format " #I:#W "
setw -g window-status-current-format "#[fg=#06b6d4,bold] #I:#W* "
Tmux Plugin Manager (tpm) und wichtige Plugins
tpm installieren
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Am Ende von ~/.tmux.conf hinzufügen:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
run '~/.tmux/plugins/tpm/tpm'
Drücken Sie Ctrl+a I, um die Plugins zu installieren.
tmux-resurrect
Speichert und stellt tmux-Sitzungen nach Server-Neustarts wieder her.
# Sitzung speichern: Ctrl+a Ctrl+s
# Sitzung wiederherstellen: Ctrl+a Ctrl+r
tmux-continuum
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
tmux-Scripting
4-Panel-Entwicklungsumgebung
#!/usr/bin/env bash
# dev-umgebung.sh
SESSION="dev"
tmux has-session -t "$SESSION" 2>/dev/null && tmux attach -t "$SESSION" && exit
tmux new-session -d -s "$SESSION" -n "editor" -c ~/projekte/api
tmux split-window -h -t "$SESSION:editor" -c ~/projekte/api
tmux split-window -v -t "$SESSION:editor.0" -c ~/projekte/api
tmux split-window -v -t "$SESSION:editor.1" -c ~/projekte/api
tmux select-layout -t "$SESSION:editor" tiled
tmux send-keys -t "$SESSION:editor.0" "vim ." Enter
tmux send-keys -t "$SESSION:editor.1" "npm run dev" Enter
tmux send-keys -t "$SESSION:editor.2" "npm run test -- --watch" Enter
tmux send-keys -t "$SESSION:editor.3" "git log --oneline -10" Enter
tmux new-window -t "$SESSION" -n "logs" -c ~/projekte/api
tmux send-keys -t "$SESSION:logs" "tail -f logs/app.log" Enter
tmux select-window -t "$SESSION:editor"
tmux select-pane -t "$SESSION:editor.0"
tmux attach -t "$SESSION"
tmux vs Screen vs Zellij vs Byobu
| Funktion | tmux | GNU Screen | Zellij | Byobu |
|---|---|---|---|---|
| Vertikale Teilungen | Integriert | Benötigt Patch | Integriert | Via tmux/screen |
| Konfigurationssyntax | Sauber | Komplex | YAML/KDL | Vereinfachtes tmux |
| Plugin-Ökosystem | Ausgereift (tpm) | Minimal | Wachsend | Erbt von tmux |
| Scripting-Support | Ausgezeichnet | Begrenzt | Moderat | Begrenzt |
| Mausunterstützung | Ausgezeichnet | Begrenzt | Ausgezeichnet | Ausgezeichnet |
| Persistenz nach Neustart | Mit tmux-resurrect | Nein | Nein | Mit tmux-resurrect |
| Aktive Entwicklung | Ja | Minimal | Ja (Rust) | Minimal |
| Am besten für | Erfahrene Nutzer, DevOps | Legacy-Systeme | Einsteiger | Schnellstart |
Praktische Workflows
Lang laufendes Deployment
ssh deploy@prod-01.beispiel.de
tmux new -s migration
./scripts/migration-ausfuehren.sh
# Trennen: Ctrl+a d
exit
# Stunden später
ssh deploy@prod-01.beispiel.de
tmux attach -t migration
Server-Monitoring-Dashboard
+---------------------------+---------------------------+
| | |
| Panel 0: htop | Panel 1: df -h (watch) |
| | |
+---------------------------+---------------------------+
| | |
| Panel 2: tail syslog | Panel 3: netstat |
| | |
+---------------------------+---------------------------+
Zusammenfassung
Tmux löst die zwei grundlegenden Probleme der Remote-Server-Arbeit: Sitzungspersistenz und Terminal-Organisation. Wichtigste Erkenntnisse:
- Sitzungen überleben SSH-Abbrüche — trennen mit
Ctrl+a d, neu verbinden undtmux attach -t nameverwenden - Drei-Ebenen-Hierarchie — Sitzungen enthalten Fenster, Fenster enthalten Panels
- Präfix-Taste —
Ctrl+bstandardmäßig,Ctrl+aempfohlen in~/.tmux.conf - Zoom (
Ctrl+b z) — maximiert ein Panel temporär ohne das Layout zu verlieren - Kopiermodus (
Ctrl+b [) — Scrollen, Suchen und Kopieren ohne tmux zu verlassen - tpm-Plugins — tmux-resurrect speichert Sitzungen nach Neustarts, tmux-continuum speichert automatisch
- Alles automatisieren —
tmux new-session,split-window,send-keysundselect-layoutfür reproduzierbare Umgebungen