将服务器的文本复制到本地电脑,在ssh中将字符串kingname复制到剪贴板。我们也可以使用这个方法将一个文件的内容写入剪贴板:catxxx.txt|pbcopy这样我们就不需要打开文件手动复制了。有时,我想复制服务器上的日志。原来是进入服务器后,用vim打开日志文件,用鼠标选中,复制。别说服务器是linux,没有pbcopy命令,就算有这个命令,本地剪贴板怎么访问到服务器上的?上网搜了一下,其实是有办法的。使用OSC52实现iTerm2远程pbcopy——风雪一角[1]本文利用iterms的一个功能和几个特殊字符通过php实现该功能。让我们将其重写为Python版本。首先打开iterms的设置,勾选方框内的项目:然后在iterms中,通过ssh连接到服务器。然后,我们来写一段Python代码:importbase64print('\033]52;c;'+base64.b64encode('青南'.encode()).decode()+'\007')在server代码,运行效果如下图所示:什么都没有打印出来?不过不用担心,现在,您可以找到一个可以输入的输入框,然后按下键盘上的Command+V键。你会发现青南这两个字被贴上了!有了这个机制,我们就手动写一个pbcopy.py来接收管道的输入:#!/usr/bin/python3就是远程服务器地址上的Python文件。你可以使用命令whichpython3找到这个地址。保存后给他添加可执行权限:chmod+xpbcopy.py。现在,让我们尝试将远程多行文本复制到本地剪贴板:我在这里复制的是代码本身。您也可以使用其他文件进行测试。复制完成后,我们找个地方粘贴,发现复制成功!现在,我们使用软链接,让这个可执行文件更像一个命令:sudoln-s/home/ubuntu/pbcopy.py/usr/bin/pbcopy的运行效果如下图所示:完美满足要求。需要注意的是,本程序在接收到所有内容后,会将管道输入的内容全部复制过来,所以如果你输入的文本内容过大,可能会爆内存。
