Как я передаю терминальный стандартный вывод по каналу (stdout) к буферу обмена?

Например,

Скажите, что я хочу перечислить содержание папки и непосредственно вставить их в окно чата для друга для наблюдения.

Я понимаю, что мог сделать ls > filename.txt создать файл (filename.txt) с тем содержанием; я должен был бы затем открыть или распечатать файл и вручную выбрать и скопировать текстовый блок (который может быть раздражающим/утомительным.) Я ясно мог также выбрать и скопировать вывод ls непосредственно из окна терминала.

Это было бы намного более быстро/легче для простой передачи по каналу стандартного вывода к буферу обмена.

Какая терминальная команда позволяет мне делать это?

108
задан 5 September 2012 в 19:28

2 ответа

Это может быть сделано или с xsel или с xclip утилитами командной строки. Так как никакая программа не идет с Ubuntu по умолчанию, Вы должны будете сначала установить их с помощью программного обеспечения Ubuntu или терминала. Вот то, как в терминале (но помнят, Вам только нужен один из этих двух.)

sudo apt install xsel
sudo apt install xclip

Теперь некоторые примеры. Если Вы хотите скопировать вывод ls к буферу обмена вот то, что Вы сделали бы:

С xsel:

ls | xsel -ib

С xclip:

ls | xclip -sel clip

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

С xsel:

sudo lshw -C network | xsel -ib

С xclip:

sudo lshw -C network | xclip -sel clip

Сделайте это еще легче с новым псевдонимом удара!

Отредактируйте Ваш ~/.bash_aliases файл (если это не существует еще, создают его сначала с touch ~/.bash_aliases)

Затем добавьте один (в зависимости от которой программы Вы решили пойти с) следующего:

alias copy='xclip -sel clip'

или

alias copy='xsel -ib'

Затем сохраните и закройтесь.

Теперь (после перезапуска Вашего терминала) можно отправить стандартный вывод в буфер обмена только путем передачи по каналу его, чтобы 'скопировать' (или независимо от того, что Вы решаете назвать свой новый псевдоним),

Например:

ls | copy
123
ответ дан 21 October 2019 в 10:59

При попытке скопировать в буфер обмена с помощью Ubuntu в Windows Subsystem для Linux (WSL) xsel, или xclip не будет работать, если Вы не будете использовать X-окна, как буфер обмена только для grahpical. Однако для передачи по каналу терминального стандартного вывода к буферу обмена в Ubuntu WSL можно использовать clip.exe. Можно затем вставить в терминал Ubuntu WSL со стандартными командами вставки, и скопированный текст будет доступен в Windows также. Например,

pwd | clip.exe 

скопирует текущий рабочий каталог в (Windows) буфер обмена.

Этот результат поиска появляется наверху при поиске путей к скопировать/вставить тексту в WSL, таким образом, я думаю, что стоит упомянуть это так, читатели напрасно не устанавливают xsel или xclip в Ubuntu и вместо этого используют clip.exe.

2
ответ дан 21 October 2019 в 10:59

Другие вопросы по тегам:

Похожие вопросы: