Доступ к содержимому буфера обмена с помощью 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-подобных операционных системах.