GNU Screen — ein nützliches Werkzeug

Ein von mir unter Linux häufig verwendeter Helfer ist der Terminalmultiplexer GNU Screen. Dieses Programm will ich hier kurz vorstellen.

Anwendungsszenario

Typischerweise nutze ich die Software, wenn ich per SSH auf einem entfernten Rechner arbeite. Ein häufiger Anwendungsfall ist, dass ich nur eine einzige Sitzung zum entfernten Rechner herstellen will, dort aber mehrere Bildschirme bnötige, um verschiedene Arbeitsschritt parallel auszuführen.

Ein weiterer Anwendungsfall ist, dass ich auf dem entfernten Rechner in der Shell einen Vorgang beginne, an dem ich später weiter arbeiten will, wobei später durchaus auch mehrere Tage sein kann. In der Zwischenzeit möchte ich die ssh-Verbindung beenden. Wenn ich mich dann einige Zeit später wieder mit dem entfernten Rechner verbinde, dann möchte ich in der Shell dort weiter arbeiten, wo ich zuvor aufgehört habe.

Beide Szenarien werden von Screen ermöglicht.

Installation

Die Installation unter den Fedora-basierten Distributionen (bspw. RHEL/CentOS oder Fedora selbst) erfolgt mittels:

Installation mittels YUM

# sudo yum install screen
...

Auf neueren Distributionen wird DNF anstatt YUM verwendet. Unter anderen Distributionen erfolgt die Installation analog.

Grundlegender Workflow

Wie üblich meldet man sich per SSH am Rechner an. Dann startet man das Programm:

Aufruf des Programms in verschiedenen Varianten

# screen
...

# screen -x
...

# sudo screen
...

# sudo screen -x
...

Mit dem ersten der genannten Befehl wird eine neue Instanz des Programms gestartet. Mit der Option -x verbindet man sich zu einer bereits zuvor gestarteten Instanz, die noch nicht wieder beendet wurde. Sofern mehrere Instanzen aktiv sind gibt es entsprechende Optionen, um die gewünschte auszuwählen. Dies nutze ich, um zu meiner Arbeitsumgebung zurück zu kehren, die ich beim letzten Login auf diesen Rechner begonnen habe. Teilweise führe ich Verwaltungsaufgaben durch bei denen ich root-Zugriff benötige, in diesem Fall stelle ich das sudo voran.

Nachdem ich das Programm gestartet habe befinde ich mich auf der Shell. Hier beginne ich nun meine Arbeit. Sobald ich eine weitere virtuelle Konsole benötige drücke ich die Tastenfolde Ctrl-a c. Dies öffnet eine neue virtuelle Konsole mit einer eigenen Shell. Dabei wird der bisherige Inhalt des Fensters durch die neue virtuelle Konsole ersetzt. Die vorherige virtuelle Konsole ist jedoch nicht weg, sondern einfach momentan nicht sichtbar.

Um eine Übersicht über sämtlichen vorhandenen Fenster zu bekommen kann man Ctrl-a " drücken. Dadurch wird eine Liste aller Fenster angezeigt, wobei diese eine bei 0 beginnende fortlaufende Nummerierung haben. In dieser Liste kann man mit Up und Down rauf und runter wandern bzw. mit <n> direkt zu dem Eintrag mit der Nummer n springen, wobei <n> die entsprechende fortlaufende Nummer ist. Mit Return wird dann das entsprechende Fenster ausgewählt. Nun sieht man die mit diesem Fenster verbundene virtuelle Konsole.

Häufig verwendete Tastenkürzel

TastenkürzelFunktion
Ctrl-a ?Key bindings anzeigen
Ctrl-a Ctrl-wwird oben angezeigt
Ctrl-a Tabnext window
Ctrl-a Ssplit
Ctrl-a *list displays
Ctrl-a '(n=0, ..1) ...
Ctrl-a 0..9...
Ctrl-a "list windows
Ctrl-a Ctrl-cnew window with shell
Ctrl-a Awindow title setzen
Ctrl-a wwindow list
Ctrl-a Xkill region
Ctrl-a xlock server

Änderungshistorie

10/9/2019
Dokument erstellt