如何SSH和使用个人bashrc没有断开连接

在继续工作之前,我希望能够ssh到远程主机并运行一些重复的命令。

我一直在尝试下面的命令,没有运气:

 ssh [email protected] 'source /path/to/my/bashrc; ls /logs' 

命令运行正常,但是我没有提交一个shell来继续我的工作。

我在这里错过了什么?

你错过了一件事。 如果你提供了ssh命令来运行,会话一结束就会结束。 这意味着只要你的ls命令结束,也将ssh返回。 为了实现你所要求的行为,你需要添加bash / shell到最后并请求tty分配,如下所示:

 ssh -tt [email protected] 'source /path/to/my/bashrc; ls /logs; bash' 

或者你可以用你喜欢的其他shellreplacebash命令。

你没有得到一个shell,因为当你传递一个命令到远程运行的SSH时,它会replace shell的调用。

如果您想在login时发生事情,则应将其添加到帐户的.bashrc 。 如果帐号是共享的,那么(1)停止这样做,(2)shell有多种方式可以确定谁正在login,并有条件地做事情。

当我有很多命令在远程主机上运行时,我喜欢使用Here Documents [1]

 ssh $SERVER << EOF command 1 command 2 command 3 EOF 

[1] http://tldp.org/LDP/abs/html/here-docs.html