Поиск по сайту:

Доступ к содержимому буфера обмена с помощью Xclip и Xsel в Linux

В этом руководстве мы узнаем, что такое программы Xclip и Xsel, а также как манипулировать и получать доступ к содержимому буфера обмена с помощью программ Xclip и Xsel в Linux . .

Что такое программы Xclip и Xsel?

Xclip — это интерфейс командной строки для выбора X, например Буфер обмена. Xclip считывает данные из одного или нескольких файлов и делает данные доступными в виде выбора X для вставки данных в приложения X. Если файлы не указаны, он считывает данные со стандартного ввода. Он также может вывести выбор X на стандартный вывод.

Примечание:

В Linux буфер обмена известен как "Выборы" , и в оконной системе X11 доступно три типа буфера обмена. Это ПЕРВИЧНЫЙ, ВТОРИЧНЫЙ и БУФЕР ОБМЕНА. Более подробную информацию о буфере обмена можно найти по ссылке.

Xsel — это инструмент выбора X11 из командной строки и управления буфером обмена. Он используется для доступа к буферу обмена X и буферам выбора в Linux и Unix-подобных операционных системах.

С помощью программ Xclip и Xsel мы можем легко имитировать функциональность команд pbcopy и pbpaste в Linux. Для тех, кому интересно, pbcopy и pbpaste используются для управления буфером обмена и доступны исключительно для платформы macOS.

Установите Xclip и Xsel в Linux

Программы Xclip и Xsel доступны в официальных репозиториях большинства современных дистрибутивов Linux.

В Alpine Linux выполните следующую команду, чтобы установить Xclip и Xsel:

sudo apk add xclip xsel

Чтобы установить Xclip и Xsel в Arch Linux и его вариантах, таких как Manjaro Linux, запустите:

sudo pacman -S xclip xsel

В RHEL, CentOS, AlmaLinux и Rocky Linux:

sudo dnf install epel-release
sudo dnf install xclip xsel

В Федоре:

sudo dnf xclip xsel

В Debian, Ubuntu, Pop!_OS, Linux Mint:

sudo apt install xclip xsel

В openSUSE:

sudo zypper install xclip xsel

Управление содержимым буфера обмена и доступ к нему с помощью Xclip и Xsel

Несмотря на то, что Xclip и Xsel — похожие программы и выполняют одну и ту же работу, их использование немного отличается друг от друга. Сначала давайте обсудим использование программы Xclip.

1. Примеры команд Xclip

Xclip обрабатывает ПЕРВИЧНЫЙ, ВТОРИЧНЫЙ выбор, а также системный буфер обмена.

1.1. Скопируйте данные в буфер обмена с помощью Xclip

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

echo "Welcome To OSTechNix" | xclip -selection clipboard

Вы также можете использовать эту короткую версию приведенной выше команды:

echo "Welcome To OSTechNix" | xclip -sel c

Скопируйте вывод команды Linux в буфер обмена с помощью Xclip.

Здесь -sel представляет -выбор, а c представляет буфер обмена.

В соответствии с приведенной выше командой Xclip скопировал вывод команды echo, т. е. «Добро пожаловать в OSTechNix», в основную область выбора X11 (т. е. буфер обмена). Аналогичным образом вы можете скопировать/отправить вывод любой другой команды в буфер обмена. Вот еще один пример:

uname -r | xclip -sel c

В приведенных выше примерах мы скопировали выходные данные со стандартного ввода в буфер обмена. А как насчет содержимого файла? Это также возможно.

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

xclip -selection clipboard < ostechnix.txt

Или вкратце используйте это:

xclip -sel c < ostechnix.txt

Приведенные выше команды не будут отображать содержимое файлов. Вместо этого они будут только копировать содержимое файла в системный буфер обмена. Более подробную информацию о копировании содержимого файла в буфер обмена можно прочитать по этой ссылке.

1.2. Вставьте данные из буфера обмена в консоль с помощью Xclip.

Теперь мы знаем, как скопировать данные из стандартного вывода и файла в буфер обмена. Как получить скопированные данные из буфера обмена? Это просто! Выполните следующую команду, чтобы вставить содержимое системного буфера обмена в консоль:

xclip -o -sel clip

Или,

xclip -o -sel c

Если вы хотите вставить содержимое области основного выбора X11 в консоль, запустите:

xclip -o

1.3. Вставьте данные из буфера обмена в файл с помощью Xclip.

Вместо отображения (вставки) содержимого буфера обмена вы также можете напрямую вставить содержимое системного буфера обмена или области основного выбора X11 в файл, как показано ниже:

xclip -o -sel clip > output_file.txt

Или,

xclip -o > output_file.txt

Одиночный знак ">" перезапишет существующее содержимое выходного файла. Вместо перезаписи вы можете просто добавить данные в выходной файл, используя двойные символы ">>".

xclip -o >> output_file.txt

Более подробную информацию можно найти на странице руководства Xclip:

man xclip

2. Примеры команд Xsel

По умолчанию Xsel работает с выбором X PRIMARY, если вы не укажете исключительно выбор X.

2.1. Скопируйте данные в буфер обмена с помощью Xsel

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

echo "Welcome To OSTechNix" | xsel -ib

Приведенные выше команды считывают данные из STDIN и сохраняют их в буфер обмена; как если бы Ctrl + C.

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

cat input_file.txt | xsel -ib

Здесь i представляет ввод, а b представляет буфер обмена.

Вы также можете использовать следующие команды:

xsel --clipboard < input_file.txt

Или, вкратце, используйте это:

xsel -b < input_file.txt

Опять же, -b представляет буфер обмена.

Скопируйте данные в буфер обмена с помощью Xsel

2.2. Вставьте данные из буфера обмена в консоль с помощью Xsel.

Чтобы вставить или отобразить содержимое буфера обмена в Терминале (эквивалентно Ctrl + V), запустите:

xsel -ob

Здесь o представляет вывод, а b представляет буфер обмена.

2.3. Вставьте данные из буфера обмена в файл с помощью Xsel.

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

xsel -ob > output_file.txt

Если вы не хотите перезаписывать существующее содержимое выходного файла, просто добавьте данные, используя двойные символы ">>", как показано ниже:

xsel -ob >> output_file.txt

Если вы хотите вставить содержимое основного выделения X11 в терминал (эквивалентно щелчку средней кнопкой мыши), используйте -p (ПЕРВИЧНЫЙ выбор) вместо -b (буфер обмена ):

xsel -op

2.4. Очистить буфер обмена с помощью Xsel

Чтобы очистить содержимое буфера обмена, выполните:

xsel -cb

Для получения более подробной информации обратитесь к странице руководства Xsel:

man xsel

Заключение

В этом руководстве мы обсудили, как манипулировать содержимым буфера обмена и получать к нему доступ с помощью программ Xclip и Xsel, с примерами в Linux и Unix-подобных операционных системах.

Статьи по данной тематике