Eines der must have tools im *nix Umfeld ist ohne Zweifel „screen„. Allerdings haben mich einige Dinge immer etwas genervt:
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. 10014
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;"
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!
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! 🙂
Dein SSH-Hint klappt nicht ganz. Man mussen das $SHELL im Aufruf weglassen damit es funkt.