Как я могу скопировать содержимое файла непосредственно в мой буфер обмена Windows, когда я запускаю команду на удаленном компьютере Linux через s sh в Git Bash? - PullRequest
0 голосов
/ 07 февраля 2020

Я использую Windows 10. Я открываю Git Bash и затем s sh на сервере Ubuntu. Часто я хочу скопировать все содержимое большого текстового файла.

Вместо того, чтобы использовать scp для загрузки файла на мой Windows компьютер, я иногда довольно быстро копирую содержимое в буфер обмена.

Использование cat с последующей прокруткой тысяч строк и последующим ручным копированием в буфер обмена возможно, но не практично.

Я бы предпочел передать cat команде, которая копирует вывод в мой Windows буфер обмена. Или вызовите какую-нибудь другую команду, например xclip.

https://unix.stackexchange.com/questions/211817/copy-the-contents-of-a-file-into-the-clipboard-without-displaying-its-contents и Как я могу скопировать вывод команды непосредственно в буфер обмена? это похожие вопросы, но xclip вызывает эту ошибку:

xclip -sel c < /etc/php/7.4/cli/php.ini
Error: Can't open display: (null)

Обновление после комментарий :

{ ссылка } было интересно , но X11Forwarding yes уже есть в моей конфигурации сервера, и когда я добавил ForwardX11 yes к ~/.ssh/config, а затем набрал ssh -v -X -t -i ~/.ssh/id_rsa myuser@■■.■■■.■■■.■■, я все равно получил:

debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated

и затем, когда я запустил xsel -b < /etc/php/7.4/cli/php.ini:

xsel: Can't open display: (null)
: Inappropriate ioctl for device

Может быть X сессия в Git Bash на Windows? поможет мне в дальнейшем.

1 Ответ

1 голос
/ 07 февраля 2020

Вам нужен X-сервер на вашем Windows хосте и X-туннелирование в вашем sh соединении. xclip отправит буфер обмена на ваш X-сервер, а сервер предоставит его Windows.

  1. Установите X-сервер на ваш Windows компьютер. Я использую VcXsrv, есть XMing и другие. Вкус X не важен.
  2. Запустите сервер
  3. в Git Bash используйте команду export DISPLAY=localhost:0.0
  4. Убедитесь, что /etc/ssh/sshd.config на удаленном узел имеет строку X11Forwarding yes
  5. включить туннелирование X11 в команде s sh: добавьте флаг -Y в ssh: ssh -Y <server_address>

Пока есть некоторые получатели на Переполнение стека уже есть, есть один глюк. Примечание DISPLAY=localhost:0.0. Если вы опустите localhost, то есть export DISPLAY=:0.0, то на удаленном узле произойдет сбой xclip:

connect /tmp/.X11-unix/X0: No such file or directory xterm: Xt error: Can't open display: localhost:10.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...