it-artikel:screen-fenster-manager-und-multifunktions-werkzeug-fuer-die-text-konsole

Screen - Fenster Manager und Multifunktions-Werkzeug für die Text-Konsole

Screen ist ein relativ unbekanntes aber sehr nützliches Tool wenn man viel mit Text-Konsolen arbeitet. Es ist zum einen eine Art “Fenstermanager” wie man es unter Gnome/KDE oder Windows her kennt, d.h. man kann mehrere Anwendungen in verschiedenen “Fenstern” parallel laufen lassen und bei bedarf diese Fenster umschalten. Das schöne daran, es funktioniert auf der Konsole, einer SSH oder Telnet Sitzung und braucht keinerlei GUI/X. Mit diversen Tastenkombinationen lassen sich dann die Tasks oder Anwendungen innerhalb einer Konsole wahlfrei umschalten.

Man kann screen z.B. aber auch für Schulungs- oder Demo-Zwecke einsetzen um mehrere Terminals “parallel” zu schalten. Ähnlich wie Carbon-Copy. So kann man z.B. beobachten was jemand auf der Console macht. Ich nenne das hier mal einfach “MultiView”.

Beide Aspekte werde ich hier behandeln.

Allgemeines zur Bedienung

Wie schon erwähnt ist screen kein GUI. Es kann daher nur durch Tastenkombinationen und Texteingaben gesteuert werden. Daher ist es unbedingt erforderlich sich ein mal mit den wichtigsten Steuerungsmöglichkeiten vertraut zu machen. Ein guter Start ist hier die Man Page von screen, sowie die in screen eingebaute Hilfe Seite. Letzere erreicht man wenn man innerhalb einer Screen-Sitzung “ STRG+a, ? ” drückt. Natürlich ohne die “ und Kommata.

Groß- Kleinschreibung spielt wie so oft unter Unix/Linux eine große Rolle! Achten Sie auf die hier verwendete Schreibweise.

Ich weis nicht woher Screen das mit dem STRG+a hat. Aber praktisch alle Steuerungs-Befehle an Screen beginnen stets mit STRG+a. Man kann sich das leicht merken wenn man sich Vorstellt dass “a” stünde für “Attention!” gefolgt von dem eigentlichen Befehl. So wie ein Kommandant beim Militär die Truppen befehligt und neue Befehle durch “ACHTUNG!” einleitet. Andere fühlen sich dabei an die alten Zeiten mit Telefon-Modems erinnert. Auch dort beginnen alle Kommandos mit AT (für Attention).

~/.screenrc - Screen seinen Bedürfnissen anpassen

Screen kann man leicht seinen Bedürfnissen anpassen. z.b. bestimmte Screen-Funktionen welche man häufig braucht auf leicht zugängliche Tasten “binden” oder bestimmte Programme automatisch in verschiedenen “Fenstern” starten lassen u.v.m.! Ein Studium der man Page lohnt hier.

Besonderen Dank an dieser Stelle geht auch an “Herr H.Budras” vom Deutscher Wetterdienst (DWD) der mir die hier gezeigte “persönliche Konfigurationsdatei” für Screen zur Veröffentlichung zur Verfügung gestellt hat.

Die hier gezeigte .screenrc Datei hilft den Admins des DWD um schnell und effizent mit “screen” zu arbeiten.

  • es werden die Screens am unteren Bildschirmrand angezeigt
  • Rechnername , Load und Uhrzeit unten rechts
  • Tasten F1-F4 schaltet auf die ersten 4 Screen's
  • Taste Pos1 erzeugt eine neuen Screen
  • F11 blätter vorwärts durch die Screen's
  • F12 rückwärts
  • Taste Ende “trennt” die Screen-Sitzung

~/.screenrc

.screenrc
#  .screenrc  H.Budras 18.07.2007
#
# Funktionen
#  Screen-Startmelung sind aus
#  Konsolen-Pipser sind aus
#  am unteren Bildschirmrand werden die einzelnen Screen-Fester angezeigt
# Tastenbelegungen
#  F1-F4 sind den Fenstern 0-3 Zugeordnet
#  F11 = blaettern rueckwaerts
#  F12 = blaettern vorwaerts
#  Pos1 = neues Fenster
#  Ende = Screensession detachen
 
startup_message off
vbell on
vbell_msg "Piep!!!"
caption always "%-Lw%{= BW}%51>%n%f* %t%{-}%+Lw%< %>%=%{kr}%H %{ky}%l %{kg}%c"
bindkey -k k1 select 0
bindkey -k k2 select 1
bindkey -k k3 select 2
bindkey -k k4 select 3
bindkey -k F1 prev
bindkey -k F2 next
bindkey -k kh screen
bindkey -k kH detach

Screen als Fenstermanager (Grundlagen)

Hier einige wichtige Tastenkombinationen für den Umgang mit Screen als Fenster-Manager:

