ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как управлять буфером обмена из командной строки в Linux

Как управлять буфером обмена из командной строки в Linux

Буфер обмена — это область временного хранения данных, которые вы копируете и вставляете. Когда вы копируете текст или другие данные, они попадают в буфер обмена. Затем вы можете вставить эти данные куда-нибудь еще. В буфере обмена хранится только самый последний элемент, который вы скопировали. Эффективное управление буфером обмена поможет вам избежать ошибок и упорядочить вашу работу. В этом подробном руководстве объясняется, как управлять буфером обмена из командной строки в Linux.

 

Инструменты для управления буфером обмена

Двумя популярными инструментами для управления буфером обмена в Linux являются xclip и xsel. Оба инструмента позволяют просматривать, очищать содержимое буфера обмена и манипулировать им.

Установка инструментов управления буфером обмена

Установить xclip

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

Например, вы можете установить xclip в системах Debian и Ubuntu, используя следующую команду:

sudo apt install xclip

 

Установить xsel

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

sudo apt install xsel

 

Управление буфером обмена из командной строки в Linux

1. Просмотр содержимого буфера обмена

Используя xclip:

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

xclip -selection clipboard -o

 

Эта команда выводит текущее содержимое буфера обмена на терминал.

Используя xsel:

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

xsel --clipboard --output

 

Или просто:

xsel --clipboard

 

Эта команда отображает текущее содержимое буфера обмена.

 

2. Очистка буфера обмена

Используя xclip:

Чтобы очистить буфер обмена с помощью xclip, используйте:

xclip -selection clipboard /dev/null

 

Эта команда очищает буфер обмена.

Используя xsel:

Чтобы очистить буфер обмена с помощью xsel, запустите:

xsel --clipboard --clear

 

Эта команда эффективно очищает содержимое буфера обмена.

 

3. Копирование данных в буфер обмена

Используя xclip:

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

echo "Hello, OSTechNix Users!" | xclip -selection clipboard

 

Эта команда копирует «Привет, пользователи OSTechNix!» в буфер обмена.

Используя xsel:

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

echo "Hello, OSTechNix Users!" | xsel --clipboard

 

Эта команда также копирует «Привет, пользователи OSTechNix!» в буфер обмена.

 

4. Вставка данных из буфера обмена

Вставка данных аналогична просмотру. Я включил это для понимания.

Используя xclip:

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

xclip -selection clipboard -o

 

Эта команда выводит содержимое буфера обмена, которое вы можете перенаправить или использовать в скрипте.

Используя xsel:

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

xsel --clipboard --output

 

Эта команда отображает содержимое буфера обмена.

 

Буфер обмена в разных вариантах выбора

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

По умолчанию, xclip и xsel используйте выделение CLIPBOARD. Вы можете указать различные варианты выбора по мере необходимости.

Используя xclip:

 

Используя xsel:

 

Расширенное использование

1. Копирование содержимого файла в буфер обмена

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

Используя xclip:

xclip -selection clipboard < filename.txt

 

Используя xsel:

xsel --clipboard < filename.txt

 

2. Перенаправление содержимого буфера обмена в файл

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

Используя xclip:

xclip -selection clipboard -o > output.txt

 

Используя xsel:

xsel --clipboard --output > output.txt

 

3. Работа с несколькими буферами обмена

Копировать в Primary раздел:

echo "Primary Selection" | xclip -selection primary

 

Копировать во Secondary раздел:

echo "Secondary Selection" | xclip -selection secondary

 

4. Сохранение буфера обмена

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

echo "Persistent clipboard" | xclip -selection clipboard -loops 0

 

xclip будет работать до тех пор, пока вы не завершите его вручную.

 

5. Мониторинг буфера обмена

Для постоянного отслеживания изменений в буфере обмена:

watch -n 1 "xclip -selection clipboard -o"

 

Эта команда будет отображать содержимое буфера обмена каждую секунду.

 

Практические примеры

1. Создание корзины для быстрой вставки

alias pb="xclip -selection clipboard"
cat file.txt | pb

 

Теперь вы можете быстро скопировать содержимое файла в буфер обмена с помощью cat file.txt | pb.

 

2. Преобразование буфера обмена в файл с отметкой времени

xclip -selection clipboard -o > clipboard_$(date +%Y%m%d_%H%M%S).txt

 

Это сохраняет текущее содержимое буфера обмена в файл с текущей меткой времени.

 

3. История буфера обмена

Как вести простую историю буфера обмена:

echo "$(xclip -selection clipboard -o)" >> ~/.clipboard_history

 

Добавьте это в свой .bashrc или создайте задание cron для периодического сохранения содержимого буфера обмена.

 

Устранение неполадок

  1. Если команды xclip или xsel завершаются неудачно, убедитесь, что вы запускаете их в сеансе X11.
  2. Для безголовых серверов вам может потребоваться использовать виртуальный фреймбуфер, такой как Xvfb.
  3. Если содержимое буфера обмена неожиданно потеряно, проверьте, не вмешивается ли какой-либо менеджер буфера обмена.

 

Выводы

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

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

Хотя xclip и xsel являются основными инструментами, многие среды рабочего стола также предлагают свои собственные менеджеры буфера обмена с дополнительными функциями.

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

Exit mobile version