GNU Screen
Ich hab schon länger gedacht “das hätte ich jetzt bequemer machen können mit screen”, war aber immer zu faul, mir das ganze genauer anzuschauen. Grosser Fehler…
Eigentlich braucht man gar nicht viel von screen zu wissen, um einigermassen schlau damit zu arbeiten:
eine neue Session starten:
screen [-S SESSIONNAME]
(der Session-Name ist optional, ich würde es aber empfehlen, vor allem, wenn mehrere Sessions gestartet werden)
vorhandene Sessions auflisten
(auch mit -list möglich)
screen -ls
auf vorhandene Session verbinden
screen -r [-S SESSIONNAME]
andere Shortcuts
C-a c neues Sessionfenster
C-a n Fensterwechsel (auch mit C-a space oder C-a C-n möglich)
C-a d screen “aushängen” (reattach mit screen -r)
C-a A Fenstertitel umbenennen
C-a “ vorhandene Fenster auflisten
C-a ‘ Fensterwechsel durch Eingabe des Titels / Fensternummer
C-a w Fensterliste anzeigen (z.B. wenn man keine Statusbar hat)
C-a ? Hilfe anzeigen
Statusbar
Und mit echo $TERM findet man raus, ob man sich gerade in einer screen-Session befindet oder nicht. Falls schon, sieht man es in der Ausgabe mit “screen.xterm-…”.
Jedoch wesentlich bequemer finde ich, wenn man eine .screenrc anlegt und dort eine Statusbar definiert. Ich hab jetzt einfach mal das “erstbeste” via copy-paste hier eingefügt, muss mir meine Statusbar erst noch zurechtbasteln
autodetach on startup_message off hardstatus alwayslastline shelltitle 'bash' hardstatus alwayslastline '%{= G}[ %{G}%H %{g}][%= %{= w}%?%-Lw%?%{= R}%n*%f %t%?%{= R}(%u)%?%{= w}%+Lw%?%= %{= g}][ %{y}Load: %l %{g}][%{B}%Y-%m-%d %{W}%c:%s %{g}]'
Dann kriegt man in screen jeweils eine Statusbar und sieht auf Anhieb, wo man dran ist:
von einem zweiten Rechner in Session einklinken
Wenn man -r durch -x ersetzt, kann man sich auch von einem anderen Rechner in die Session einklinken. Der Output ist auf beiden Rechnern identischt, verdammt witzig…
screen -x [SESSIONNAME]
nicht-default config verwenden
Die .screenrc ist ja die Defaultconfig. Ich verbinde mich aber immer wieder zu Kunden. Hier wäre doch schön, eine screenrc zu haben, wo alles bereits hinterlegt ist. Mit -c kann man eine spezielle Config mitgeben, zb.
screen -S customers -c screenrc_customers
Da steht dann einfach sowas drin:
... screen -t customer1 0 ssh user@customer1.example.org screen -t customer2 1 ssh user@customer2.example.org screen -t customer3 2 ssh user@customer3.example.org ...
recht angenehm – ein command, mit allen connected….
So wie man liest, scheint tmux in vielen Sachen bessere Funktionalität mitzubringen, ich werde es mir bestimmt mal bei Gelegenheit auch noch anschauen. Derzeit gewöhne ich mir aber erst mal ein bisschen die vermehrte Verwendung von screen an (gibt’s ja erst seit 1987…). Wenn mich dann gewisse Sachen nerven, werde ich “von selbst” mal tmux anschauen… 😉
Jedenfalls mal wieder was in der Art “warum hast du das nicht schon vor Jahren so gemacht ?!”
2 thoughts on “GNU Screen”
GNU Screen http://blog.datentraeger.li/?p=840
Comments are closed.