我在服务器中有一个命令,我经常编辑它。我有两个步骤来执行它:ssh
服务器和vim
文件。我想在一个步骤中完成它,这样我就可以alias
在本地 shell 中完成它。如果我
ssh myserver vim /path/to/file
我明白了
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
因为ssh
期望只是运行命令并返回输出。但我需要的是ssh
打开连接,留在这,执行命令并等待。
这可能吗,无需在服务器上执行任何操作?
答案1
ssh -t myserver vim /path/to/file
-t
强制分配伪终端。这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。多个-t
选项强制分配 tty,即使ssh
没有本地 tty。
(来源)
答案2
这里有很多东西。我假设编辑必须是手动编辑,即没有编辑或者sed命令。1. 确保本地机器有主机配置为允许来自另一个节点的显示。
xhost +
如果您不确定,请进行测试。2
. 使用ssh -X myserver vim /path/to/file
3. 您可能需要指定-n或者-tssh 命令上的选项。4
. 你有格维姆安装了吗?它可以创建一个X11窗口。5
.您可能必须执行终端窗口命令,并让其执行vim。
我已经做过几次这种事情了。这很大程度上取决于您的操作系统版本。