Команда lp в Linux: руководство по печати из терминала

Введение в lp и CUPS
CUPS (Common UNIX Printing System) — это системный слой для управления принтерами, очередями и опциями печати в Linux. Команда lp (Line Printer) — один из интерфейсов к CUPS. Она отправляет файл на печать. Команда lpq позволяет просматривать очередь печати.
Краткое определение: CUPS — сервис для управления печатью в UNIX-подобных системах. lp — клиентская команда для отправки заданий в CUPS.
Базовая синтаксическая модель lp
Общий синтаксис:
lp -d [printer-id] [filename]Параметры:
- -d [printer-id] — указать целевой принтер (если пропустить, будет использован принтер по умолчанию);
- [filename] — путь к файлу для печати.
Важно: многие примеры в тексте используют явные кавычки для имён принтеров с пробелами, например “Ink-Tank-310”.
Как проверить, установлен ли lp
Проверка наличия команды на системе:
which lpЕсли lp установлен, вы увидите путь, например:
/usr/bin/lpЕсли команда не найдена, установите пакеты CUPS или совместимые утилиты через менеджер пакетов вашей системы. На Debian/Ubuntu распространённые пакеты:
sudo apt update
sudo apt install cups cups-bsdПримечание: в некоторых руководствах встречается пакет lprng. Он предоставляет альтернативные инструменты печати; чаще используется стандартный пакет cups и cups-bsd для совместимости с lp и lpq.
Перечисление доступных принтеров
Чтобы увидеть список доступных принтеров:
lpstat -a | awk '{print $1}'Чтобы увидеть принтер по умолчанию:
lpstat -dЭти команды читают информацию из CUPS и выводят имена устройств, которые можно использовать с опцией -d.
Печать на конкретный принтер
Если подключён только один принтер, достаточно:
lp hello.txtЧтобы явно указать принтер:
lp -d "Ink-Tank-310" /home/debian/mte/hello.txtЕсли имя принтера содержит пробелы, берите его в кавычки.
Просмотр очереди печати
Команда lpq показывает текущую очередь печати. На Debian/Ubuntu может понадобиться пакет cups-bsd для доступности lpq:
sudo apt install cups-bsdПример использования:
lpq -P"Ink-Tank-310"Ожидаемый вывод при пустой очереди:
lpq -P"Ink-Tank-310"
Ink-Tank-310 is ready
no entriesПечать нескольких копий
Опция -n задаёт число копий:
lp -d "Ink-Tank-310" -n 10 hello.txtОбычно допустимый диапазон копий зависит от драйвера и сервера печати. Для большинства систем можно запросить от 1 до 100 копий.
Ориентация страницы и установка размера бумаги
Опция -o позволяет задавать множество параметров задания. Частые варианты:
- -o portrait — книжная ориентация;
- -o landscape — альбомная ориентация;
- -o media=letter — формат бумаги (пример: letter, A4 и т.д.).
Пример комбинирования:
lp -d "Ink-Tank-310" -n 10 -o portrait -o media=letter hello.txtНекоторые драйверы могут требовать других имён параметров (например, landscape может поддерживаться как orientation-requested). Если команда не даёт ожидаемого результата, проверьте man lp и страницу принтера в веб-интерфейсе CUPS.
Односторонняя и двусторонняя печать
Параметр sides управляет двусторонней печатью:
- two-sided-long-edge — двусторонняя печать, переворот по длинному краю (обычно для книжной ориентации);
- two-sided-short-edge — переворот по короткому краю (обычно для альбомной ориентации).
Пример:
lp -d "Ink-Tank-310" -n 10 -o portrait -o media=letter -o sides=two-sided-long-edge hello.txtЕсли принтер не поддерживает двустороннюю печать аппаратно, сервер CUPS может эмулировать её (вручную печатая стороне и прося пользователя перевернуть бумагу), но лучше проверять возможности принтера заранее.
Частые параметры lp — шпаргалка
| Опция | Операция |
|---|---|
| -E | Принудительное использование шифрования для соединений с сервером |
| – | Маркер конца опций. Используется для печати файлов с именами, начинающимися с дефиса (-) |
| -d | Указать целевой принтер (destination) |
| -U | Имя пользователя для соединения с сервером |
| -h | Имя хоста сервера (hostname) |
| -m | Отправить уведомление (email) по завершении задания |
| -n | Количество копий (copies) |
| -q | Приоритет задания в очереди (1 — минимальный, 50 — по умолчанию, 100 — максимальный) |
| -i | Идентификатор задания (job-id) для модификации |
| -t | Имя задания (name) |
| -o | Задать опции задания в виде name=value (можно несколько) |
Для полного списка опций используйте:
man lpПримеры типичных задач
Печать файла на принтер по умолчанию, формат A4:
lp -o media=A4 document.pdfПечать PDF на конкретный принтер, 3 копии, альбомная ориентация:
lp -d "HP-OfficeJet" -n 3 -o landscape document.pdfОтправка задания с именем и приоритетом:
lp -t "Отчёт по продажам" -q 75 report.pdfОтмена задания (пример):
lpstat -o
# затем
cancel [job-id]Диагностика и типичные ошибки
- Ошибка: “command not found” — установите cups/cups-bsd или проверьте PATH.
- Принтер не отвечает — проверьте состояние в lpstat и веб-интерфейсе CUPS (обычно http://localhost:631).
- Неправильная ориентация или бумага — проверьте опции -o media и совместимость драйвера.
- Задание «застряло» в очереди — попытайтесь перезапустить сервис CUPS:
sudo systemctl restart cupsЕсли это не помогает, проверьте логи:
sudo journalctl -u cups -b | tail -n 200Когда lp не подходит — альтернативные подходы
- Используйте lpr (часто установлен в Unix-совместимых системах) — синтаксис похож, но опции могут отличаться.
- Графические утилиты: система настроек принтеров в DE (GNOME, KDE) или веб-интерфейс CUPS (http://localhost:631).
- Если нужна массовая автоматизация печати — применяйте скрипты на Python с библиотекой для работы с CUPS (pycups).
Быстрые руководства и чек-листы
Чек-лист для пользователя:
- Убедитесь, что принтер включён и подключён;
- Проверьте lpstat -a на наличие принтера;
- Попробуйте распечатать одну страницу на принтер по умолчанию;
- Если нужно — используйте -d для явного выбора принтера;
- Укажите -n, -o portrait/landscape и -o media при необходимости.
Чек-лист для администратора:
- Проверьте статус службы CUPS: sudo systemctl status cups;
- Просмотрите доступные драйверы и PPD-файлы в /etc/cups/ppd/;
- Настройте шифрование соединений и контроль доступа при необходимости (опция -E и конфигурация CUPS);
- Настройте уведомления о завершении (опция -m) и логи для аудита.
Мини-методология: печать файла из терминала (5 шагов)
- Убедиться, что lp доступна: which lp.
- Убедиться, что принтер виден: lpstat -a.
- Выполнить тестовую печать на принтер по умолчанию: lp test.txt.
- Если нужно — указать дополнительные опции (-d, -n, -o).
- Проверить очередь и статус: lpq или lpstat -o.
Безопасность и конфиденциальность
Печать может передавать чувствительные данные через сеть. Рекомендации:
- Включайте шифрование при удалённом подключении к серверу печати;
- Используйте контроль доступа в CUPS (файлы конфигурации и ACL);
- Убирайте старые задания из очереди и регулярно чистите журналы, содержащие PII.
Полезная шпаргалка (cheat sheet)
- lp -d “Printer” file.pdf — распечатать на указанном принтере;
- lp -n 5 file.txt — напечатать 5 копий;
- lp -o landscape -o media=A4 file.pdf — альбомная печать на A4;
- lpq -P”Printer” — просмотреть очередь;
- lpstat -a — список принтеров;
- cancel [job-id] — отменить задание.
Часто задаваемые вопросы
Q: Что делать, если после команды lp документ не печатается? A: Проверьте lpstat -o и lpq, статус службы CUPS, логи в journalctl и убедитесь, что драйвер принтера установлен.
Q: Можно ли печатать напрямую на сетевой принтер по IP? A: Да. Можно добавить принтер в CUPS по URI (например, socket://
Q: Как задать имя задания, чтобы легче было управлять очередью? A: Используйте опцию -t: lp -t “Название задания” файл.pdf.
Итог
Команда lp — простой и мощный инструмент для печати из терминала в Linux. Она даёт гибкость для автоматизации и ручной печати: выбор принтера, число копий, ориентация, формат бумаги и двусторонняя печать. При возникновении проблем используйте lpstat, lpq, логи CUPS и веб-интерфейс http://localhost:631.
Важно: если вы используете корпоративную сеть или печатаете конфиденциальные данные, настройте шифрование и контроль доступа к серверу печати.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента