Скопировать содержимое файла в буфер обмена linux

Обновлено: 06.07.2024

В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

Буфер обмена в Linux

Первый буфер обмена ( clipboard ) работает так же, как и буфер обмена в Windows: выделяем картинку или текст и нажимаем Ctrl+Insert или Ctrl+C для копирования в буфер обмена. Вставка происходит после нажатия комбинации Shift+Insert или Ctrl+V .

Второй буфер обмена ( primary ) в Linux работает иначе. Если вы выделяете текст мышью, выделенный текст сразу попадает в буфер primary . Чтобы вставить скопированный текст, достаточно нажать среднюю кнопку мышки (колёсико). Если трёхкнопочной мыши у вас нет или вы работаете на ноутбуке с тачпадом, для вставки текста можно одновременно нажать левую и правую кнопки мыши.

Эти буферы обмена не связаны друг с другом, и хранящиеся в них данные не влияют друг на друга. Однако если вы скопируете другой кусок текста или картинку, новое содержимое затрёт собой предыдущее, и вы потеряете данные в буфере обмена.


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

Буфер обмена в консоли
Даже если вы работаете в Linux в голой консоли, буфер обмена у вас всё равно будет. Достаточно установить пакет gpm (general purpose mouse) и вы сможете копировать и вставлять текст выделением и колёсиком мыши.

Для управления содержимым буфера обмена есть консольная программа xclip . Копирование и вставка текста в xclip выполняется простыми командами, что позволяет использовать её в скриптах, примеры которых можно посмотреть в этом посте.
При возникновении проблем с копированием файлов в KDE, вместо xclip можно использовать xsel.

  • Parcellite -- менеджер буфера обмена на GTK для среды GNOME
  • klipper -- менеджер буфера обмена для среды KDE


Менеджер буфера обмена Parcellite
На смену уже не подающему признаки жизни glipper приходит parcellite, который довольно активно развивается, может работать как демон и поддерживает действия с буфером обмена. Надо отметить, что Parcellite замечательно работает и в IceWM.

Установка parcellite проста:


занимает очень мало места (меньше мегабайта). После запуска командой parcellite в трее появится иконка:
Всё очень просто и скромно: нажав на правой кнопкой мыши по значку в трее, можно настроить параметры, а нажав левой - редатировать или очистить содержимое буфера обмена (показано полупрозрачным).

Настраиваемых параметров вполне достаточно: так, например, можно задать число хранимых состояний буфера обмена (25 в данном примере) или хранение только гиперссылок.
Parcellite так же поддерживает задание регулярных выражений (regular expressions) - это вкладка Actions:

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

Менеджер буфера обмена Klipper
Для среды KDE есть свой менеджер буфера обмена, который называется Klipper. Доступный в любом современном дистрибутиве, Klipper устанавливается просто:

пакет занимает чуть менее 1Мб, так что не жадничаем и ставим. Работать будет не только в KDE, но и в IceWM, на радость многим лихачам, оный использующим.

После запуска в трее появляется значок Klipper, нажатие на который выдаёт меню с настройками:
А настроек тут хватает:
Перечислю только основные:

  • Save clipboard contents on exit -- сохраняем содержимое буфера обмена Linux при выходе из Klipper.
  • Remove whitespace when executing actions -- удалять пробелы перед или после содержимого буфера обмена, что полезно, если вы ввели URL в буфер обмена с пробелами.
  • Clipboard selection behavior -- игнорировать выделение, то есть не смешивать буфер обмена clipboard и primary .


Ну и настроить горячие клавиши на всё, что только можно:

Заключение
Есть и другие утилиты управления содержимым буфера обмена в Linux, но для начала стоит посмотреть на xclip, xsel, klipper и parcellite. Для среды XFce есть плагин под названием Clipman. Утилиты буфера обмена существенно облегчают жизнь при работе с буфером обмена. И теперь вы уж точно ничего не потеряете!

27 комментариев: |высказаться!| RSS-лента дискуссии.|

Спасибо за обзор. Часто натыкаешься на вещи в kde, с первого взгляда ненужные, а потому и сразу отключаемые, но после понимания как и зачем они работают внезапно осознаёшь их нужность.

Попробовал, glippy вроде бы неплох, но выдает 21 ошибку ([Error] Key . not found in GConf) при запуске во fluxbox, так что он пока не замена/конкурент Parcellite. IMHO

. и clipit - форк parcellite.

Ну, по правде говоря, буферов обмена в X не 2, а 3, причём третий поддерживает несколько "карманов".

