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.txtden Editor VIM mit der leeren Datei test.txt in einem virtuellen Terminal. Nur der Aufruf von
screenstartet 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 -xzu 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.