screen

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Der Shell-Befehl screen ermöglicht das Verwalten mehrerer virtueller Konsolen in einem einzigen Terminalfenster und es lässt Prozesse auf fernen Rechnern weiterlaufen, während der Benutzer dort längst wieder abgemeldet ist. Zu einem späteren Zeitpunkt können diese Sitzungen wiederbelebt werden, etwa um die Ausgabe oder eine Logdatei anzusehen.

Konfiguration

Bei vielen Distributionen findet sich unter "/etc/screenrc" die systemweite Konfigurationsdatei.

Die Konfiguration von screen findet in der (normalerweise nicht vorhandenen) Datei "~/.screenrc" statt.

Eine Beispielkonfigurationsdatei könnte so aussehen:

# Abschalten des Splash-Bildschirms bei Programmstart
startup_message off

# Setzen des Puffers auf 1000 Zeilen
defscrollback 1000

# Einblenden einer bunten Statuszeile mit Namen der Sitzungen, Datum, Uhrzeit usw.
caption always "%{rw} * %H | $LOGNAME | %{bw}%c %D | %{-}-Lw%{rw}%50>%{rW}%n%f* %t %{-}%+Lw%<"

# [Ctrl+F] startet ein neues virtuelles Terminal mit Namen "MAIL" und baut
# automatisch eine Verbindung zu "anderer.rechner.ch" auf
bindkey ^f screen -t MAIL ssh anderer.rechner.ch

Tastaturbefehle

CTRL+A, ? Die Online-Hilfe mit allen verfügbaren Befehlen.
CTRL+A, C Öffnen eines neuen virtuellen Terminals im "screen".
CTRL+D Schliessen eines virtuellen Terminals. Handelt es sich dabei um die einzige Sitzung im "screen", so wird gleichzeitig auch das Programm selber beendet.
CTRL+A, 0-9 Wechsel zum virtuellen Terminal mit der entsprechenden Nummer.
CTRL+A, N
CTRL+A, Leertaste
Sprung zum nächsten virtuellen Terminal.
CTRL+A, W Kurzeitiges Einblenden einer Statuszeile am unteren Bildschirmrand. Das aktive Terminal ist dabei durch ein Sternchen ("*") gekennzeichnet.
CTRL+A, Shift+A Namensvergabe für das virtuelle Terminal. Standardmässig heissen alle Sitzungen "bash".
CTRL+A, Shift+2 Einblenden einer Liste mit den Namen und Nummern der virtuellen Konsolen. Mit den Pfeiltasten und der RETIURN-Taste kann zu einem Eintrag gewechselt werden.
CTRL+A, A Senden der Kontrollsequenz CTRL+A ins Terminal, z. B. um in der Bash an den Anfang der Eingabe zu springen.
CTRL+A, X Sperren des "screen". Um weiterzuarbeiten muss das Passwort eingegeben werden.
CTRL+A, Shift+H Die Ausgaben des Terminals werden in die Logdatei "screenlog.<Nummer>" geschrieben, wobei als Nummer diejenige des virtuellen Terminals angehängt wird. Die Wiederholung des Befehls beendet den Mitschnitt.
CTRL+A, ESC Starten des Kopier-/Scroll-Modus. Die Funktion ist besonders nützlich, wenn keine Maus vorhanden ist: Zum Beispiel können die Pfeiltasten (oder auch "h", "j", "k" und "l") für die Navigation verwendet werden. Um etwas in die Zwischenablage einzufügen, wird erst die Leertaste gedrückt, dann ans Ende des zu kopierenden Textes gegangen und nochmals die Leertaste gedrückt. Die Kombination CTRL+A, ] fügt den Text ein. Mit ESC wird der Kopiervorgang abgebrochen.
CTRL+A, D Abtrennen (engl. detach) des aktuellen "screens", der dann im Hintergrund weiterläuft. Damit wird nur das Programm selbst verlassen - alle im "screen" gestarteten Prozesse laufen weiter!
CTRL+A, Shift+K Beenden des aktuellen "screen" und aller darin laufenden Prozesse. Zur Sicherheit fragt das Programm aber nach: "Really kill this window [y/n]".

Verwendung

Aufruf von screen und Beenden mit CTRL+D.

$ screen
[screen is terminating]

Aufruf von screen und Abtrennen des aktuellen Screens mit CTRL+A,D.

$ screen
[screen detached]

Aufruf von screen und Abtrennen des eines Screens mit "screen -d", also ohne sich selbst in der aktuellen Screen-Sitzung zu befinden.

$ screen -d
[remote detached]

Wiederaufnahme der Verbindung.

$ screen -r
There are several suitable screens on:
        23941.pts-4.emu (Detached)
        23911.pts-4.emu (Detached)

Beförderung eines Screens in den Hintergrund.

$ screen -d
There is a screen on:
        9797.pts-0.xaikb03      (Detached)
There is no screen to be detached.

Weblinks

Vorlage:dewi