2008-11-14 7 views
6

Wie führe ich jedes Mal einen Befehl aus, wenn ich von einem Rechner zum anderen ssh'ge?Wie führe ich jedes Mal einen Befehl aus, wenn ich von einem Rechner zum anderen ssh'ge?

beispiel

ssh mymachine 
stty erase ^H 

Ich habe lieber nur "stty erase^H" jedes Mal ausgeführt werden, nachdem meine SSH-Verbindung abgeschlossen ist.

Dieser Befehl kann nicht einfach in meine .zshrc-Datei gehen. d. h. für lokale Sitzungen kann ich den Befehl nicht ausführen (er schraubt meine Tastaturbelegungen durch). Aber ich brauche es für meine Remote-Sitzungen laufen.

Antwort

0

ein Linux-Ziel Unter der Annahme, steckt es in Ihren .profile

+0

Funktioniert nicht - siehe meine aktualisierte Frage Info. – someguy

1

Wenn Sie sich in eine * nix-Box mit einem Shell-Anmeldung, warum Sie es nicht in Ihrem Shell-Startup?

.bashrc oder .profile in den meisten Fällen.

+0

Funktioniert nicht - siehe meine aktualisierte Frageninfo. – someguy

+0

Fair genug - ich würde dann mit @ Geocar Vorschlag gehen. –

7

Sie können Ihre Shell-Startdatei setzen so etwas wie dies in:

if [ -n "$SSH_CONNECTION" ] 
then 
    stty erase ^H 
end 

Der -n Test wird ermittelt, ob SSH_CONNECTION gesetzt wird, das geschieht nur, wenn über SSH angemeldet.

0

Versuchen Sie, den Befehl unter dem Ende Ihrer ~/.bashrc hinzuzufügen. Es sollte beim Abmelden verlassen werden. Soll dieser Befehl nur ausgeführt werden, wenn eine SSH-Sitzung abgemeldet wird? Was ist mit lokalen Sitzungen usw.?

Sie könnten wahrscheinlich auch eine .logout-Datei aus/etc/profile mit diesem Muster erstellen.

10

Setzen Sie die Befehle in ~/.ssh/rc

+0

+1, ich wusste, dass es einen besseren Weg geben musste, dies zu tun. –

+0

+1, wusste nicht, dass das existiert. –

0

eine Antwort für uns, Bildschirm/byobu Benutzer: „an ein Terminal angeschlossen werden muss“

Die Lösung der geocar wird als Bildschirm nicht funktionieren beklagen, dass. (Dies wird wahrscheinlich durch die Tatsache verursacht, dass .ssh/rc verarbeitet wird vor Shell ist gestartet. Siehe LOGIN PROCESS Abschnitt von man 8 sshd).

Roberts Lösung ist hier besser, aber da Bildschirm und Byobu seine eigene Bash-Instanz öffnen, müssen wir eine unendliche Rekursion vermeiden. So wird hier eingestellt byobu-Version:

## RUN BYOBU IF SSH'D ## 
## '''''''''''''''''' ## 
# (but only if this is a login shell) 

if shopt -q login_shell 
then 
    if [ -n "$SSH_CONNECTION" ] 
    then 
     byobu 
     exit 
    fi 
fi 

Bitte beachte, dass ich auch exit nach byobu hinzugefügt, da IMO, wenn Sie in erster Linie verwenden byobu, die Sie normalerweise nicht alles, was es außerhalb tun wollen.

Verwandte Themen