AA-123RF-22993131-lightwise-123rf.jpg

© lightwise, 123RF

Der Terminal-Multiplexer Screen in der Praxis

Geteilter Ansicht

Mit Screen verwalten Sie bequem viele Terminalfenster in einer einzigen Sitzung. Vor allem für Admins, die ihr tägliches Werk ohne grafische Umgebung verrichten, bietet ein Terminal-Multiplexer zahlreiche Annehmlichkeiten.

Auch in Zeiten, in denen auf dem Schreibtisch eines Administrators Rechner mit leistungsfähigen Prozessoren und mehrere Monitore mit tollen grafischen Oberflächen stehen, gilt es, die Server in den Rechenzentren und entsprechenden, oft weit abgelegenen Räumen nach wie vor über die Kommandozeile zu steuern. Upgrades, Neuinstallationen, Programmentwicklung und Monitoring – da kommen viele Dinge zusammen, die parallel laufen müssen. Oft hockt der Admin vor etlichen Terminalsitzungen und greift auf diesem Weg auf einen oder mehrere Server zu. Viele Fenster bergen jedoch die Gefahr, im Chaos die Übersicht zu verlieren.

Terminal-Multiplexer wie Tmux oder Screen bringen Ordnung in das Chaos: Sie ermöglichen unter anderem mehrere Terminalfenster in einer Sitzung und erlauben das Parken und Wiederaufrufen einer Session, ohne die darin laufenden Prozesse zu unterbrechen. Das hilft auch dann, wenn sich überraschend eine Netzverbindung verabschiedet. Zudem lassen sich Sitzungen mit Kollegen teilen, was bei kniffligen Problemen oft schneller zu einer Lösung führt.

Wir werfen hier einen näheren Blick auf das Multiplexer-Urgestein GNU Screen [1]. Es wurde 1987 von Oliver Laumann an der Technischen Universität Berlin unter dem Namen BSD Screen entwickelt und über die User-Group Net.sources veröffentlicht. In den Jahren 1993 bis 2002 entwickelten hauptsächlich Jürgen Weigert und Michael Schroeder von der Universität Erlangen Screen weiter. Wayne Davison übernahm den Staffelstab 2004, bevor der Multiplexer in einen mehrjährigen Dornröschenschlaf versank, währenddessen es nur sehr geringfügige Neuerungen gab. Umso mehr überraschte es, als Anfang dieses Jahres der aktuelle Maintainer Amadeusz Slawinski die Veröffentlichung einer neuen Screen-Version bekannt gab [2].

Screen bietet deutlich mehr als nur weiterlaufende und von andernorts wieder aufrufbare Prozesse in einem Terminalfenster oder kollaborativen Zugriff auf die Kommandozeile. Innerhalb einer Screen-Session lassen sich mehrere Terminalfenster öffnen, Tastatureingaben loggen oder Inhalte zwischen zwei Fenstern auszutauschen. Arbeitet in einem Terminal etwa ein länger laufender Prozess, lässt sich Screen anweisen, eine Benachrichtigung auszugeben, sobald es Änderungen auf der Kommandozeilenebene gibt. Daneben lässt sich ein Fenster auch teilen, sodass man mehrere Sitzungen parallel einsieht.

Installation

GNU Screen lässt sich unter allen gängigen Distributionen schnell und bequem aus den Paketquellen installieren. Unter Debian und dessen Derivaten wie Ubuntu oder Mint installieren Sie den Multiplexer mit apt-get install screen. Anwender von Arch Linux behelfen sich mit pacman -S screen. Möchten Sie die neueste Version installieren, müssen Sie den Quellcode [3] herunterladen und mit dem klassischen Dreischritt ./configure; make; sudo make install selbst kompilieren.

Screen im Einsatz

Sie starten den Terminalmultiplexer über den simplen Aufruf screen. Je nach Distribution lädt Screen in einem Infoschirm oder direkt in einem Terminalfenster. In diesem geben Sie Ihre Befehle genauso ein, wie Sie es in einem gewöhnlichen Terminal auch tun – so weit, so gut. Der einzige Vorteil besteht bisher darin, dass sich die Screen-Session wieder aufrufen lässt, falls die Verbindung einmal abbricht. Doch Screen kann viel mehr.

