screen und tmux sind Terminal-Multiplexer. Sie ermöglichen es, Prozesse am Laufen zu halten, auch wenn Sie die SSH-Verbindung trennen.

Warum Terminal-Multiplexer?

Ohne screen/tmux:

  • SSH-Verbindung bricht ab → Prozess stoppt
  • Lange Aufgaben (Backup, Kompilieren) müssen neu gestartet werden

Mit screen/tmux:

  • Prozesse laufen im Hintergrund weiter
  • Session kann jederzeit wieder verbunden werden
  • Mehrere Terminals in einer SSH-Verbindung

screen

screen ist der Klassiker, auf fast jedem System verfügbar.

Installation

apt install screen    # Debian/Ubuntu
dnf install screen    # CentOS/AlmaLinux

Neue Session starten

screen

Mit Namen (empfohlen):

screen -S backup

Befehle in screen

Alle Befehle beginnen mit Ctrl+a:

TastenkombinationAktion
Ctrl+a dSession trennen (detach)
Ctrl+a cNeues Fenster
Ctrl+a nNächstes Fenster
Ctrl+a pVorheriges Fenster
Ctrl+a "Fenster-Liste
Ctrl+a AFenster umbenennen
Ctrl+a kFenster beenden (kill)
Ctrl+a ?Hilfe

Session trennen

Ctrl+a d

Oder von außen:

screen -d session-name

Sessions auflisten

screen -ls

Ausgabe:

There are screens on:
    12345.backup    (Detached)
    12346.webserver (Attached)

Session wieder verbinden

screen -r backup

Wenn nur eine Session:

screen -r

Session beenden

In der Session:

exit

Oder:

screen -X -S backup quit

Praktisches Beispiel

# Neue Session für Backup
screen -S backup

# Backup starten
rsync -avz /var/www/ backup-server:/backup/

# Session trennen (Ctrl+a d)
# SSH-Verbindung kann beendet werden

# Später wieder verbinden
screen -r backup

tmux

tmux ist moderner und flexibler als screen.

Installation

apt install tmux    # Debian/Ubuntu
dnf install tmux    # CentOS/AlmaLinux

Neue Session starten

tmux

Mit Namen:

tmux new -s backup

Befehle in tmux

Alle Befehle beginnen mit Ctrl+b:

TastenkombinationAktion
Ctrl+b dSession trennen
Ctrl+b cNeues Fenster
Ctrl+b nNächstes Fenster
Ctrl+b pVorheriges Fenster
Ctrl+b wFenster-Liste
Ctrl+b ,Fenster umbenennen
Ctrl+b &Fenster beenden
Ctrl+b ?Hilfe

Panes (Fenster teilen)

tmux kann das Terminal teilen:

TastenkombinationAktion
Ctrl+b %Vertikal teilen
Ctrl+b "Horizontal teilen
Ctrl+b PfeiltastenZwischen Panes wechseln
Ctrl+b xAktuelles Pane schließen
Ctrl+b zPane maximieren/minimieren
Ctrl+b Ctrl+PfeiltastenPane-Größe ändern

Sessions verwalten

# Sessions auflisten
tmux ls

# Session verbinden
tmux attach -t backup
tmux a -t backup

# Session beenden
tmux kill-session -t backup

Scrollen in tmux

Ctrl+b [ aktiviert den Scroll-Modus. Mit Pfeiltasten oder Page Up/Down scrollen. q zum Beenden.

screen vs. tmux

Aspektscreentmux
VerfügbarkeitÜberallMeist installiert
Konfiguration~/.screenrc~/.tmux.conf
PrefixCtrl+aCtrl+b
PanesMöglichBesser
ScriptingEinfachMächtig
Status-LeisteOptionalStandard

tmux-Konfiguration

Erstellen Sie ~/.tmux.conf:

# Prefix auf Ctrl+a ändern (wie screen)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# Mausunterstützung
set -g mouse on

# Fenster bei 1 starten
set -g base-index 1
setw -g pane-base-index 1

# Bessere Farben
set -g default-terminal "screen-256color"

# Status-Leiste
set -g status-style bg=black,fg=white
set -g status-left '#[fg=green]#S '
set -g status-right '#[fg=yellow]%H:%M'

# Schnelleres Escape
set -sg escape-time 0

# History-Größe
set -g history-limit 10000

# Einfacheres Teilen
bind | split-window -h
bind - split-window -v

Nach Änderungen neu laden:

tmux source-file ~/.tmux.conf

Praktische Anwendungen

Lange Aufgaben

# Session starten
tmux new -s upgrade

# System-Update
apt update && apt upgrade -y

# Trennen (Ctrl+b d)
# Später prüfen
tmux a -t upgrade

Mehrere Dienste überwachen

tmux new -s monitoring

# Fenster teilen
Ctrl+b %    # Vertikal
Ctrl+b "    # Horizontal

# In jedem Pane einen Befehl:
# Pane 1: htop
# Pane 2: tail -f /var/log/syslog
# Pane 3: tail -f /var/log/nginx/access.log

Entwicklungsumgebung

tmux new -s dev

# Fenster 1: Editor
vim projekt/

# Neues Fenster (Ctrl+b c)
# Fenster 2: Git
git status

# Neues Fenster
# Fenster 3: Server
npm run dev

Team-Arbeit (Pair Programming)

Beide verbinden sich zur selben Session:

# Person 1 erstellt
tmux new -s shared

# Person 2 verbindet
tmux attach -t shared

Beide sehen und können tippen.

Tipps

Automatisch starten

In .bashrc:

# Automatisch tmux bei SSH-Login
if [ -z "$TMUX" ] && [ -n "$SSH_CONNECTION" ]; then
    tmux attach -t main || tmux new -s main
fi

Session-Wiederherstellung

Mit tmux-resurrect Plugin können Sessions nach Neustart wiederhergestellt werden.

Kopieren in tmux

1. Ctrl+b [ - Copy-Modus 2. Leertaste - Markierung starten 3. Pfeiltasten - Text auswählen 4. Enter - Kopieren 5. Ctrl+b ] - Einfügen

Häufige Probleme

"no sessions" Fehler

# Session existiert nicht
tmux ls    # Prüfen welche Sessions existieren

Verbindung zur falschen Session

# Spezifisch verbinden
tmux attach -t sessionname

Scroll funktioniert nicht

In tmux: Ctrl+b [ für Scroll-Modus.

Fazit

Terminal-Multiplexer sind unverzichtbar für die Server-Administration. tmux ist moderner und flexibler, screen ist überall verfügbar. Nutzen Sie benannte Sessions für bessere Organisation.