Правда, беда в том, что этот самый третий почти ни одна современная программа не поддерживает.

И ещё, в консоли иногда бывает нужно нажать ctrl+shift+V для вставки. Почему-то shift+insert и ctrl+V не всегда работают, или вставляют не тот текст.

@alltiptop комментирует.
Спасибо за обзор.
Пожалуйста. Я просто недавно правил свои посты, и потерял в буфере обмена небольшой, но хороший кусок текста. Поматюгавшись, со зла пнул аптитуду - есть, говорю, у тебя, подлюга, менеджеры буфера обмена? :-)

Часто натыкаешься на вещи в kde, с первого взгляда ненужные, а потому и сразу отключаемые
Вот-вот, и Klipper из той же серии.

@despicere комментирует.
Попробовал, glippy вроде бы неплох, но выдает 21 ошибку
У меня оно не запустилось вообще.

@green18281828 комментирует.
и clipit - форк parcellite.
Который форк Glipper :-)

@TiGR комментирует.
Ну, по правде говоря, буферов обмена в X не 2, а 3, причём третий поддерживает несколько "карманов". Правда, беда в том, что этот самый третий почти ни одна современная программа не поддерживает.
По этой причине я и не упомянул его в обзоре. Так оно не поддерживается, стало быть, простому смертному дебианщику недоступно.

И да, комменаторам спасибо за интересные ссылки.

Колесиком копирую/вставляю обычно только текст, а вот с помощью Ctrl+C провожу операции с файлами. И это очень удобно! Спс.

Можно подробнее про регулярные выражения parcellite? Что-то никогда не пользовался и толком не разбирался зачем оно в буфере.

В KDE вместо xclip лучше использовать xsel: первый по какой-то причине отказывается сотрудничать с копированием файлов в KDE :)

@keedhost комментирует.
Колесиком копирую/вставляю обычно только текст, а вот с помощью Ctrl+C провожу операции с файлами
Хмм. а это как? В Konqueror? Так у меня-то его нет Только mc.

@paulus комментирует.
Можно подробнее про регулярные выражения parcellite?
Насколько я понял, это просто выполнение действий над скопированным куском текста. Например, если скопирован веб-адрес - убрать пробелы. Мне лично это фича тоже не нужна, но вроде не мешает :-)

@о_О Тынц комментирует.
В KDE вместо xclip лучше использовать xsel: первый по какой-то причине отказывается сотрудничать с копированием файлов в KDE
Добавил. Спасибо.

И да, граммарнаци в тред! :-)

@green18281828
clipit - хоть и форк, но 1.3.11 совершенно не рабочий, вешает флуксбок намертво только в терминал и можно перейти для убийства, лишь тогда Х-ы оживают. так что parcellite побеждает снова.

Это же только исковые буферы обмена, есть ведь ещё консольный, не. Из-за него неудобно копировать текст из какого-нибудь mc в графические приложения.

@paulus комментирует.
clipit - хоть и форк, но 1.3.11 совершенно не рабочий, вешает флуксбок намертво
Может, это только под флюксбоксом? Мне просто проверить негде :-)
Кстати, и Parcellite, и Kipper, под IceWM работают прекрасно. Добавил Klipper в автозапуск :-)

@Softwayer комментирует.
Это же только исковые буферы обмена, есть ведь ещё консольный
Фишка в том, что эти менеджеры буфера обмена могут перехватывать в том числе и тот буфер, который работает по выделению.

Из-за него неудобно копировать текст из какого-нибудь mc в графические приложения.
Если мне не изменяет память, то это gpm. Именно он позволяет сделать выделение по средней кнопке в консоли. Можно его деинсталлировать, в принципе.

Я у себя в KDE очень хотел использовать именно xclip, поэтому погуглил, разобрался в проблеме и занёс себе в .bashrc вот такую вот строку:

Я лично изучал Линукс и мне он не понравился по причине сложности самой системи что сама собой не оправдана. Чем визвана такая популярность линукса - безопасностю систем или же меньшим потреблением ресурсов (80% от виндовс-систем) , или все же какою то анархичной сутностю каждого кто ее использует чем хочет виделятся.

Я лично изучал Линукс и мне он не понравился по причине сложности самой системи что сама собой не оправдана. Чем визвана такая популярность линукса - безопасностю систем или же меньшим потреблением ресурсов (80% от виндовс-систем) , или все же какою то анархичной сутностю каждого кто ее использует чем хочет виделятся.

