То, когда я использую шпаклевку от поля Windows до Linux (без установленного X11), является там альтернативой xsel или xclip? xclip/xsel нужен X11. Я хотел бы передать полный вывод команды оболочки по каналу к буферу обмена, который я затем вставляю на поле Windows к приложению. Я хотел бы не должным быть установить все зависимости X11 xsel и потребность xclip на тех серверах Linux. Действительно ли это возможно? Dan
Сам буфер обмена является функцией X11, таким образом, Вы не сможете использовать его, не имея никакого экземпляра сервера X11, работающего нигде. Больше об этом ниже.
Однако xclip
/xsel
не имейте сервера X11 как зависимости, им только нужны некоторые клиентские установленные библиотеки. Необходимо установить xsel
хотя, если Вы хотите иметь как можно меньше пакетов, поскольку это имеет значительно меньше зависимостей, чем xclip
(сравните вывод apt depends --recurse --important xsel
и apt depends --recurse --important xclip
).
Назад к серверу X11. Вы сказали, что не хотите устанавливать полную графическую стопку сервера X11 на своем бездисплейном сервере Ubuntu, который не необходим. Это требует, чтобы у Вас был сервер X11, работающий на Вашем локальном клиенте вместо этого, хотя, если Вы хотите использовать его функции как буфер обмена.
На настольном клиенте Linux это не проблема, поскольку у Вас уже есть X11, работающий там обычно, но в Windows Вы не делаете. К счастью, кажется, существует небольшая серверная версия X11 для Windows также, названа Xming.
После того как у Вас есть то выполнение и настроенный, необходимо смочь передать локальную сессию X11 через SSH (использующий PuTTY) к бездисплейному серверу. Там можно затем использовать, например. xsel
взаимодействовать с ним и получить доступ к Вашему локальному буферу обмена.
Больше деталей о том, как создать Xming, PuTTY и сервер SSH для передачи X11, может быть найдено в этих сообщениях:
Если использование измененного PuTTY является опцией Вам, Вы могли бы хотеть посмотреть на этот патч к PuTTY, который добавляет пользовательские escape-последовательности для копирования в и вставка от буфера обмена Windows. Это также поставляет маленькое winclip
сценарий оболочки, который может использоваться для доступа к буферу обмена Windows от целевого хоста Linux/Unix.
Патч для PuTTY 0.53b (более чем десять лет), существует переоснова к PuTTY 0.60 здесь, но это - все еще старая версия. Вам, возможно, понадобилась бы некоторая работа для адаптации его к последнему PuTTY (0.70 во время этой записи), но это могло бы просто применяться без любых изменений, так как кодовая база PuTTY была главным образом стабильна в этой точке. Таким образом, возможно, это могло бы быть полезно для Вас.
Патч вряд ли будет принят к официальному PuTTY, так как escape-последовательности являются пользовательскими и не действительно часть любых стандартов, поэтому вряд ли, чтобы официально поддерживаться PuTTY в ее официальном распределении.
script
регистрирует целый диалогСкомпилированная программа script
программа в пакете bsdutils
в репозитории, 'основном' в Ubuntu. Это сохраняет целый диалог на текстовом экране, окне терминала или удаленном соединении. Можно работать script
в Вашем сервере.
Имя по умолчанию файла журнала typescript
в каталоге, где Вы запускаете script
, но можно выбрать другое имя, если Вы запускаете script
с параметром (искажают аргумент),
script my-script.log
Запустить script
и выполненный некоторые команды:
sudodus@bionic64 ~/test $ LANG=C script my-script.log
Script started, file is my-script.log
sudodus@bionic64 ~/test $ echo 'Hello World'
Hello World
sudodus@bionic64 ~/test $ pwd
/home/sudodus/test
sudodus@bionic64 ~/test $ ls
my-script.log
sudodus@bionic64 ~/test $ exit
exit
Script done, file is my-script.log
Проверьте файл журнала:
sudodus@bionic64 ~/test $ cat my-script.log
Script started on 2019-01-21 19:50:22+0100
sudodus@bionic64 ~/test $ echo 'Hello World'
Hello World
sudodus@bionic64 ~/test $ pwd
/home/sudodus/test
sudodus@bionic64 ~/test $ ls
my-script.log
sudodus@bionic64 ~/test $ exit
exit
Script done on 2019-01-21 19:50:52+0100
sudodus@bionic64 ~/test $
PuTTY на стороне Windows позволяет копировать находящий на экране текст через набор ярлыков. Если производство команды является слишком крупносерийным, рассмотреть использование nc
на сервере Ubuntu и ncat
на клиенте Windows (доступный из nmap.org).
На Ubuntu выполниться
$ command > output.txt
# port 1234 is just an example, you can use your own port of choice
$ nc -N -l 1234 < output.txt
В Windows использовать ncat
:
PS C:\Users\Admin> & 'C:\Program Files (x86)\Nmap\ncat.exe' <ip of the server> 1234 --output foo.txt
Вывод экономил на сервере, будет передан в foo.txt
на клиенте.