Sublime Text 2 - 如何通过ssh运行shell命令?

10

我刚开始使用 Sublime Text 2 ,但有一件事情我还没搞清楚,那就是如何通过SSH运行bash命令?

例如,为了在我的dev服务器上查看Apache错误日志,我希望能够运行:

ssh root@192.168.0.2 "tail -10 /var/log/httpd-error-user.log"

我希望能够通过键盘快捷键在编辑器内运行代码,而不必打开终端。

我已经了解了构建系统(build systems)的相关知识(文档),但我不确定是否适用于我的问题,而且它似乎只允许执行一个命令。

3个回答

14

我来回答自己的问题。您可以轻松地创建一个指向任何脚本的构建,因此我所要做的就是创建一个名为myscript.sh的文件,其中包含:

#!/bin/bash
ssh root@192.168.0.2 "tail -10 /var/log/httpd-error-user.log" 

然后在 ST2 中创建一个新的构建系统来调用它:

{
    "cmd": ["./myscript.sh"]
}

注意:在这个例子中(我使用的是Linux),myscript.sh位于/home/mike/.config/sublime-text-2/Packages/User/目录下。


2
你可以通过创建一个通用的构建系统来使其更好。我称之为rsync local to remote.sublime-build,并在其中放置了以下内容:{ "cmd": ["$project_path/rsync.sh"] }。这将在你的Sublime项目根目录中运行rsync.sh。然后,你可以针对每个项目设置不同的rsync标志、服务器和路径。 - Arron
“$project_path”是Sublime的变量吗?只有在保存了“sublime-project”时才可用吗?目前,我通过“cd path/to/script/dir/ && ./myscript.sh”快速解决了这个问题。 - Kamafeather

9
如果您使用的是Windows操作系统,您可以尝试以下方法:
  1. Install Putty. You we'll need plink from this package.
  2. Update Your PATH variable with Putty install directory.
  3. Create a Build System in Sublime

    {
     "cmd": ["plink", "-pw", "<password>", "<userid>@<remotehost>", "./your-script.sh"]
    }
    

我使用它进行远程make,效果相当不错。

注意:您的密码在此处以明文形式显示。我知道这不好;]。这只是一个例子。为了解决这个问题,可以使用基于密钥的登录。请搜索谷歌PuttyGenautologin


通过SSH进行连接正是我所需要的。谢谢 :) - Luis Paulo

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接