Der Befehl screen ist ein Terminal-Multiplexer. Er ermöglicht es dir, mehrere virtuelle Terminals in einer einzigen Sitzung zu verwalten – und diese Sitzungen laufen weiter, selbst wenn du die Verbindung trennst.

Das löst ein häufiges Problem: Du führst einen lang laufenden Prozess auf einem Server aus, die SSH-Verbindung bricht ab, und deine Arbeit ist verloren. Mit screen passiert das nicht. Du trennst die Sitzung, die Prozesse laufen weiter, und du verbindest dich später wieder.

Installation

Auf den meisten Distributionen ist screen bereits installiert. Prüfe es mit:

screen --version

Falls nicht vorhanden, installiere es über den Paketmanager:

Ubuntu/Debian:

sudo apt update
sudo apt install screen

CentOS/Fedora:

sudo yum install screen

Eine Sitzung starten

Starte eine neue Screen-Sitzung:

screen

Das öffnet ein neues virtuelles Terminal. Optisch ändert sich wenig – du siehst eine normale Shell. Der Unterschied: Diese Shell läuft jetzt innerhalb von screen.

Benannte Sitzungen

Bei mehreren gleichzeitigen Sitzungen helfen Namen bei der Übersicht:

screen -S backup

Wähle einen aussagekräftigen Namen, der den Zweck der Sitzung beschreibt.

Tastenkombinationen

Alle Screen-Befehle beginnen mit dem Präfix Strg+a, gefolgt von einem weiteren Tastendruck.

Die wichtigsten Kombinationen:

TastenAktion
Strg+a dSitzung trennen (detach)
Strg+a cNeues Fenster erstellen
Strg+a "Alle Fenster auflisten
Strg+a 0-9Zu Fenster mit dieser Nummer wechseln
Strg+a Strg+aZwischen letzten zwei Fenstern wechseln
Strg+a AAktuelles Fenster umbenennen
Strg+a ?Hilfe anzeigen

Bildschirm teilen

Du kannst den Bildschirm in mehrere Bereiche aufteilen:

TastenAktion
Strg+a SHorizontal teilen
Strg+a |Vertikal teilen
Strg+a TabZwischen Bereichen wechseln
Strg+a XAktuellen Bereich schließen
Strg+a QAlle Bereiche außer aktuellem schließen

Sitzung trennen und wiederherstellen

Trennen

Drücke Strg+a d, um die Sitzung zu trennen. Alle Prozesse innerhalb der Sitzung laufen weiter – auch wenn du dich vom Server abmeldest.

Wiederherstellen

Verbinde dich wieder mit einer getrennten Sitzung:

screen -r

Falls mehrere Sitzungen existieren, zeigt screen -r eine Fehlermeldung. Liste zuerst alle Sitzungen auf:

screen -ls

Ausgabe:

There are screens on:
    10835.backup    (Detached)
    10366.monitoring    (Detached)
2 Sockets in /run/screen/S-user.

Verbinde dich dann mit der gewünschten Sitzung über die ID oder den Namen:

screen -r 10835

Oder:

screen -r backup

Sitzung beenden

Beende alle Fenster innerhalb der Sitzung mit exit oder Strg+d. Sobald das letzte Fenster geschlossen ist, endet die Sitzung.

Alternativ kannst du eine Sitzung von außen beenden:

screen -X -S backup quit

Konfiguration

Screen liest beim Start die Dateien /etc/screenrc (systemweit) und ~/.screenrc (benutzerspezifisch).

Eine nützliche Basis-Konfiguration für ~/.screenrc:

# Willkommensnachricht deaktivieren
startup_message off

# Scrollback-Puffer vergrößern (Standard: 100 Zeilen)
defscrollback 10000

# Visuelle Benachrichtigung statt Piepton
vbell on

# Statuszeile am unteren Rand
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d.%m %{W}%c %{g}]'

Die Statuszeile zeigt den Hostnamen, alle Fenster und die aktuelle Uhrzeit an.

Praktische Anwendungsfälle

Lang laufende Prozesse

Starte einen Backup-Prozess, der Stunden dauern kann:

screen -S backup
rsync -avz /home/user/ /mnt/backup/

Trenne die Sitzung mit Strg+a d. Das Backup läuft weiter, auch wenn du die SSH-Verbindung beendest.

Mehrere Aufgaben parallel

Erstelle eine Sitzung mit mehreren Fenstern:

screen -S arbeit

Im ersten Fenster läuft dein Editor. Drücke Strg+a c für ein neues Fenster mit einer Shell für Befehle. Mit Strg+a " siehst du alle Fenster und kannst zwischen ihnen wechseln.

Server-Logs überwachen

Starte eine Sitzung, die Logs anzeigt:

screen -S logs
tail -f /var/log/syslog

Du kannst die Sitzung trennen und dich jederzeit wieder verbinden, um den aktuellen Stand zu sehen.

Zusammenfassung

Der Befehl screen löst das Problem abbrechender Verbindungen bei lang laufenden Prozessen. Die wichtigsten Aktionen:

  • screen -S name – Neue benannte Sitzung starten
  • Strg+a d – Sitzung trennen
  • screen -ls – Alle Sitzungen auflisten
  • screen -r name – Sitzung wiederherstellen

Prozesse innerhalb einer Screen-Sitzung laufen unabhängig von deiner Verbindung weiter.