Bei der Arbeit mit Screen kommen Sie um das Verinnerlichen einiger Tastenkürzel nicht herum. Screen benutzt [Strg]+[A] als Steuersignal für weitere Kommandos. Geben Sie etwa danach noch ein [C] ein, öffnen Sie innerhalb von Screen ein weiteres Fenster. [Strg]+[A],[Umschalt]+[2] listet alle Fenster auf und erlaubt einen Wechsel (Abbildung 1) zwischen ihnen. Alternativ nutzen Sie die Nummer aus der Übersicht und springen direkt mit [Strg]+[A] gefolgt von der Fensternummer (zwischen 0 und 9) in das gewünschte Fenster. [Strg]+[A] gefolgt von der Eingabe eines Fragezeichens zeigt Ihnen eine Übersicht über alle Tastenkommandos an. Mit [Strg]+[A],[K] beenden Sie das Fenster wieder; das Schließen des letzten Fensters terminiert auch die Screen-Sitzung.

Abbildung 1: Screen verwaltet innerhalb einer Sitzung mehrere Fenster, die Sie individuell benennen dürfen.

Sollte der ungewöhnliche Fall eintreten, dass Sie in einer Session mehr als zehn Terminalfenster starten, dann wechseln Sie mittels [Strg]+[A] und [Umschalt]+[#], gefolgt von der Nummer, in ein Fenster mit einer mehrstelligen Nummer. Dazu muss Screen allerdings mit einer höheren MAXWIN-Einstellung kompiliert worden sein. Alternativ blättern Sie mit [Strg]+[A] gefolgt von [N] beziehungsweise [P] vor- oder rückwärts durch die Fenster. In welchem Fenster Sie sich gerade befinden, erfahren Sie mit [Strg]+[A],[W].

Nutzen Sie mehrere Screen-Fenster, dann verlieren Sie schnell die Übersicht, da beim Einsatz der Bash-Shell sämtliche Fenster einfach nur bash heißen – wo welcher Prozess läuft, lässt sich nicht erkennen. Sie könnten sich nun merken, was sich hinter den einzelnen Fensternummern verbirgt. Besser helfen Sie sich allerdings mit [Strg]+[A],[Umschalt]+[A] und der Möglichkeit, jedem Fenster einen eigenen Namen zu geben. So wissen Sie sofort, ob das Update in Fenster 7 oder 9 läuft und die Config-Datei mit Vim im Fenster 5 bearbeitet wird. Setzen Sie einmal ungewollt das Kommandozeichen an Screen ab, teilen Sie Screen mithilfe von [AltGr]+[Q] mit, dass es sich um einen Irrtum handelt.

Murphys Gesetz verlangt, dass Sie immer dann die Laufzeit eines Prozesses unterschätzen, wenn Sie zu einer festen Uhrzeit das Büro verlassen müssen. Kandidaten dafür sind beispielsweise ein vollständiger Scan des Netzwerks oder eine komplette LaTeX-Installation. Haben Sie solch einen Vorgang in weiser Voraussicht in einer Screen-Sitzung gestartet, dann koppeln Sie die Sitzung mit [Strg]+[A],[D] einfach vom Terminal ab. Später loggen Sie sich via SSH auf dem Server ein und nehmen die Sitzung mit screen -r wieder auf.

Führen Sie mehrere Sitzungen parallel aus, geben Sie dem Aufruf noch die zu Screen gehörige PID mit, die Sie mittels screen -ls zutage fördern. Alternativ geben Sie der Screen-Session beim Start mit dem Parameter -S <§§I>Titel<§§I> einen Namen mit. Läuft die Sitzung bereits, wechseln Sie mit [Strg]+[A],[Umschalt]+[.] auf die Screen-Kommandozeile und benennen dann die Sitzung mithilfe des Kommandos sessionname <§§I>Titel<§§I>.

Auf Wunsch informiert Sie Screen über den Fortschritt eines lang laufenden Prozesses. Laden Sie beispielsweise große Dateien herunter, migrieren Server oder kompilieren große Programme, weisen Sie Screen mit [Strg]+[A],[Umschalt]+[M] und [Strg]+[A],[Umschalt]+[-] an, kurz Bescheid zu geben, wenn es in einem Fenster Aktivitäten feststellt oder ein Job abgeschlossen wurde.

Alternativ teilen Sie das Screen-Fenster in mehrere Bereiche und behalten so länger laufende Prozesse im Blick (Abbildung 2). Ältere Screen-Versionen erlauben nur ein horizontales Teilen, das Sie mit [Strg]+[A],[Umschalt]+[S] aktivieren. In den neuen Screen-Generationen ermöglicht das Programm über [Strg]+[A],[AltGr]+[<] auch eine vertikale Aufteilung. Die einzelnen Unterfenster bezeichnet Screen dabei als Regionen. Sie wechseln mit [Strg]+[A],[Tab] zwischen den sichtbaren Regionen. Mit [Strg]+[A],[Umschalt]+[X] beenden Sie die gerade aktivierte Region wieder.

Abbildung 2: Screen bietet Ihnen die Möglichkeit, das Terminalfenster in mehrere Regionen aufzuteilen.

Drückt die Blase oder muss ein Admin, der gerade vor einer Screen-Sitzung mit brisanten Informationen sitzt, seine Arbeit kurz unterbrechen, lässt sich die Sitzung mit [Strg]+[A],[X] sperren. Vorsicht: Die Sperrung verhindert nicht, dass sich jemand von einem anderen Ort in die Session hackt. Die Session wird nur nicht abgekoppelt, falls jemand sich von einem anderen Rechner anmeldet und mit screen -r -D nach ihr greift (wobei das -D für "detach" steht). Eine ungesperrte Sitzung ließe sich jetzt flugs entführen.

Logging, Copy und Paste

Es gibt Arbeiten, die gut dokumentiert werden wollen oder müssen. Dazu kopieren Admins oft im Nachhinein sämtliche Befehle und deren Ausgaben in ein Textdokument. Mit Screen klappt dies viel einfacher: Auf Wunsch protokolliert das Programm alle Ein- und Ausgaben mit. Sie aktivieren die Funktion mit der Tastenkombination [Strg]+[A],[Umschalt]+[H]. Anschließend finden Sie die Log-Datei in screenlog.<§§I>#<§§I>, wobei die Raute für die Nummer des jeweiligen Terminalfensters in der Screen-Sitzung steht (Abbildung 3).

Abbildung 3: Auf Wunsch schreibt Screen sämtliche Ein- und Ausgaben in einer Protokolldatei mit.

Screen bietet Ihnen auch die Möglichkeit, innerhalb eines Fensters verschiedene Passagen zu kopieren. Dazu wechseln Sie mittels [Strg]+[A],[AltGr]+[8] oder [Strg]+[A],[Esc] in den Kopiermodus. In diesem navigieren Sie mit den Pfeiltasten oder nach Vim-Manier mit [H],[J],[K] oder [L] durch die Ausgaben. An der Startstelle angelangt, betätigen Sie die Leertaste und markieren den zu kopierenden Inhalt (Abbildung 4). Durch ein erneutes Drücken der Leertaste kopiert Screen alles in einen Puffer, den Sie anschließend mit [Strg]+[A],[AltGr]+[9] wieder ausgeben.

Abbildung 4: Sollten Sie vergessen haben, das Log zu aktivieren, lassen sich Inhalte der Screen-Sitzung per Copy & Paste zwischen den Fenstern übertragen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • screen verwaltet Terminalsitzungen
    Mit "screen" starten Sie ein "Terminal im Terminal" und verwalten mehrere Shell-Sitzungen in einem einzigen Fenster. Wie Sie damit effektiver auf der Kommandozeile arbeiten und auf einem entfernten Rechner Prozesse nach dem Abmelden weiterlaufen lassen, zeigt dieser Artikel.
  • Zu Befehl: screen
    Der Desktop, unendliche Weiten – in welchem Terminal war gleich…? Mit dem Programm screen verwalten Sie mehrere virtuelle Konsolen in einem einzigen Terminal-Fenster, lassen Prozesse auf entfernten Servern weiterlaufen (während Sie längst vom System abgemeldet sind) und schauen anderen Benutzern – mit deren Zustimmung – auf die Finger.
  • Screen
    Machen Sie der Konsole Ihre Aufwartung – anstelle vieler einzelner Terminals verwalten Sie alle wichtigen Kommandozeilenprogramme in nur einem Programmfenster. Wer mag, lädt andere Benutzer zu Besuch ein und schmückt das Fenster ansprechend.
  • Auf allen Schirmen
    Screen erleichtert die Arbeit mit verschiedenen Shells und Konsolentools. Wir zeigen Ihnen Tricks und Kniffe, um mit dem Terminal-Multiplexer noch komfortabler zu arbeiten.
  • Viele Sitzungen in einem Terminal verwalten mit Tmux
    Mit dem Multiplexer Tmux rüsten Sie ein einfaches Terminal um Fähigkeiten auf, die es fast zu einem Windowmanager machen.
Kommentare

Infos zur Publikation

LU 10/2017: Daten retten & sichern

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...