在Linux上编辑远程文件的快速方法是什么?

 随意 发布于 2022-12-29 13:50

我有一个我定期编辑的远程文件.我想用一个快速,简单的命令编辑它,可能通过SSH工作.目前,我的工作流程是通过SSH连接到远程计算机,使用编辑器(比如vim或nano)打开文件,编辑,保存然后关闭连接.

我知道我可以使用SSHFS或Nautilus功能安装远程计算机文件系统,但我真的在终端中运行一个命令,它将在编辑器中打开文件,允许我保存然后退出,关闭与远程计算机的所有连接.

目前,我试图通过SSH将命令传递给远程计算机,但我遇到了困难.对于VIM,命令类似于以下内容:

ssh user1@computer1 "vim /path/laboratory_notebook_1.md"

使用此过程,VIM无法正常运行并出现以下错误:

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

对于nano,命令类似于以下内容:

ssh user1@computer1 "nano /path/laboratory_notebook_1.md"

使用此过程,nano不会运行,并显示以下错误:

Error opening terminal: unknown.

我不确定如何继续这一思路.我将非常感谢有关此方法的帮助以及有关以最少的交互量快速编辑远程文件的其他方法的建议.

2 个回答
  • 强制伪TTY分配

    您可以使用一个或多个-t标志强制伪tty分配.SSH(1)手册页说:

     -t      Force pseudo-tty allocation.  This can be used to execute arbi-
             trary screen-based programs on a remote machine, which can be
             very useful, e.g. when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.
    

    使用您自己的示例,略有修改,如果您有本地TTY或PTY,以下将适用:

    ssh -t user1@computer1 'vim /path/laboratory_notebook_1.md'
    

    OpenSSH_6.2p2对我来说很好用.您的里程(和运行环境)可能会有所不同.

    2022-12-29 13:52 回答
  • 如果你正在使用vim.Vim附带了一个名为netrw的插件,可以让你这样做.

    vim scp://hostname/path/to/file
    

    将文件复制到本地计算机并保存重新上载它.

    看看netrw的文档 :h netrw

    2022-12-29 13:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有