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

74

Например,

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

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

Было бы намного быстрее / проще просто передавать стандартный вывод в буфер обмена .

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

    
задан Insperatus 05.09.2012 в 17:28
источник

1 ответ

88

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

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!

Измените файл ~/.bash_aliases (если он еще не существует, сначала создайте его с помощью touch ~/.bash_aliases )

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

alias copy='xclip -sel clip'

или

alias copy='xsel -ib'

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

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

Например:

ls | copy
    
ответ дан Insperatus 05.09.2012 в 17:28
источник