Tastenkombination Funktion
STRG+a ?Zeigt die HILFE Seite an. Diese ist nicht sonderlich ausführlich. Die fasst jedoch viele wichtige Kommandos kurz zusammen. Sehr praktisch also wenn man schon ein wenig mit Screen gearbeitet hat und nur mal schnell nachschauen will wie das eine oder andere Kommando aufzurufen ist. Der Hilfe Bildschirm kann durch drücken von SPACE/LEERTASTE verlassen werden.
STRG+a cCREATE NEW WINDOW - Erzeugt innerhalb von Screen ein neues Fenster (shell) und wechselt direkt dort hin.
STRG+a AUmbenennen eines Fensters - Je nach dem wie ihr Screen voreingestellt ist, wird ihnen am unteren Rand des Terminals eine “Statusleiste” oder “Fensterliste” angezeigt. Mit Hilfe dieses Kommandos können Sie dem aktuellen Fenster einen anderen Namen geben.
STRG+a LEERWechselt zum nächsten offenen Fenster (blättern)
STRG+a 1Wechselt direkt ohne zu blättern zum Fenster Nr. 1 in der Liste der offenen Fenster. Die Tasten 0-9 sind erlaubt.
STRG+a "Fenster Wechseln ganz einfach über ein Menü. Wählen mit den Pfeiltasten.
STRG+a dDETACH - Trennt Sie von Ihrer noch weiterhin im Hintergrund laufenden Screen Sitzung und wirft Sie zurück auf die Shell. Hiermit ist es möglich sich z.B. von einer Screen Sitzung mit mehreren offenen Fenstern einfach zu trennen, abzumelden um sich womöglich von einem anderen Standort, Computer oder Terminal wieder damit zu Verbinden und weiterzuarbeiten. Alle Ihre Fenster und darin laufenden Programme bleiben erhalten. Um sich von einer anderen Stelle mit einer noch bestehenden Screen-Sitzung zu verbinden starten Sie Screen einfach mit der Option -r .
screen -r 
STRG+a SSPLIT SCREEN - Geteilter Bildschirm (Horizontal) - Manchmal möchten Sie gerne zwei verschiedene Bildschirme oder Programmausgaben parallel auf dem Bildschirm sehen. Das ist hiermit möglich. Allerdings ist immer nur ein Teilbereich des Bildschirms “aktiv”. Um in den anderen Teil des Bildschirms zu wechseln verwenden Sie STRG+a STRG+i
STRG+a STRG+iWechselt bei einem geteilten Bildschirm in den jeweils anderen (nächsten) Bildschirmbereich (Focus). Folgende Screen Kommandos werden von nun an dort ausgeführt.
STRG+a | (Pipe)SPLIT SCREEN - Geteilter Bildschirm (Vertikal) - Manchmal möchten Sie gerne zwei verschiedene Bildschirme oder Programmausgaben parallel auf dem Bildschirm sehen. Das ist hiermit möglich. Allerdings ist immer nur ein Teilbereich des Bildschirms “aktiv”. Um in den anderen Teil des Bildschirms zu wechseln verwenden Sie STRG+a STRG+i
STRG+a XREMOVE SPLIT SCREEN - Geteilter Bildschirm aufheben - Hiermit können Sie einen zuvor geteilten Bildschirm wieder auflösen. Stellen Sie zuvor sicher dass Sie den zu entfernenden Teilbildschirm angewählt haben (Focus).

Des Weiteren hier einige interessante Kommandozeilen-Parameter:

Kommandozeile Funktion
screen -list
screen -ls
Listet die zur Zeit existierenden Screen-Sitzungen auf dem System auf.
screen shellkommando
Startet Screen, erzeugt eine neue Sitzung und startet das Programm 'shellkommando' in einem neuen Fenster. Wird der Befehl screen programmname innerhalb einer bestehenden Screen-Sitzung aufgerufen, so erzeugt Screen nur ein neues Fenster und startet darin das neue Programm 'programmname'.
screen -r [Sitzungsname]
RECONNECT - Verbindet sich der genannten “nicht verbundenen” (detached) Screen Sitzung. Evtl muss man zuvor die Sitzung auch erst noch Trennen. Siehe folgende…
screen -d -r [Sitzungsname]
DETACH & RECONNECT - Trennt eine bestimmte Sitzung sofern diese nicht bereits getrennt wurde und versucht sich dann mit dieser zu verbinden. (Kein Parallel-Betrieb)
screen -x -r [Sitzungsname]
RECONNECT (Multi Display Mode) - Verbindet sich mit einer nicht getrennten Sitzung und zeigt den Bildschirminhalt parallel zur bereits bestehenden Verbindung an. Beide Terminals sind aktiv und können verwendet werden. Beide Teilnehmer sehen gleichzeitig jede Aktivität auf dem Terminal.

Screen als MultiView Terminal

Es wurde bereits weiter oben in diesem Dokument genannt. Um mehrere Terminals “parallel” zu schalten und sich auf eine bestehende Sitzung aufzuschalten verwenden Sie einfach den Kommandozeilenaufruf

screen -x -r [Sitzungsname]

oder

screen -x -r

Und jetzt viel Erfolg mit Screen! — Axel Werner 2010-12-31 23:19

it-artikel/screen-fenster-manager-und-multifunktions-werkzeug-fuer-die-text-konsole.txt · Last modified: 2016-04-01 08:59 by mail@awerner.myhome-server.de