ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как управлять буфером обмена из командной строки в 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