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:
| Tasten | Aktion |
|---|---|
Strg+a d | Sitzung trennen (detach) |
Strg+a c | Neues Fenster erstellen |
Strg+a " | Alle Fenster auflisten |
Strg+a 0-9 | Zu Fenster mit dieser Nummer wechseln |
Strg+a Strg+a | Zwischen letzten zwei Fenstern wechseln |
Strg+a A | Aktuelles Fenster umbenennen |
Strg+a ? | Hilfe anzeigen |
Bildschirm teilen
Du kannst den Bildschirm in mehrere Bereiche aufteilen:
| Tasten | Aktion |
|---|---|
Strg+a S | Horizontal teilen |
Strg+a | | Vertikal teilen |
Strg+a Tab | Zwischen Bereichen wechseln |
Strg+a X | Aktuellen Bereich schließen |
Strg+a Q | Alle 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 startenStrg+ad– Sitzung trennenscreen -ls– Alle Sitzungen auflistenscreen -r name– Sitzung wiederherstellen
Prozesse innerhalb einer Screen-Sitzung laufen unabhängig von deiner Verbindung weiter.