
Вы когда-нибудь чувствовали, что копирование и вставка с помощью мыши утомляет? Особенно когда вам удобнее использовать терминал и клавиатуру, переключение на мышь может быть контрпродуктивным. Команда xclip поможет вам оставаться на клавиатуре, когда вы хотите скопировать и вставить контент.
Что такое xclip?
xclip — это утилита командной строки, используемая в системах Linux с реализацией X11 для взаимодействия с выделением X (также известным как буфер обмена). Она позволяет копировать текст из файлов или стандартного ввода и делать его доступным для вставки в другие приложения X. xclip также может выводить содержимое выделения X на стандартный вывод. Она имеет много полезных опций и вариантов использования для изучения.
Хотя звучит так, будто xclip предназначен только для систем, использующих X Window Manager. Это не так, поскольку вы увидите, как я использую его в системе Wayland.
В этом кратком руководстве мы подробно рассмотрим, как использовать команду xclip для копирования содержимого из файла, различные полезные опции и когда полезно использовать xclip. Для демонстрационных целей я буду использовать Ubuntu 24.04 LTS. Если вы используете другой дистрибутив, вы все равно можете следовать инструкциям, но вам, возможно, придется немного подправить некоторые команды.
Когда xclip наиболее полезен?
Лучший вариант использования, который я могу придумать, — это когда вы хотите скопировать большие файлы. Может быть утомительно использовать мышь, чтобы постоянно выделять строки за строками. Довольно часто длинные строки обрезаются в некоторых текстовых редакторах, таких как nano. В этом случае становится еще сложнее выделить и скопировать содержимое файла. В таких ситуациях xclip может быть удобным инструментом для использования. Вы можете скопировать содержимое файла одной командой и вставить его в любое место.
Как получить и использовать xclip
xclip обычно не предустановлен в дистрибутивах Linux. Поэтому в этом случае вам придется установить его самостоятельно. Вы можете установить его с помощью менеджера пакетов вашего дистрибутива или получить исходный код из репозитория GitHub. Для Debian, Ubuntu и их производных установите его с помощью:
sudo apt install xclip

Если вы используете Red Hat, Fedora или подобные, то выполните:
sudo dnf установить xclip
Для пользователей Arch Linux и Manjaro используйте:
sudo pacman -S xclip
Для подтверждения установки вы можете проверить ее версию, выполнив:
xclip-версия
Самый простой способ использования команды xclip — копирование содержимого из стандартного ввода или файла. Например, если вы хотите скопировать содержимое файла в буфер обмена вместо того, чтобы отображать его на терминале, просто передайте вывод в команду xclip. Позвольте мне создать простой файл, чтобы показать вам, как это сделать.
Сначала я создам тестовый файл и добавлю в него какой-нибудь фиктивный текст.
сенсорный тест.txt
echo ‘Демонстрация команды xclip’ > test.txt
Теперь, чтобы прочитать содержимое файла и отобразить вывод в командной строке, мы используем команду cat. Мы сделаем то же самое здесь, но передадим вывод в команду xclip следующим образом:
тест кота.txt | xclip

Результат здесь неочевиден. Это потому, что у нас нет никаких выходных данных или чего-то еще. Так как же узнать, что копирование прошло успешно? Чтобы отобразить текущее содержимое буфера обмена, просто запустите:
xclip -o

Если вы не хотите копировать содержимое определенного файла, а просто хотите поместить текст в буфер обмена, то команда echo будет вам полезна. Мы передадим команды по конвейеру так же, как делали это ранее.
echo «Я живу в буфере обмена» | xclip
xclip -o

Вы также можете копировать содержимое из файла без перенаправления вывода. Для этого передайте имя файла в качестве аргумента.
xclip тест.txt
xclip -o
Есть еще один способ скопировать содержимое файла. Вот полная команда:
xclip -sel клип тест.txt

Есть тонкое различие между простой передачей имени файла и использованием параметра -sel clip. Параметр -sel clip на самом деле является сокращенной формой -selection clipboard. При использовании этого параметра вместо буфера обмена X Window вы взаимодействуете с системным буфером обмена. Так что же это значит? Если вы используете первую команду (передавая только имя файла), вы можете вставить скопированное содержимое с помощью средней кнопки мыши. Во втором случае вам нужно вставить содержимое из контекстного меню, вызываемого правой кнопкой мыши, или нажав Ctrl+Shift+v.
При копировании содержимого из файла иногда нужно игнорировать символ новой строки. Для этого используйте:
xclip -r test.txt

Еще одна интересная опция — это опция цикла. При использовании этой опции вы, по сути, говорите xclip загрузить содержимое файла в буфер обмена X11 и вставить его определенное количество раз в приложения, такие как терминалы или текстовые редакторы, которые считывают выделение X перед выходом. По умолчанию это число равно нулю, поэтому xclip может обрабатывать бесконечное количество запросов. Вот пример:
xclip -loops 5 -подробный тест.txt

Используя xclip, вы также можете вставить содержимое в файл, используя перенаправление.
сенсорный тест2.txt
xclip тест.txt
xclip -o > test2.txt
кот test2.txt

xclip не только копирует содержимое текстовых файлов, но и может копировать вывод других команд. Допустим, вы хотите скопировать содержимое текущего каталога. Для этого выполните:
ls -la | xclip
xclip -o

Помимо всего этого, xclip также поставляется с несколькими другими утилитами, такими как xclip-copyfile, xclip-pastefile и xclip-cutfile. Вы можете использовать эти команды для копирования и перемещения файлов между различными каталогами и даже машинами. Вы можете узнать больше об этом, используя страницу руководства или опцию -h.
Инструмент xclip отлично подходит для быстрого копирования-вставки. Если вы предпочитаете использовать командную строку и клавиатуру для большинства вещей, он может помочь вам избежать мыши для более быстрых рабочих процессов. Существует еще много полезных команд Linux, подобных этой, которые вы можете попробовать.