Screen

  • Urspruenglicher Autor: Dirk Deimeke
  • Urspruengliches Datum: 10.02.2012

Ich nutze schon sehr lange GNU Screen und das obwohl ich weiss, dass tmux der neue „heisse Scheiss“ ist. Das liegt schlicht daran, dass ich tmux in drei Versuchen nicht auf Solaris 8 (ja, das gibt es noch) kompiliert bekommen habe.

Die Definitionen fuer Screen variieren, manche nennen es einen „terminal multiplexer“ andere einen „textual window manager“.

Für mich gibt es vier sehr gute Gruende, Screen zu benutzen.

  1. Kommandozeilen-Sessions in Screen laufen auch dann weiter, wenn ich mich vom Rechner abmelde oder getrennt werde. Das ist vor allem auch dann interessant, wenn man zwischendurch den Rechner wechselt.
  2. Mit Screen ist es moeglich, mehrere Benutzer an der gleichen Sitzung teilhaben zu lassen. Das laesst sich fuer Schulungen oder das Vier-Augen-Prinzip bei wichtigen Arbeiten verwenden.
  3. Ueber eine einzige ssh-Verbindung lassen sich mit einer Screen-Umgebung bis zu 40 parallele Kommandozeilen-Sitzungen betreiben.
  4. Screen kann benutzt werden, Kommandozeilensitzungen zu gruppieren. So nutze ich ein Setting, dass ich „daily“ genannt habe, was ssh-Verbindungen zu den Infrastruktur-Servern enthaelt. Weitere Sitzungen enthalten die fuer bestimmte Arbeiten thematisch sortierten Verbindungen. Bei Arbeiten an einem Cluster haelt eine Umgebung beispielsweise Verbindungen zu allen Cluster-Nodes, um schnell umschalten zu können.

Basis für meine Konfigurationsdatei ist die, die ich im Linuxwiki gefunden habe, dort gibt es auch eine sehr gute Erklaerung der Datei.

# Tabs
caption always "%{kw}%-w%{ky}%n %t%{-}%+w %=%{bw}@%H%{kw} %D %Y-%m-%d %c"
hardstatus string "[%H]"
 
# Ctrl-PageUp/Down or Alt-PageUp/Down or Alt-left/right
bindkey ^[[5;5~ prev
bindkey ^[[6;5~ next
bindkey ^[[5;3~ prev
bindkey ^[[6;3~ next
bindkey ^[[1;3D prev
bindkey ^[[1;3C next
 
# putty uses Ctrl-PageUp/Down by itself
# so only Alt-PageUp/Down and Alt-left/right
bindkey ^[^[[5~ prev
bindkey ^[^[[6~ next
bindkey ^[^[OD prev
bindkey ^[^[OC next
 
# Ctrl-Shift-T
bindkey ^T screen bash
 
# Scrollen im xterm
termcapinfo xterm|xterms|xs|rxvt ti@:te@
 
# Detach mit logout
bind d
bind d detach
bind ^d pow_detach
 
sessionname migration
screen -t mon bash
screen -t foo ssh foo.ptlx.de
screen -t bar ssh bar.ptlx.de
screen -t eml ssh eml.ptlx.de
screen -t web ssh web.ptlx.de

Die letzten Zeilen sind von mir, der sessioname wird bei screen -ls angezeigt und die Sitzung laesst sich (im Beispiel) mit screen -rx migration verbinden.

screen -t Titel Befehl oeffnet ein neues „Fenster“ mit dem angegebenen Titel und fuehrt dort den genannten Befehl aus.

Ich habe mir zusaetzlich noch eine Funktion definiert und in meine .bashrc gesteckt, die eine neue ssh-Verbindung in einem neuen Fenster oeffnet.

function ses (){ # session ssh
        screen -t $1 ssh $1
}

Screen ist relativ alt und wird leider nicht mehr aktiv weiterentwickelt. Eine gute Einfuehrung in Screen - GNU Screen: an introduction and beginner's tutorial - stammt aus dem Jahr 2004 und funktioniert heute noch.

Zurück zur Uebersicht