我有一个我定期编辑的远程文件.我想用一个快速,简单的命令编辑它,可能通过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.
我不确定如何继续这一思路.我将非常感谢有关此方法的帮助以及有关以最少的交互量快速编辑远程文件的其他方法的建议.
您可以使用一个或多个-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对我来说很好用.您的里程(和运行环境)可能会有所不同.
如果你正在使用vim.Vim附带了一个名为netrw的插件,可以让你这样做.
vim scp://hostname/path/to/file
将文件复制到本地计算机并保存重新上载它.
看看netrw的文档 :h netrw