Для меня - это, наверное, возможность выбора. В Linux можно практически все выбрать на свой вкус: дистрибутив, программы; легкость управления и оптимизации. Рекомендуется тем, у кого этот вкус есть, кто хочет систему, "подстроенную под себя", а не навязанную кем-то.

@Анонимный комментирует.
Я лично изучал Линукс и мне он не понравился по причине сложности самой системи
Анонимус, она не сложная, она другая. Но к сожалению, мало кто пишет об организации самой системы, её логичности и продуманности. У меня до сих пор варится в черновиках этот пост про UNIX-way, в котором мне хотелось бы очень кратко это описать. Не просто файловую систему, в какие конфиги что вписывать, какие команды вводить - это всё составляет единый подход к работе. То, что называется mindset. Либо он тебе нравится, либо нет.

Чем визвана такая популярность линукса
Тем, что Линукс, в отличие от винды и мака, можно заточить под свои нужды до любой степени. Ничего схожего в мире UNIX сейчас нет: Linux и на смартфонах, и на нетбуках, и на десктопах, и на серверах, и на суперкомпьютерах. Он один и тот же: тебе не придётся переучиваться с Виндоус XP на Виндоус Сервер, который совсем другой.

безопасностю систем
И этим тоже. В юниксах система разделения прав и привилегий, может несколько архаичная сейчас, но она чёрт побери работает! В отличие расфуфыренной винды, где декларируется лучшая система прав, но покажи мне, кто этим пользуется на десктопах!? Хуже: многие линуксовые программы написаны так, чтобы не запускаться из-под рута, в то время как виндовые только из-под рута и идут.

меньшим потреблением ресурсов
Я бы сказал, более эффективным. Не веришь - я могу записать фильм со своего ноутбука. На нём университетская винда и мой Дебиан. Когда ты загружаешься в дебиан, всё летает со свистом, всё настроено под меня, и я могу запускать несколько числодробильных программ одновременно, кинув их в фон и продолжая писать тексты. Ничего такого в винде нет: более того, я просто не могу поверить в то, что под виндой это такое неповоротливое чудище. Да, ИТшники напихали туда всякого (антивирусы, обновлялки, антишпионы), но мне от этого не легче.

все же какою то анархичной сутностю каждого кто ее использует чем хочет виделятся.
Некоторое количество пионэров, конечно, присутствует, но едва ли корпорации Оракл, Гугл, IBM, Редхат или Новел в просто хотят повыпендриваться, правда? :-)
Многих привлекает Unix-way, о котором в виде шутки уже писалось. Это единый подход к работе, который не меняется от версии к версии. Для многих это то, что ни искали.

Обожди немного, Анонимус, я соберусь с силами и выдам таки тот пост про юниксвей. Букв там много, но они стоят того, чтобы их осилить.

>Обожди немного, Анонимус, я соберусь с силами и выдам таки >тот пост про юниксвей. Букв там много, но они стоят того, >чтобы их осилить.

С удовольствием почитаю (не Аннонимус)

Михаил. Обратите свое внимание и на Clipman. Легко настраивается и мелкий. Ноут с тестируемым Дебианом (XFce)

*оффтоп* Конфиг коньков не выложите? На нетбуке будет в самый раз, я думаю.

@le_cha_sever комментирует.
>>>тот пост про юниксвей. Букв там много, но они стоят того, >чтобы их осилить.

C удовольствием почитаю (не Аннонимус)

Тот пост про юниксвей меня уже, если честно, достал :-) Я его переделываю уже в который раз, достигая очередного просветления. И отложил снова на конец года :-) Но может допилю и выложу раньше.

@Snake комментирует.
Михаил. Обратите свое внимание и на Clipman.
Обратил. Добавил в пост. Но это таки плагин для XFCe а не самостоятельное приложение.

@Александр комментирует.
Конфиг коньков не выложите?
А он уже давно выложен. В конце поста конфиг и есть. Он здесь такой же почти. Но если надо 1:1, на выходных дотянусь до нетбука и выложу на какой-нибудь пастебин.

Если не Вас не затруднит. Буду очень признателен.

Честно говоря, у меня ни разу не возникала потребность в истории буфера обмена. А из actions единственное полезное - открытие url в браузере, но opera это и так делает (middle click открывает новый таб с url из буфера обмена).

Так что остаётся только одна фича - объединить CLIPBOARD и PRIMARY. Для этого я использую тулзу autocutsel. Плюсы - она мелкая (

20KB), работает в фоне и не имеет никакого интерфейса. Запускается из

