如何在每次從一臺機器到另一臺機器執行ssh命令時執行命令?如何在每次從一臺機器到另一臺機器執行ssh命令時執行命令?
e.g
ssh mymachine
stty erase ^H
我寧願只擁有 「的stty擦除^ H」 我的ssh連接完成後,執行每一次。
該命令不能簡單地進入我的.zshrc文件。即對於本地會話,我無法運行該命令(它擰緊了我的鍵盤綁定)。但我需要它運行我的遠程會話。
如何在每次從一臺機器到另一臺機器執行ssh命令時執行命令?如何在每次從一臺機器到另一臺機器執行ssh命令時執行命令?
e.g
ssh mymachine
stty erase ^H
我寧願只擁有 「的stty擦除^ H」 我的ssh連接完成後,執行每一次。
該命令不能簡單地進入我的.zshrc文件。即對於本地會話,我無法運行該命令(它擰緊了我的鍵盤綁定)。但我需要它運行我的遠程會話。
假設Linux目標,把它放在你的.profile
如果你登錄到* nix中框殼,爲什麼不把它放在你的shell啓動?
.bashrc
或.profile
在大多數情況下。
無法正常工作 - 查看我更新的問題信息。 – someguy 2008-11-14 02:48:00
夠公平 - 我會和@ geocar的建議一起去。 – 2008-11-14 12:37:26
你可以把這樣的事情到你的shell啓動文件:
if [ -n "$SSH_CONNECTION" ]
then
stty erase ^H
end
的-n
測試將確定是否SSH_CONNECTION
設置通過SSH登錄時纔會發生。
嘗試在〜/ .bashrc結尾下方添加命令。退出時應退出。你想要這個命令只有註銷ssh會話時執行?本地會話等呢?
trap 'stty erase ^H; exit 0' 0
您可能可以使用相同的模式從/ etc/profile設置.logout文件。
把命令~/.ssh/rc
的回答對我們來說,屏幕/屏風用戶:「必須連接到終端」
的geocar的解決方案將沒有屏幕工作會抱怨。 (這可能是由於在啓動 shell之前處理了.ssh/rc 這一事實造成的。請參見從man 8 sshd
開始的一節)。
羅伯特的解決方案在這裏更好,但自屏幕和byobu打開它自己的bash實例,我們需要避免無限遞歸。因此,這裏被調整屏風的版本:
## 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
注意byobu
之後,我還添加了exit
,因爲IMO如果您在第一時間使用屏風,你通常不希望做任何事情,它的外面。
無法正常工作 - 查看我更新的問題信息。 – someguy 2008-11-14 02:48:36