datentraeger

geistige Umweltverschmutzung

GNU Screen

January 1, 2018 cli Debian/GNU Linux

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 ?!”

 

bash vi-mode / zsh ?

tmux

2 thoughts on “GNU Screen”
  1. Peter V. Beck, I.
    January 1, 2018 at 10:00 pm

    GNU Screen http://blog.datentraeger.li/?p=840

  2. Pingback: tmux – datentraeger

Comments are closed.

Search
Posts
  • Overleaf
  • wir haben 300’000 !!
  • ZNAP Wallet
  • wtf m$ S3150 ?!?
  • systemd failed status entfernen
Archives
Categories
Tags
3D-Printing Android Apple Arch Backup BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.