Как в терминале Linux копировать любой текст в буфер обмена
В данной статье разберем утилиту xclip, которая позволяет скопировать вывод любой команды или текст любого файла в буфер обмена в терминале Linux.

Предисловие

Этот абзац для тех, кто нашел эту статью в поисковой системе, чтобы узнать как просто копировать и вставлять текст в терминале Linux (в Ubuntu в частности), так как обычные сочетания клавиш CTRL - C и CTRL -V не работают. Для этих действий используются CTRL - SHIFT - C и CTR - SHIFT - V, соответсвтенно.

Утилита xclip

xclip - утилита для работы с буфером обмена из консоли.

Давайте её установим в Ubuntu:

sudo apt install xclip

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

Примеры использования xclip.

Давайте рассмотрим работу xclip на примерах.

Допустим, есть у нас публичный ключ ssh, который мы хотим скопировать и вставить в систему для доступа к ней без ввода пароля:

Примеры использования xclip

Не совсем удобно копировать данный текст в терминале, можно ошибиться в пробелах и тд. Поэтому, давайте воспользуемся xclip.

Чтобы скопировать в буфер обмена, перенаправляем вывод любой команды в xlip:

cat id_rsa.pub | xclip -selection clipboard

или короткая версия:

cat id_rsa.pub | xclip -sel clip

Если вы не знаете, что такое |, то это означает, что мы вывод первой команды перенаправляем на вход второй после |.

Для тех, кто хочет узнать про перенаправление потоков вывода, советую прочитать мою статью: Терминал Linux. Как сохранить в файл вывод терминала..

Теперь мы можем вставить скопированный текст куда захотим, к примеру, на сайте github:

Примеры использования xclip

Но мы можем просто скопировать в буфер обмена весь текстовый файл, для этого указываем команду xclip с ключом -in (-i):

xclip -selection clipboard -in id_rsa.pub

или короткая версия:

xclip -sel clip -i id_rsa.pub

С помощью данной утилиты мы можем и вставить текст в терминал из буфера обмена. Для этого нужно указать команду xclip вместе с ключом -out (-o):

xclip -selection clipboard -out

или короткая версия:

xclip -sel clip -o

Примеры использования xclip

Но, согласитесь, что не удобно постоянно набирать параметр -sel clip, который указывать на буфер обмена.

Давайте создадим постоянные алиасы для команды копирования и вставки:

gedit  ~/.bash_aliases

Вставляем туда строки:

alias pbcopy='xclip -sel clip'
alias pbpaste='xclip -sel clip -o'

Примеры использования xclip

Если вы не знаете, что такое алиасы, то советую прочитать следующую статью: Терминал Linux. Создание alias (псевдонима) в Ubuntu..

Сохраняем файлик, и если переоткрыть терминал (открыть новую сессию терминала), то теперь можно использовать наши новые команды. Теперь, чтобы скопировать публичный ключ ssh, нам достаточно ввести следующую команду:

cat id_rsa.pub | pbcopy

Или:

pbcopy -i cat id_rsa.pub

Псевдонимы pbcopy и pbpaste я использую, потому что я часто пользуюсь системой macosx и там есть команды с такими названиями. Вы можете назвать алиасы по вашему желанию.

Ну и вставить текст в терминале:

pbpaste

Примеры использования xclip

Ну и напоследок, хотелось продемонстрировать как еще можно пользоваться данной утилитой. К примеру, есть у нас файл лога, и мы хотим просмотреть его последние 10 строк:

tail -n 10 /var/log/syslog

И мы хотим скопировать его, чтобы кому-то отправить его, просто укажем нашу утилиту:

tail -n 10 /var/log/syslog | xclip -sel clip

либо используя наш алиас:

tail -n 10 /var/log/syslog | pbcopy

Примеры использования xclip

Вот и всё.


Комментарии отключены