【问题标题】:Start SSH connection in PuTTY, run a command, and leave the session active在 PuTTY 中启动 SSH 连接,运行命令,并使会话保持活动状态
【发布时间】:2017-04-05 04:54:35
【问题描述】:

每次通过 PuTTY SSH 到服务器时,我都想运行一些 shell 命令。我正在连接到由其他人管理的生产网络服务器,我不想在那里存储我自己的脚本。

我看到选项 Connection > SSH > Remote Command,但如果我将初始化命令放在那里,在启动会话后,它会在命令执行后立即关闭。如何运行远程命令,然后保持会话打开以便我可以继续使用它?

【问题讨论】:

    标签: ssh putty


    【解决方案1】:

    命令完成后,SSH 会话会立即关闭(以及 PuTTY)。默认情况下,“命令”是一个 shell。由于您已覆盖此默认“命令”,但仍想运行 shell,因此您必须自己显式执行 shell:

    my-command ; /bin/bash
    

    另见Executing a specific command on the server

    【讨论】:

      【解决方案2】:

      一个选择是像这样设置你的腻子远程命令:

      ls > dir.ls & /bin/bash
      

      在此示例中,您要运行的命令是“ls > dir.ls”,它会创建包含目录列表内容的文件 dir.ls。

      如果您想让 shell 保持打开状态,您可以添加附加命令“/bin/bash”或您选择的任何其他 shell。

      【讨论】:

      • 谢谢!通过打开 shell 来完成命令是我需要的线索。我在“远程命令”字符串的末尾添加了;bash(您的& /bin/bash 也可以)来启动bash 并保持连接打开。当我从 bash 中 exit 时,Putty 窗口也会按我的预期关闭,这很好。
      • 使用&,您可以在shell 中并行运行命令。在这种情况下,通常不是您想要的。您通常希望使用 ; 来代替运行命令 before shell。见my answer
      • @MartinPrikryl 您的评论是正确的,但是当运行需要更多时间并且并不总是需要等到它结束的命令时可能需要并行运行。
      猜你喜欢
      • 1970-01-01
      • 2019-12-28
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2015-07-02
      相关资源
      最近更新 更多