如何在每次从一台机器到另一台机器执行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