Используйте Xclip для быстрого копирования и вставки в терминале Linux

Xclip Command In Linux Feature Image

Если вы пользователь Linux, особенно если вам нравится работать в терминале, один инструмент, который может полностью изменить то, как вы управляете текстом в вашем терминале Linux, это xclip. Вместо того чтобы выделять текст мышью, щелкать правой кнопкой мыши и затем вставлять его где-то еще, вы можете передавать текст напрямую в xclip, и он мгновенно обновит ваш буфер обмена. Оттуда вы можете вставить его в документ, электронное письмо или даже в другое окно терминала, используя быструю комбинацию Ctrl + V.

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

Примечание: xclip работает только с X11 и не будет работать на Wayland. Если вы на Wayland, используйте вместо этого wl-clipboard (wl-copy и wl-paste).

Начало работы с Xclip

Чтобы начать работу с xclip, вам нужно установить его с помощью менеджера пакетов по умолчанию вашей системы. Например, если вы используете Ubuntu, как и я, используйте:

sudo apt install xclip

Для дистрибутивов на базе Arch используйте:

sudo pacman -S xclip

Для Fedora или CentOS/RHEL выполните:

sudo dnf install xclip

После установки вы готовы к работе!

Копирование и вставка без мыши

Когда вы используете xclip, вы взаимодействуете напрямую с буфером обмена вашей системы. Независимо от того, копируете ли вы вывод команды или содержимое файла, xclip читает из стандартного ввода (stdin) и записывает в X выбор (буфер обмена). Проще говоря: все, что вы передаете в xclip, будет добавлено в ваш буфер обмена.

Например, если у вас есть файл под названием “notes.txt” и вы хотите скопировать все его содержимое, вы можете выполнить:

cat notes.txt | xclip -selection clipboard

Pasting Data On Terminal Using Xclip

Эта простая строка отправляет все из “notes.txt” прямо в ваш буфер обмена, как если бы вы выбрали его вручную и нажали Ctrl + C.

Чтобы вставить содержимое в любой документ или терминал, просто используйте обычный Ctrl + V.

Хотите вставить содержимое буфера обмена обратно в терминал или использовать его в другой команде? Используйте опцию -o (вывод):

xclip -o-selection clipboard

Эта команда выводит все, что в данный момент находится в вашем буфере обмена. Вы даже можете перенаправить этот вывод в файл, как это:

xclip -o-selection clipboard > my_copied_list.txt

Но что, если вы хотите скопировать только определенную часть текста из ваших файлов? В этом случае вы можете использовать другие инструменты Linux, такие как sed, grep, head, tail или awk, чтобы отфильтровать содержимое перед передачей его в xclip.

Например, чтобы скопировать только строки с 5 по 10 из “notes.txt”, используйте:

sed -n '5,10p' notes.txt | xclip -selection clipboard

Здесь флаг -n ограничивает первоначальный вывод, а -p говорит sed выводить только указанные строки. Результат отправляется в ваш буфер обмена, готовый к вставке. Также, если вы работаете с скриншотами или другими изображениями, xclip может обрабатывать их тоже.

Упрощение процесса выбора

Одно, что действительно меня раздражало, это необходимость снова и снова вводить эти длинные команды выбора. Чтобы исправить это, я создал псевдонимы в своем файле “~/.bashrc”, чтобы упростить и ускорить процесс выбора. Просто откройте свой файл “~/.bashrc” в любом текстовом редакторе:

nano ~/.bashrc

Затем добавьте эти две строки:

alias setclip="xclip -selection clipboard"  
alias getclip="xclip -selection clipboard -o"

Creating Aliases For Xclip Commands

Перезагрузите его с помощью:

source ~/.bashrc

Теперь вы можете просто использовать setclip для копирования и getclip для вставки. Например, чтобы скопировать все содержимое файла, выполните:

cat notes.txt | setclip

Чтобы вставить это в терминал, выполните:

getclip

Getting And Pasting Data From Text Using Xclip

Вот и все! Больше не нужно вводить эти длинные команды каждый раз.

Полезно ли использовать Xclip?

Простой ответ — да. Это гораздо полезнее, чем вы думаете. Если вы пишете скрипты, работаете в терминале весь день или управляете удаленными системами, этот инструмент может сэкономить вам значительное время и усилия.

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

Однако, если вы хотите дополнительные функции, такие как сохранение истории, запуск скриптов или обработка изображений, попробуйте менеджеры буфера обмена, такие как CopyQ, cliphist, Autocutsel и Clipboard Project.

Заключительные мысли

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

Если вы еще не пробовали, дайте ей шанс. Установите ее, выполните несколько тестов и посмотрите, насколько плавнее станет ваше копирование и вставка. И помните, xclip — не единственный инструмент. Существует множество других команд Linux, которые могут повысить вашу продуктивность. Вы даже можете рассмотреть возможность замены своих обычных инструментов командной строки на более новые и эффективные альтернативы.