如何通过 ssh 连接并使用个人 bashrc 而不断开连接

如何通过 ssh 连接并使用个人 bashrc 而不断开连接

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

我一直尝试以下命令,但没有成功:

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

命令运行良好,但是我没有得到一个可以继续我工作的 shell。

我在这里遗漏了什么?

答案1

你漏掉了一件事。如果你提供ssh要运行的命令,会话将在会话结束时立即结束。这意味着你的ls命令一结束,也会ssh返回。为了实现你请求的行为,你需要在末尾添加bash/并请求分配,如下所示:shelltty

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

或者您可以bash用您喜欢的其他 shell 替换该命令。

答案2

你没有获得 shell,因为当你将命令传递给 SSH 进行远程运行时,取代shell 调用。

如果您希望登录时发生某些事情,则应将这些添加到帐户的.bashrc。 如果帐户是共享的,那么,(1) 停止这样做,(2) shell 可以通过多种方式确定究竟是谁登录并有条件地执行操作。

答案3

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

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

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

相关内容