这是我当前的设置:
- 主机: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 转发。