Буфер обмена в Linux (копирование и вставка)
Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.
Буфер копирования
Стандартно для копирования и вставки объектов в Linux используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в обычный буфер копирования. Затем вы можете вставить этот текст в другом месте.
Буфер выбора (первичный буфер)
В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).
Кстати, именно этим объясняется следующие поведение. Вы выделили текст в программе, затем открыли другую программу и выделили какой-нибудь текст в ней. После этого, выделение текста в первой программе автоматически снимется, а текст который вы выделили последним, попадет в буфер выбора.
Копирование и вставка в терминале
В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.
Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.
Linux скопировать в буфер обмена
В данной статье разберем утилиту xclip, которая позволяет скопировать вывод любой команды или текст любого файла в буфер обмена в терминале Linux.
Этот абзац для тех, кто нашел эту статью в поисковой системе, чтобы узнать как просто копировать и вставлять текст в терминале Linux (в Ubuntu в частности), так как обычные сочетания клавиш CTRL — C и CTRL -V не работают. Для этих действий используются CTRL — SHIFT — C и CTR — SHIFT — V, соответсвтенно.
xclip — утилита для работы с буфером обмена из консоли.
Давайте её установим в Ubuntu:
Данной утилитой можно скопировать любой вывод команды или текст какого-либо файла, чтобы скопировать туда, куда нам нужно. Также сама утилита позволяет вставлять из буфера обмена в консоль.
Примеры использования xclip.
Давайте рассмотрим работу xclip на примерах.
Допустим, есть у нас публичный ключ ssh, который мы хотим скопировать и вставить в систему для доступа к ней без ввода пароля:
Не совсем удобно копировать данный текст в терминале, можно ошибиться в пробелах и тд. Поэтому, давайте воспользуемся xclip.
Чтобы скопировать в буфер обмена, перенаправляем вывод любой команды в xlip:
или короткая версия:
Если вы не знаете, что такое |, то это означает, что мы вывод первой команды перенаправляем на вход второй после |.
Для тех, кто хочет узнать про перенаправление потоков вывода, советую прочитать мою статью: Терминал Linux. Как сохранить в файл вывод терминала..
Теперь мы можем вставить скопированный текст куда захотим, к примеру, на сайте github:
Но мы можем просто скопировать в буфер обмена весь текстовый файл, для этого указываем команду xclip с ключом -in (-i):
или короткая версия:
С помощью данной утилиты мы можем и вставить текст в терминал из буфера обмена. Для этого нужно указать команду xclip вместе с ключом -out (-o):
или короткая версия:
Но, согласитесь, что не удобно постоянно набирать параметр -sel clip, который указывать на буфер обмена.
Давайте создадим постоянные алиасы для команды копирования и вставки:
Вставляем туда строки:
Если вы не знаете, что такое алиасы, то советую прочитать следующую статью: Терминал Linux. Создание alias (псевдонима) в Ubuntu..
Сохраняем файлик, и если переоткрыть терминал (открыть новую сессию терминала), то теперь можно использовать наши новые команды. Теперь, чтобы скопировать публичный ключ ssh, нам достаточно ввести следующую команду:
Псевдонимы pbcopy и pbpaste я использую, потому что я часто пользуюсь системой macosx и там есть команды с такими названиями. Вы можете назвать алиасы по вашему желанию.
Ну и вставить текст в терминале:
Ну и напоследок, хотелось продемонстрировать как еще можно пользоваться данной утилитой. К примеру, есть у нас файл лога, и мы хотим просмотреть его последние 10 строк:
И мы хотим скопировать его, чтобы кому-то отправить его, просто укажем нашу утилиту:
Лучшие менеджеры буфера обмена Linux
Зачастую вы сильно разочаровывались, скопировав что-то в буфер обмена, а затем очистив его, когда отвлеклись на кого-то или что-то другое. И когда такое происходит, это может вызывать сильное раздражение.
Но как избавиться от подобного разочарования? На данный вопрос мы собираемся ответить в этой статье. Ниже мы рассмотрим менеджеры буфера обмена linux, которые помогут вам управлять и отслеживать содержимое буфера обмена.
Что такое менеджер буфера обмена?
Вы можете воспользоваться менеджером буфера обмена как утилитой или инструментом, который работает в фоновом режиме вашей системы Linux и хранит всю историю, которую вы сохранили на системный буфер обмена.
Зачем же на самом деле вам нужен менеджер буфера обмена?
Одной из важных особенностей менеджеров буфера обмена является то, что вам не придется беспокоиться об очистке или перезаписи содержимого буфера обмена, особенно если вы программист или писатель и производите много команд копирования и вставок.
Есть множество инструментов, которые могут помочь вам в управлении буфером обмена на Linux, и к ним относятся:
1. CopyQ
Это расширенный менеджер буфера обмена, который доступен на большинстве, если не на всех платформах. Он имеет функции редактирования и создания сценариев, включая некоторые из следующих действий:
- Контроль командной строкой и использование сценариев;
- Возможность поиска;
- Поддержка формата изображений;
- Редактирование истории;
- Настройка меню утилиты в трее;
- Полностью настраиваемый внешний вид;
- Разнообразие общесистемных ярлыков и многое другое.
2. GPaste
Это мощный и большой менеджер буфера обмена для дистрибутивов на базе GNOME, однако он также может работать и на других дистрибутивах.
Он имеет такие функции, как:
- Интеграция с оболочкой GNOME;
- Управление историей буфера обмена;
- Ярлыки быстрого доступа;
- Копирование изображений;
- Графический интерфейс GTK+ 3.
3. Klipper
Klipper — это менеджер буфера обмена для дистрибутива KDE. Он обладает основными функциями, аналогичными тем, что предлагаются в Gpaste, но также имеет некоторые свои особенности, например, команды в буфер обмена linux.
Некоторые из особенностей включают в себя:
- Управление историей;
- Ярлыки быстрого доступа;
- Копирование изображений;
- Создание пользовательских команд.
4. Clipman
Это облегченный вариант плагина буфера обмена для дистрибутива XFCE, кроме того, он хорошо работает на схожих с XFCE дистрибутивах, таких как Xubuntu.
Богатый функционал включает следующее:
- Управление историей;
- Ярлыки быстрого доступа;
- Игнорирование закрытия приложений;
- Поддержка твиков и многое другое.
5. Diodon
Это легкий, но одновременно мощный менеджер буфера обмена, предназначенный для работы с дистрибутивами, построенными на Unity и GNOME.
Он имеет следующие особенности, аналогичные другим утилитам управления буфером обмена:
- Интеграция с рабочим столом;
- Управление историей, включая ее размер и так далее;
- Ярлыки быстрого доступа;
- Копирование изображений.
6. Pastie
Это простой менеджер буфера обмена для Ubuntu, также он может использоваться с AppIndicator. В него включены несколько классных функций, которые выделяются среди прочего:
- Поддержка копирования изображений;
- Настраиваемый интерфейс;
- Ярлыки быстрого доступа и многое другое.
7. Parcellite
Это урезанная, облегченный GTK+ 2, обладает основными функциями менеджера буфера обмена для Linux.
Он имеет следующие функции:
- Управление историей;
- Режим демона;
- Быстрое копирование содержимого экрана в буфер обмена linux с использованием горячих клавиш;
- Выполнение пользовательских команд, используя содержимое буфера обмена.
8. Glipper
Это инструмент управления буфером обмена для дистрибутива GNOME, пользователи могут расширить его функциональные возможности с помощью плагинов. В настоящее время он используется с AppIndicator, для поддержки Unity и Gnome Classic в среде Ubuntu.
Glipper обладает большинством основных функций, в том числе управлением историей буфера обмена.
9. Clipit
Это легкий GTK+ менеджер буфера обмена. У него богатый функционал и он практически является копией Parcellite, но включает в себя некоторые дополнительные функции и исправления ошибок.
Он имеет следующие особенности:
- Сохранение истории последней скопированной области;
- Глобальные горячие клавиши для наиболее часто используемых функций;
- Захват статических элементов;
- Исключение определенных элементов из истории;
- Возможность поиска в истории и многое другое;
10. Keepboard
Это кроссплатформенный менеджер буфера обмена, который позволяет пользователям сохранять историю буфера обмена.
Выводы
В настоящий момент могут появиться некоторые новые плагины или менеджеры буфера обмена linux, которые я не включил в статью, дайте нам знать о любом из них ниже в комментариях. Надеюсь, что вы найдете эту статью полезной для себя.
На завершение сегодня видео, о самых полезных горячих клавишах терминала в linux: