使用 xclip 从虚拟机复制到主机剪贴板

使用 xclip 从虚拟机复制到主机剪贴板

这是我当前的设置:

  • 主机:MacOS
  • 虚拟机:Linux(Ubuntu 18.04)
  • 虚拟机管理程序:Parallels 14
  • 主机终端模拟器:iTerm2
  • 外壳: 巴什

我在 Linux VM 中进行所有开发(我通过 ssh 进入 VM,仅使用终端在我的开发环境中非常适合我),而且我是 tmux 的重度用户。话虽如此,tmux 并不适合执行典型的鼠标拖动文本复制/粘贴操作。

过去,我使用 xclip ( xclip -sel c) 将内容转储到剪贴板上。但在这种情况下,我想将 Linux VM 中的文本转储到 MacOS 剪贴板上。这样做$ echo hello world | xclip -sel c给了我一个错误:

错误:无法打开显示:(空)

然后如果我尝试做类似的事情,$ echo hello world | DISPLAY=:0 xclip -sel c我会收到另一个错误:

未指定协议

错误:无法打开显示::0

对于如何实现这一点,您有什么想法吗?提前谢谢您!

答案1

X 程序的工作方式是,它们查找名为 的变量DISPLAY,该变量包含它应连接到的 X 服务器的标识,然后连接到该 X 服务器。

您的 VM 上没有运行 X 服务器。但是,MacOS 可以运行 X 服务器(称为 XQuartz),并且您可以ssh与该服务器建立正向 X 连接(使用ssh -X或使用配置文件,请参阅手册页)。这将自动设置DISPLAY(通过检查echo $DISPLAY),并在虚拟机上建立一个可供等使用的“假 X 服务器端点” xclip

您可能必须在 MacOS 上手动启动 XQuartz,我从未尝试过从那里进行 X 转发。

相关内容