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.
- 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.
- 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.
- Ueber eine einzige ssh-Verbindung lassen sich mit einer Screen-Umgebung bis zu 40 parallele Kommandozeilen-Sitzungen betreiben.
- 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.