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/AlmaLinuxNeue Session starten
screenMit Namen (empfohlen):
screen -S backupBefehle in screen
Alle Befehle beginnen mit Ctrl+a:
| Tastenkombination | Aktion | |-------------------|--------| | Ctrl+a d | Session trennen (detach) | | Ctrl+a c | Neues Fenster | | Ctrl+a n | Nächstes Fenster | | Ctrl+a p | Vorheriges Fenster | | Ctrl+a " | Fenster-Liste | | Ctrl+a A | Fenster umbenennen | | Ctrl+a k | Fenster beenden (kill) | | Ctrl+a ? | Hilfe |
Session trennen
Ctrl+a dOder von außen:
screen -d session-nameSessions auflisten
screen -lsAusgabe:
There are screens on:
12345.backup (Detached)
12346.webserver (Attached)Session wieder verbinden
screen -r backupWenn nur eine Session:
screen -rSession beenden
In der Session:
exitOder:
screen -X -S backup quitPraktisches 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 backuptmux
tmux ist moderner und flexibler als screen.
Installation
apt install tmux # Debian/Ubuntu
dnf install tmux # CentOS/AlmaLinuxNeue Session starten
tmuxMit Namen:
tmux new -s backupBefehle in tmux
Alle Befehle beginnen mit Ctrl+b:
| Tastenkombination | Aktion | |-------------------|--------| | Ctrl+b d | Session trennen | | Ctrl+b c | Neues Fenster | | Ctrl+b n | Nächstes Fenster | | Ctrl+b p | Vorheriges Fenster | | Ctrl+b w | Fenster-Liste | | Ctrl+b , | Fenster umbenennen | | Ctrl+b & | Fenster beenden | | Ctrl+b ? | Hilfe |
Panes (Fenster teilen)
tmux kann das Terminal teilen:
| Tastenkombination | Aktion | |-------------------|--------| | Ctrl+b % | Vertikal teilen | | Ctrl+b " | Horizontal teilen | | Ctrl+b Pfeiltasten | Zwischen Panes wechseln | | Ctrl+b x | Aktuelles Pane schließen | | Ctrl+b z | Pane maximieren/minimieren | | Ctrl+b Ctrl+Pfeiltasten | Pane-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 backupScrollen in tmux
Ctrl+b [ aktiviert den Scroll-Modus. Mit Pfeiltasten oder Page Up/Down scrollen. q zum Beenden.
screen vs. tmux
| Aspekt | screen | tmux | |--------|--------|------| | Verfügbarkeit | Überall | Meist installiert | | Konfiguration | ~/.screenrc | ~/.tmux.conf | | Prefix | Ctrl+a | Ctrl+b | | Panes | Möglich | Besser | | Scripting | Einfach | Mächtig | | Status-Leiste | Optional | Standard |
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 -vNach Änderungen neu laden:
tmux source-file ~/.tmux.confPraktische 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 upgradeMehrere 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.logEntwicklungsumgebung
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 devTeam-Arbeit (Pair Programming)
Beide verbinden sich zur selben Session:
# Person 1 erstellt
tmux new -s shared
# Person 2 verbindet
tmux attach -t sharedBeide 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
fiSession-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 existierenVerbindung zur falschen Session
# Spezifisch verbinden
tmux attach -t sessionnameScroll 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.