将文本从远程 tmux 复制到本地 x 剪贴板

lon*_*nix 5 bash ssh ubuntu tmux clipboard

我通过 ssh 进入我的 VPS 并运行 tmux。我可以从远程复制/粘贴到本地,从本地复制/粘贴到远程 - 使用鼠标和 shift。

但我不知道如何复制大量文本

如果我在本地工作,我可以这样做:cat somefile.txt | xsel -b或者cat somefile | xclip -selection clipboard复制到剪贴板。(我当然不能这样做,因为远程服务器不运行 x,即便如此,剪贴板也不匹配 tmux 中使用的那个。)

那么,如何在 tmux 会话中复制文本,并通过网络将其复制到本地系统的剪贴板?

更新:
实际上,即使没有 tmux,这也适用 - 如何在远程和本地 shell 之间复制粘贴大缓冲区。

Pab*_*o A 4

要拥有双向剪贴板(更多信息请参见此处):

\n
    \n
  1. 运行sshwith-X以启用 X11 转发。

    \n
  2. \n
  3. 安装xsel(操作 X 选择)。

    \n
    sudo apt install xsel\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
\n

就是这样。现在,要在远程主机上测试远程 \xe2\x86\x92 本地运行:

\n
sudo apt install xsel\n
Run Code Online (Sandbox Code Playgroud)\n

在本地主机上:

\n
echo "Time on server is $(xsel -b)"\n
Run Code Online (Sandbox Code Playgroud)\n

time将显示该命令将文本复制到剪贴板花费了多长时间。

\n

笔记

\n
    \n
  • 您还可以使用主缓冲区来代替:

    \n
    \n

    选择选项

    \n

    -p, --primary:对 PRIMARY 选择进行操作(默认)。
    \n -b, --clipboard: 对剪贴板选择进行操作。

    \n
    \n
  • \n
  • tmux在某些情况下,缓冲区堆栈可能就足够了。

    \n
  • \n
  • -X可能需要xauth在服务器上。

    \n
  • \n
  • xsel取决于 libx11-6 和 libc6 ( apt depends xsel)。

    \n
  • \n
  • 如果你得到xsel: Can\'t open display: (null)检查这个答案

    \n
  • \n
\n