В Linux работа с копированием устроена чуть глубже, чем просто привычные сочетания клавиш. В X11-среде (GNOME, Xfce, KDE и др.) есть два буфера обмена, и они ведут себя по-разному:
🔎 Clipboard — системный буфер. Заполняется при Ctrl+C, вставляется через Ctrl+V.
🔎 Primary selection — заполняется при выделении текста мышью. Вставляется средней кнопкой мыши (или одновременным нажатием левой и правой на тачпаде).
Буферы независимы: выделили текст — он уже доступен для вставки, но Ctrl+V вставит что-то другое.
✔️ Команда xclip
xclip — утилита, которая позволяет работать с буферами обмена прямо из терминала. Она умеет читать данные из stdin и записывать их в нужный буфер, а также доставать оттуда содержимое.⚙️ Копирование из файла
xclip < notes.txt
Теперь содержимое notes.txt можно вставить средней кнопкой мыши.
⚙️ Копирование в системный буфер
xclip -selection clipboard < notes.txt
Теперь текст вставится по Ctrl+V — как обычно.
⚙️ Копирование вывода команды
ls | grep log | xclip -selection clipboard
Результат команды окажется в буфере обмена — удобно вставить путь или имя файла в другой терминал или чат.
⚙️ Вставка из буфера
xclip -selection clipboard -o
Выведет содержимое системного буфера в stdout. Можно использовать в конвейере:
xclip -selection clipboard -o | wc -w
✔️ Немного автоматизации
Создай алиасы, чтобы не набирать флаги каждый раз:
alias ccopy="xclip -sel c"
alias cpaste="xclip -sel c -o"
Теперь:
echo "important text" | ccopy
cpaste
— скопирует и вставит содержимое в системный буфер.
💡 Где это пригодится
Практическое применение
xclip выходит далеко за рамки простого копирования текста. Вот несколько примеров, где он действительно экономит время и клики:1️⃣ Работа с логами и длинными командами
grep "ERROR" /var/log/syslog | tail -n 5 | xclip -sel c
Вывели последние ошибки и сразу скопировали их — можно вставлять в чат или тикет.
2️⃣ Передача данных между терминалами
cat build.log | grep version | xclip -sel c
В другой вкладке:
cpaste
Так можно быстро перекидывать строки между сессиями (например, dev и prod).
3️⃣ Копирование путей или имён файлов
find . -type f -name "*.sh" | head -n 1 | xclip -sel c
vim $(cpaste)
Ни одной мышиной операции — путь к файлу скопирован и подставлен в команду.
4️⃣ Безопасное копирование токенов и ключей
grep "API_KEY" .env | cut -d= -f2 | xclip -sel c
Токен копируется в буфер, не отображаясь в терминале и не попадая в историю.
5️⃣ Быстрое копирование результата из скрипта
generate-password | xclip -sel c
Пароль уже в буфере — вставляй куда нужно без вывода на экран.