Dienstag, 6. Oktober 2009

Tool "screen"

Und zur Abwechslung mal wieder etwas über eines der vielen Linux- bzw. GNU-Tools. In diesem Beitrag soll es um das Tool screen gehen. Wie der Name schon verrät, handelt es sich hierbei um ein Tool, dass etwas mit dem Bildschirm bzw. der Konsole zu tun hat.

screen ist ein sogenannter Bildschirmmanager, der auf Basis eines Terminals mehrere Terminals emulieren kann. Das schöne hierbei ist, dass sich Sitzungen auf diesen virtuellen Terminals jederzeit unterbrechen und später fortsetzen lassen! Zudem lassen sich Sitzungen auf virtuellen Terminals auch mit mehreren Benutzern teilen.

Dementsprechend umfangreich ist auch die Manpage des Tools. Ausgedruckt sind es 47 Seiten. Daher werde ich hier jetzt auch mal nicht auf alle Möglichkeiten des Tools eingehen. So startet der Befehl

        screen vi test.txt

den Editor VIM mit der leeren Datei test.txt in einem virtuellen Terminal. Nur der Aufruf von

        screen

startet ein virtuelles Terminal. Möchte ich hier weitere virtuelle Terminals hinzufügen, kann ich dies über die Tastenkombination STRG-a und c tun (sprich die Tasten STRG und a drücken, beide gedrückt halten und c drücken). Mit STRG-a und n kann ich zwischen den Terminals wechseln. Möchte ich nicht den Überblick über die virtuellen Terminals verlieren, kann ich mittels der Tastenkombinaten STRG-a (dann loslassen) und einem anschließenden A einen Titel vergeben.

Beenden tue ich ein virtuelles Termin entweder über die Eingabe von exit oder aber durch die Tastenkombination STRG-a (anschließend Tasten loslassen) und einem dann gedrückten q. Möchte ich die Sitzung lieber später fortsetzen, kann ich die Sitzung mit STRG-a und d vorsätzlich verlassen und sie später mit screen -r später wieder fortsetzen. Der Inhalt des virtuellen Terminals bleibt erhalten bzw. läuft bei ausgeführten Programmen weiter. Arbeite ich beispielsweise als Administrator auf einem Gerät, kann ich die virtuellen Terminals benutzen, um zum Beispiel einem anderen, (ebenfalls?) nicht vor dem Gerät sitzenden Kollegen zeigen, was ich mache. Dies geschieht, indem sich der Kollege durch den Befehl 

        screen -x

zu dieser Sitzung hinzuschaltet. Der kann hier aber auch selbst agieren und Befehl eingeben. Die Sitzung wird also geshared. Möchte ich, dass der Kollege mir zum Beispiel weiterhilft, weil ich als Benutzer root auf dem Terminal nicht weiterkomme, gehe ich auf meinem virtuellen Terminal mit dem Befehl STRG-a in den Kommandomodus und gebe die beiden folgenden Befehle ein

        multiuser on
        acladd 'benutzername'


Der Kollege mit dem Benutzernamen 'benutzername' kann sich nun mit dem Befehl screen -c root/ mit meiner root-Sitzung verbinden. Sollte dies nicht funktionieren, bitte nachschauen, ob das s-Bit (also bei der Gruppe) gesetzt ist. Bei openSUSE ist dies standardmäßig beispielsweise wohl nicht der Fall. Via

        acldel 'benutzername'

wird der Kollege dann wieder entsprechend aus der Sitzung hinausgeworfen. Viele weitere Optionen findet man noch entsprechend in den Manualpages. Die sind, wie oben bereits geschrieben, mit 47 Seiten DIN A4 recht umfangreich.

Keine Kommentare: