我有一个远程文件,我定期编辑。我想用一个快速、简单的命令编辑它,这个命令很可能通过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.我不知道该怎么继续这条思路。我希望能在这个方法上提供帮助,并建议用最少的交互量快速地编辑远程文件。
发布于 2014-08-07 13:24:48
力伪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很好。您的里程(和操作环境)可能会有所不同。
发布于 2014-08-07 13:21:55
如果你在使用vim。Vim附带了一个名为netrw的插件,它将允许您这样做。
vim scp://hostname/path/to/file将文件复制到您的本地机器,并在保存重新上传它。
请看一下netrw的文档:h netrw
https://stackoverflow.com/questions/25183674
复制相似问题