Borderline ServerFault 问题,但我正在 编写 一些 shell 脚本,所以我先在这里尝试 :)
大多数 *nixes 都有一个命令,可以让您通过管道/重定向输出到本地剪贴板/粘贴板,并从中检索。在 OS X 上,这些命令是
pbcopy, pbpaste
无论如何,在通过 SSH 连接到另一台服务器时是否可以复制此功能?那是,
是的,我知道我可以(不寒而栗)使用鼠标从命令中选择文本,但是我已经习惯了将输出直接传输到剪贴板的工作流程,我希望远程会话也可以使用相同的方法。
代码很有用,但一般方法也很受欢迎。
我正在复活这个线程,因为我一直在寻找相同的解决方案,并且我找到了一个适合我的解决方案。这是对OSX Daily建议的一个小修改。
就我而言,我在本地 OSX 机器上使用终端通过 SSH 连接到 linux 服务器。像 OP 一样,我希望能够仅使用键盘将少量文本从终端传输到本地剪贴板。
解决方案的本质:
commandThatMakesOutput | ssh desktop pbcopy
当在远程计算机的 ssh 会话中运行时,此命令获取 commandThatMakesOutput 的输出(例如 ls、pwd)并将输出通过管道传输到本地计算机的剪贴板(“桌面”的名称或 IP)。换句话说,它使用嵌套的 ssh:您通过一个 ssh 会话连接到远程计算机,在那里执行命令,远程计算机通过不同的 ssh 会话连接到您的桌面并将文本放入剪贴板。
它需要将您的桌面配置为 ssh 服务器(我将其留给您和谷歌)。如果您设置了 ssh 密钥以促进快速 ssh 的使用,最好使用每会话密码或任何您的安全需求,这会容易得多。
其他示例:
ls | ssh desktopIpAddress pbcopy pwd | ssh desktopIpAddress pbcopy
为方便起见,我创建了一个 bash 文件来缩短管道后所需的文本:
#!/bin/bash ssh desktop pbcopy
就我而言,我使用的是一个特别命名的密钥
我用文件名 cb 保存它(我的助记符(剪贴板)。将脚本放在路径中的某个位置,使其可执行并瞧:
ls | cb