Буфер обмена – это область временного хранения данных, которые вы копируете и вставляете. Когда вы копируете текст или другие данные, они попадают в буфер обмена. Затем вы можете вставить эти данные куда-нибудь еще. В буфере обмена хранится только самый последний элемент, который вы скопировали. Эффективное управление буфером обмена поможет вам избежать ошибок и упорядочить вашу работу. В этом подробном руководстве объясняется, как управлять буфером обмена из командной строки в 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 поддерживает несколько вариантов выбора буфера обмена. Это:
- ОСНОВНОЙ (выделенный текст)
- ВТОРИЧНЫЙ (редко используется)
- БУФЕР ОБМЕНА (операции Ctrl + C, Ctrl + V)
По умолчанию, xclip
и xsel
используйте выделение CLIPBOARD
. Вы можете указать различные варианты выбора по мере необходимости.
Используя xclip
:
- Основной выбор:
xclip -selection primary
- Вторичный выбор:
xclip -selection secondary
- Выбор буфера обмена:
xclip -selection clipboard
Используя xsel
:
- Основной выбор:
xsel --primary
- Вторичный выбор:
xsel --secondary
- Выбор буфера обмена:
xsel --clipboard
Расширенное использование
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 для периодического сохранения содержимого буфера обмена.
Устранение неполадок
- Если команды xclip или xsel завершаются неудачно, убедитесь, что вы запускаете их в сеансе X11.
- Для безголовых серверов вам может потребоваться использовать виртуальный фреймбуфер, такой как Xvfb.
- Если содержимое буфера обмена неожиданно потеряно, проверьте, не вмешивается ли какой-либо менеджер буфера обмена.
Выводы
Управлять буфером обмена из командной строки в Linux просто с помощью таких инструментов, как xclip
и xsel
. Вы можете легко просматривать, очищать, копировать и вставлять содержимое буфера обмена. Кроме того, вы можете обрабатывать различные варианты выбора буфера обмена и работать с содержимым файла.
Освоение команд xclip
и xsel
поможет вам эффективно управлять буфером обмена и предотвращать случайные вставки. Кроме того, освоение управления буфером обмена в командной строке Linux повышает производительность и предоставляет мощные возможности написания сценариев.
Хотя xclip и xsel являются основными инструментами, многие среды рабочего стола также предлагают свои собственные менеджеры буфера обмена с дополнительными функциями.
Помните, что операции с буфером обмена в Linux обычно привязаны к сеансу X server. Для общесистемного или межсессионного управления буфером обмена рассмотрите возможность использования специальных приложений для управления буфером обмена.