我想用 xsel 将一个长文件复制到剪贴板中,在我的本地电脑中,只需输入:
cat /usr/bin/mysql_secure_installation|xsel -b
mysql_secure_installation
位于我本地操作系统中的 文件已复制到剪贴板中。
现在使用 ssh 命令登录我的 vps,然后输入
DISPLAY=:0 cat /usr/bin/mysql_secure_installation|xsel -b
我遇到错误信息:
xsel: Can't open display: (null)
: Inappropriate ioctl for device
我知道获取远程文件的正确方法是scp
命令:
scp -P port username@tohostname:/remotefile /newlocalfile
我只是想知道如何在登录我的 vps 后将文件内容复制到剪贴板,将文件从远程计算机复制到本地计算机的剪贴板。
同样的错误:
DISPLAY=:0 xsel -b < /usr/bin/mysql_secure_installation
xsel: Can't open display: (null)
: Connection refused
答案1
开始您的ssh
连接
ssh -X yourserver
然后不自己更改DISPLAY
变量。 ssh
应该自动设置它,以便xsel
(以及任何其他 X11 客户端)可以使用本地计算机上的显示 - 包括其剪贴板。这就是所谓的X11转发。
DISPLAY=:0
在会话中手动设置ssh
将告诉xsel
您使用该远程服务器上的显示——如果该服务器正在运行的话。
答案2
其他答案已经展示了如何转发您的 X 会话以实现所需的 O(结果)。然而,这不是很安全(正如已经指出的那样)或性能,并且通常需要额外的设置。
在 SCROE 模型中实现相同 E(效果)的最佳方法是将原始数据字节流传输到主机并在本地将其推送到剪贴板。你已经快要拥有它了。你有一个管道,你有 scp,但 scp 只是几乎正确。
ssh -p port username@tohostname cat /usr/bin/mysql_secure_installation | xsel -ib
管道确保cat
命令的标准输出偏僻的主机最终作为xsel
命令的标准输入当地的主持人。 (我还添加了一个-i
; 当显式指定操作模式时,使用 xsel 是最安全的。)