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