编辑远程服务器上的文件

时间:2015-12-25 07:18:27

标签: vim emacs ssh sftp filezilla

我想知道在远程linux服务器上编辑文件的最佳方法是什么。

我一直在使用Emacs而不是ssh,效果非常好。

但是,我也喜欢将文件复制到本地计算机然后在图形Emacs应用程序中编辑它们的想法。

通过SSH编辑或复制文件并在本地编辑文件是否有优点或缺点?使用rsync或SFTP来回复制文件以进行编辑是否更好?

3 个答案:

答案 0 :(得分:2)

Emacs具有这种编辑的内置功能,称为Tramp。像C-x C-f /ssh:user@host:/path/to/file一样打开您的文件。如果user@部分与本地用户名相同,则可以省略它。

答案 1 :(得分:2)

从发布的答案中可以看出,您的需求有许多不同的方法。每个都有一些优点和缺点。最适合您的将取决于您的首选工作流程。

流浪汉

优点

  • 本地和远程工作之间的良好整合。它只需一个emacs,编辑远程文件与处理本地文件没有太大区别。
  • 远程编译。您可以进行设置,以便在编译远程文件时,还可以使用其他有助于开发的emacs模式,例如跳转到下一个错误
  • 多跳。有时,无法直接连接到远程服务器。您可能需要先登录堡垒主机,然后再登录目标计算机。 Tramp可以使这个过程非常自动
  • 易于使用。如果您使用密钥进行ssh设置并使用ssh代理,则访问远程文件与本地文件没有区别

缺点

  • 需要可靠的互联网连接
  • 最初开始工作可能有点棘手,具体取决于您的本地和远程环境
  • 如果您的工作流程有点复杂,可能难以获得完全正确的工作流程,即难以集成远程构建工具,尤其是如果它们非常特定于站点

sshfs的

优点

  • 如果您的本地计算机上还有非emacs工具,您也希望在文件上使用
  • ,这是一个很好的方法。
  • 无需对emacs进行任何特殊配置。就emacs而言,这些只是本地文件

缺点

  • 如果您的互联网连接不稳定,可能会有点不可靠
  • 有效性取决于远程文件系统
  • 根据其安全政策/程序,贵公司可能无法接受

终端中的远程Emacs

优点

  • 如果您配置了远程emacs,可以非常轻松。
  • 不需要本地配置的emacs,可以在不同的平台上正常工作 - 只需要一个终端和远程连接

缺点

  • 需要本地和远程emacs config
  • 有时很难让所有键绑定在终端和ssh连接下正常工作
  • 没有GUI支持。访问菜单需要使用绑定到F10的基于文本的菜单,这可能会有问题,具体取决于终端和ssh配置

远程X11

优点

  • 使用X11

    运行emacs的远程GUI版本

    缺点

  • 可能很慢。真的需要使用X11压缩协议来减少X11流量

  • 需要远程emacs配置设置
  • 需要良好的互联网连接。最好的局域网而不是广域网

远程桌面

优点

  • 只需运行rdp客户端即可直接登录您的远程系统。根据您的平台,有很多选择(可能太多)
  • 如果您只是想远程访问您的工作站,那就太好了,例如您的全系统配置为支持您所需的全部系统

    缺点

  • 似乎是RDP类型客户端质量的相当大的变化。如果您想从Linux升级到Linux,那么很好,但在涉及混合平台时则不太灵活

  • 通常需要远程软件设置才能支持rdp类型会话

我个人的选择是使用Tramp。我使用远程X11的东西,但随着字体在emacs下变得更加复杂,性能显着下降(特别是在使用font-lock时)。我还使用了sshfs sshfs解决方案,当你想要使用整个目录树或想要在emacs之外的远程文件组上使用本地工具时,它可以很好地工作。

我对两个远程文件使用tramp,并且想要以不同的用户身份访问本地文件。例如,如果我想访问通常需要su / sudo访问的本地配置文件,您可以使用tramp来执行此操作。

答案 2 :(得分:1)

两全其美:使用sshfs将远程文件系统挂载到您的,然后使用常用的本地编辑器。 This answer描述了如何详细地做到这一点;并且您可以使用脚本自动化它,以便它不需要任何努力。