Eines der must have tools im *nix Umfeld ist ohne Zweifel “screen“. Allerdings haben mich einige Dinge immer etwas genervt:

  • Windows: Das schöne Feature verschiedener Fenster innerhalb einer Screen Sitzung hat leider diverse Hacken: In welchem Fenster bin ich gerade überhaupt? Wieviele Windows gibts es eigentlich?
  • Titles: Windows können mit Namen versehen werden. Da man im Administrationsalltag auf X verschiedenen Servern eingeloggt ist, wäre es doch schön anhand der screen titles erkennen zu können, auf welchem Host man im entsprechenden Fenster eingeloggt ist.
  • SSH Agent: Wie kommt man an einen laufenden ssh-agent der im Screen läuft und von allen Screen Windows aus nutzbar ist.
  • Irgendwie lebte ich mit diesen Problemchen und war zu faul mal eine Lösung zu suchen. Aber dann habe ich mich durchgerungen!

    Problem: Windows

    Die Lösung hierzu kam von meinem Kollegen Hombertho:
    Man füge in die .screenrc folgendes ein:

    caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

    Schon hat man eine schöne “Taskbar” mit allen vorhanden Fenstern sowie farblicher Markierung des aktuell aktiven Fensters im unteren Bereich des Screens. * WPG2 Plugin Not Validated *

    HowTo dynamic Titles:

    Alle Hosts die diesen Code in der .bashrc oder .bash_profile haben aktualisieren die screen titles beim einloggen auf $user@$host:

    function rename_screen_tab () { echo -ne "\x1bk$@\x1b\\"; return 0; }
    if [[ "$TERM" = screen* ]]; then
    echo
    PROMPT_COMMAND="rename_screen_tab ${USER}@${HOSTNAME%%.*}; $PROMPT_COMMAND"
    fi

    Der Host auf dem screen läuft sollte natürlich ebenfalls den Code in der .bashrc haben. Sonst wird der Screen Title beim Ausloggen nicht wieder zurück geändert.

    SSH Agent für screen:

    Um dieses zu bewerkstelligen hilft ein Screen Window welches immer vorhanden sein muss und den ssh-agent Prozess vorhält.
    .screenrc:

    setenv SSH_AUTH_SOCK $HOME/.screen-ssh-agent
    screen -t agent bash -c "ssh-agent -a $SSH_AUTH_SOCK $SHELL; ssh-add;"

    3 Responses to “Pimp my screen”
    1. jesse says:

      Screen ist definitiv ein Muss. Ich könnte ohne nicht mehr leben ;-)

      Zufälligerweise habe ich gerade gestern sowas ähnliches gebloggt (von Deinem Post habe ich gerade eben erst erfahren, ehrlich). Vielleicht ist da ja auch was für Dich dabei. http://geekosphere.org/401/pimp-my-server-bashrc-screenrc-nanorc-tuning/

      Liebe Grüsse!

    2. Olli says:

      ich bin jetzt eigentlich kein großer fan von Screen. Hab mich nie wirklich damit befasst und kam daher auch nie damit zurecht. Manche Anwendungen waren aber dennoch super praktisch, aber für den täglichen Gebrauch reichten mir einzelne Sessions immer aus… Jetzt aber, mit deinen Tricks, das macht die Sache schon interessanter! :)

    3. merlin says:

      Dein SSH-Hint klappt nicht ganz. Man mussen das $SHELL im Aufruf weglassen damit es funkt.

    4.  
    Leave a Reply