/.xinitrc примерно так:
autocutsel -selection PRIMARY -fork
autocutsel -selection CLIPBOARD -fork

Очень хорошая статья.
Советовал знакомому и заметил маленькую опечатку:
Если вы выделяете в текст мышью

@int_ua комментирует.
Если вы выделяете в текст мышью
Исправлено, спасибо. И ещё немного причесал статью по мелочи.

Спасибо за наводку! Использую parcellite совместно с FVWM.

Помнится в своё время проводил серьёзный тест всех имеющихся менеджеров буфера обмена и остановился на clipit как минимально требовательном к ресурсам и наименее глючном. Clipit шустрый, компактный и понятный. Чего не скажешь о других упомянутых здесь, типа того же klipper или glippy, который тянет за собой mono.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопрос: у меня есть достаточно большой текстовый файл. Я хотел бы скопировать все содержимое файла и вставить его где-нибудь еще. Можно ли скопировать содержимое файла в буфер обмена, не открывая его? В оконной системе X windows system буфер обмена - это механизм для передачи данных из одного окна в другое, или для совместного использования данных несколькими приложениями. Обычно для выделения и копирования текста используется мышь.

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

Установка xclip в Linux

Для установки xcilp в Ubuntu, Debian или Linux Mint введите:

Для установки xclip в CentOS сначала активируйте репозиторий Repoforge, затем введите команду:

Копирование содержимого файла в буфер обмена с помощью Xclip

Чтобы скопировать содержимое файла в буфер обмена просто запустите следующую команду:

После копирования вы можете вставить содержимое в другое окно или приложение, просто кликнув средней кнопкой мыши.

Комментариев нет:

Подпишитесь на RSS

Перевод. Оригинал здесь. Если вы новичек в Linux и ранее использовали iTunes для управления своим iPod/iPhone/iPad, то скорее всего буд.

uTorrent - это легкий и эффективный торрент-клиент для Linux, Windows OS и Mac OS. Установка uTorrent в Linux отличается тем, что здесь uT.

Вы можете запускать скрипты на python в Linux непосредственно из терминала. Знать, как это делается, полезно как программистам, так и пол.

Как вы наверное знаете, Safari является браузером по умолчанию в Mac OS X и iPhone OS. Вышло уже несколько релизов и для Windows, но версии .

Способ сброса пароля root в CentOS 7 кардинально отличается от такового в Centos 6. 1. В загрузочном меню нажмите "е" - реда.

При работе с большим количеством текста, будь то исходный код программы или курсовая работа, непременно приходится использовать функцию копирования. Например, вы можете использовать несколько шаблонов функций. Но для того, чтобы быстро и легко менять сохранённый фрагмент в буфере обмена, может пригодится менеджер.

Для Linux существует не так много менеджеров буфера обмена. Но вы можете без труда подобрать решения практически для любой популярной среды рабочего стола. Есть как отдельные программы, так и интегрированные в оболочку утилиты или же подключаемые расширения для неё.

Лучшие менеджеры буфера обмена Linux

1. CopyQ

2. Diodon

Ti++9938D3buPF9lDurYAAAAASUVORK5CYII //pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

Diodon - это более простой менеджер буфера обмена Linux. Он не поддерживает сохранение форматирования текста, но изображения сохраняются. После установки скорее всего потребуется перезагрузить компьютер. Без этого менеджер может не заработать.

Для установки Diodon используйте команду:

sudo apt install diodon

3. Clipman (XFCE)


Для оболочки XFCE вы можете установить менеджер буфера обмена Clipman. Текст сохраняется без форматирования. Есть возможность сохранять изображения.

У менеджера наблюдается серьёзная ошибка. Вместо того, чтобы показать полную историю, открывается меню настроек. Надеемся, что в скором времени этот недостаток будет устранён.

Для установки Clipman воспользуйтесь командой:

sudo apt install xfce4-clipman

4. Clipboard Indicator (GNOME)

Наиболее универсальным менеджером буфера обмена будет CopyQ. Он заработает на большинстве оболочек, при этом предоставит большой набор функций, превосходящий возможности других программ. Также вас может заинтересовать расширение для GNOME.

Если же на вашей оболочке менеджеры не заработали, то в качестве альтернативы воспользуйтесь расширениями для браузера и других часто используемых программ. Например, для VS Code есть соответствующий плагин.

А пользуетесь ли вы менеджером буфера обмена? Какие лучшие менеджеры буфера обмена Linux вы знаете? Расскажите об том в комментариях.

Читайте также: