Добавление принтера через терминал в Linux может показаться сложной задачей для начинающих пользователей, но на практике этот процесс занимает не больше 5-10 минут при правильном подходе. В отличие от графических интерфейсов, терминал предоставляет больше контроля над настройками, позволяет автоматизировать процесс и решать проблемы, когда GUI-инструменты отказываются работать. Особенно актуально это для серверных версий дистрибутивов, где графическая оболочка отсутствует по умолчанию.
Основной инструмент для работы с принтерами в Linux — система CUPS (Common Unix Printing System), которая управляет всеми аспектами печати. Через терминал вы можете не только добавить принтер, но и настроить его параметры, обновить драйверы или устранить типичные ошибки подключения. Эта статья покрывает все этапы: от проверки установленных пакетов до тестовой печати документа, с акцентом на наиболее распространённые дистрибутивы — Ubuntu/Debian и CentOS/RHEL.
1. Проверка установленных пакетов CUPS
Прежде чем добавлять принтер, убедитесь, что система CUPS установлена и запущена. В большинстве современных дистрибутивов она присутствует по умолчанию, но на минимальных серверных сборках может отсутствовать.
Чтобы проверить статус службы, выполните команду:
systemctl status cups
Если служба не активна, запустите её:
sudo systemctl start cups
sudo systemctl enable cups # для автоматического запуска при загрузке
⚠️ Внимание: На некоторых серверных дистрибутивах (например, Ubuntu Server) пакетcupsможет отсутствовать. Установите его командойsudo apt install cups(Debian/Ubuntu) илиsudo yum install cups(CentOS/RHEL).
После установки проверьте доступность веб-интерфейса CUPS (порт 631), который может пригодиться для диагностики:
lpstat -t
2. Поиск доступных принтеров в сети
Если принтер подключён по сети (Ethernet или Wi-Fi), сначала определите его IP-адрес или сетевое имя. Для этого используйте команду:
lpinfo -v
Эта команда выведет список всех обнаруженных устройств, включая сетевые принтеры. Например, результат может выглядеть так:
network lpd://BRN00012345678.local/queue
network ipp://HP-OfficeJet-Pro-9010._ipp._tcp.local/
direct hp:/net/HP_OfficeJet_Pro_9010?ip=192.168.1.100
Для принтеров, подключённых по USB, используйте:
lsusb
Ищите в выводе строки с упоминанием производителя (HP, Canon, Brother и т.д.). Например:
Bus 001 Device 003: ID 03f0:1024 HP OfficeJet Pro 9010
| Тип подключения | Команда для обнаружения | Пример вывода |
|---|---|---|
| Сетевой принтер (IPP) | lpinfo -v | grep ipp |
ipp://HP-OfficeJet-Pro-9010._ipp._tcp.local/ |
| Сетевой принтер (LPD) | lpinfo -v | grep lpd |
lpd://BRN00012345678.local/queue |
| USB-принтер | lsusb | grep -i "printer\|hp\|canon\|brother" |
Bus 001 Device 003: ID 03f0:1024 HP OfficeJet Pro 9010 |
| Локальный (parallel port) | lpinfo -v | grep parallel |
direct parallel:/dev/lp0 |
Если принтер не обнаруживается по сети, проверьте, включён ли на нём протокол IPP или LPD в настройках сетевого интерфейса. Для HP это делается через веб-интерфейс принтера (обычно по адресу http://[IP-принтера]).
3. Установка драйверов для принтера
Без правильного драйвера принтер не будет работать корректно. В большинстве случаев Linux автоматически подбирает универсальный драйвер (например, postscript или pcl), но для полноценной поддержки функций (двусторонняя печать, сканирование) лучше установить фирменный драйвер.
Для принтеров HP используйте пакет hplip:
sudo apt install hplip # Debian/Ubuntu
sudo yum install hplip # CentOS/RHEL
Для Brother и Canon скачайте драйверы с официальных сайтов и установите вручную. Например, для Brother HL-L2350DW:
wget https://download.brother.com/welcome/dlf100000/hl1230dwlpr-3.0.1-1.i386.deb
sudo dpkg -i hl1230dwlpr-3.0.1-1.i386.deb
⚠️ Внимание: Драйверы для 32-битных систем (.i386.deb) могут не работать на 64-битных дистрибутивах без установки библиотек совместимости (sudo apt install libc6-i386).
Проверьте список доступных драйверов командой:
lpinfo -m
Убедиться, что принтер включён и подключён к сети/USB
Обновить список пакетов (sudo apt update)
Проверить архитектуру системы (uname -m)
Скачать драйвер с официального сайта производителя (если требуется)
Установить зависимости для 32-битных драйверов (при необходимости)-->
4. Добавление принтера через команду lpadmin
Основная команда для добавления принтера в CUPS — lpadmin. Её синтаксис зависит от типа подключения.
Для сетевого принтера (IPP):
sudo lpadmin -p HP_OfficeJet_Pro_9010 -E -v ipp://192.168.1.100/ipp/print -m everywhere
Где:
- -p — имя принтера (произвольное, но без пробелов)
- -E — включить принтер после добавления
- -v — URI устройства (из вывода lpinfo -v)
- -m — модель драйвера (можно указать конкретный драйвер из lpinfo -m или everywhere для автоматического выбора)
Для USB-принтера:
sudo lpadmin -p Brother_HL_L2350DW -E -v usb://Brother/HL-L2350DW?serial=ABC12345 -m drv:///brother/hl1250.drv.gz
Для локального принтера (LPT-порт):
sudo lpadmin -p Epson_LX_300 -E -v parallel:/dev/lp0 -m lx300.ppd
Что делать, если команда lpadmin выдаёт ошибку "Unsupported format"
Ошибка возникает, когда указанный драйвер (-m) несовместим с принтером. Решения:
1. Укажите другой драйвер из списка lpinfo -m (например, drv:///sample.drv/ps для PostScript-принтеров).
2. Используйте универсальный драйвер everywhere.
3. Установите фирменный драйвер от производителя (см. раздел 3).
5. Настройка принтера по умолчанию и тестовая печать
После добавления принтера его нужно сделать устройством по умолчанию (если требуется) и проверить работоспособность.
Установите принтер по умолчанию:
sudo lpoptions -d HP_OfficeJet_Pro_9010
Отправьте тестовую страницу:
lp -d HP_OfficeJet_Pro_9010 /etc/nsswitch.conf
Или используйте встроенную команду CUPS для тестовой печати:
sudo lpadmin -p HP_OfficeJet_Pro_9010 -o printer-is-shared=false -o auth-info-required=none
echo "Test page" | lp -d HP_OfficeJet_Pro_9010
Проверьте статус задания печати:
lpstat -o
⚠️ Внимание: Если тестовая страница не печатается, проверьте:- Состояние очереди печати (
lpstat -t).- Права доступа к принтеру (
ls -l /etc/cups/printers.conf).- Логи CUPS (
tail -f /var/log/cups/error_log).
Команда lpstat -t — ваш главный инструмент диагностики. Она показывает все принтеры, их статус и текущие задания печати.
6. Устранение распространённых ошибок
Даже при правильной настройке могут возникать проблемы. Вот наиболее частые из них и способы их решения:
- 🔌 Принтер не обнаруживается по сети:
Проверьте, что принтер и компьютер находятся в одной подсети. Отключите брандмауэр на время настройки (
sudo ufw disable). Используйтеping 192.168.1.100(замените на IP принтера), чтобы убедиться в доступности устройства. - 🖨️ Драйвер не подходит:
Удалите принтер (
sudo lpadmin -x HP_OfficeJet_Pro_9010) и добавьте заново с другим драйвером. Для HP попробуйтеhp:/net/HP_OfficeJet_Pro_9010вместоipp://. - 📄 Задания печати зависают в очереди:
Очистите очередь командой
sudo cancel -aили перезапустите службу CUPS (sudo systemctl restart cups). - 🔒 Ошибка "Not authorized":
Добавьте своего пользователя в группу
lpadmin:sudo usermod -aG lpadmin $USERЗатем перезагрузитесь или выполните
newgrp lpadmin.
Если принтер подключён через USB, но не определяется, попробуйте отключить его, выполнить sudo usermod -aG lp $USER, перезагрузить систему и подключить принтер заново. Это часто решает проблемы с правами доступа к USB-устройствам.
7. Автоматизация добавления принтера через скрипт
Если вам нужно регулярно добавлять принтеры на несколько машин, можно создать скрипт для автоматизации процесса. Пример скрипта для добавления сетевого принтера HP OfficeJet Pro 9010:
#!/bin/bash
PRINTER_NAME="HP_OfficeJet_Pro_9010"
PRINTER_IP="192.168.1.100"
DRIVER="everywhere"
Установка CUPS (если не установлен)
if ! command -v lpadmin &> /dev/null; then
sudo apt update && sudo apt install -y cups
sudo systemctl enable --now cups
fi
Добавление принтера
sudo lpadmin -p "$PRINTER_NAME" -E -v "ipp://$PRINTER_IP/ipp/print" -m "$DRIVER"
sudo lpoptions -d "$PRINTER_NAME"
Тестовая печать
echo "Printer $PRINTER_NAME added successfully. Printing test page..."
echo "Test page from $(hostname) at $(date)" | lp -d "$PRINTER_NAME"
Сохраните скрипт в файл (например, add_printer.sh), сделайте его исполняемым и запустите:
chmod +x add_printer.sh
./add_printer.sh
8. Управление принтерами через веб-интерфейс CUPS
Хотя статья посвящена работе в терминале, веб-интерфейс CUPS может быть полезен для визуального контроля. Чтобы получить к нему доступ:
- Убедитесь, что служба CUPS запущена (
sudo systemctl status cups). - Откройте в браузере адрес
http://localhost:631. - Перейдите в раздел
Administration → Add Printer. - Введите имя пользователя и пароль (используйте учётные данные суперпользователя или пользователя из группы
lpadmin).
Через веб-интерфейс вы можете:
- 📋 Просматривать список установленных принтеров.
- 🔧 Модифицировать настройки (разрешение, двусторонняя печать).
- 📄 Управлять очередью печати (отмена, приостановка заданий).
- 🖼️ Печатать тестовые страницы.
⚠️ Внимание: По умолчанию доступ к веб-интерфейсу CUPS разрешён только с локального хоста (localhost). Чтобы открыть доступ из сети, отредактируйте файл/etc/cups/cupsd.conf, добавив строкуAllow @LOCALв секции<Location />, затем перезапустите службу (sudo systemctl restart cups).
FAQ: Частые вопросы по добавлению принтера в терминале
Можно ли добавить принтер без прав суперпользователя?
Да, но с ограничениями. Пользователь должен быть в группе lpadmin. Добавьте себя в группу командой sudo usermod -aG lpadmin $USER, затем выйдите и войдите заново в систему. После этого вы сможете добавлять принтеры без sudo, но некоторые операции (например, установка драйверов) всё равно потребуют прав администратора.
Как удалить принтер через терминал?
Используйте команду:
lpadmin -x ИМЯ_ПРИНТЕРА
Например, для принтера HP_OfficeJet_Pro_9010:
sudo lpadmin -x HP_OfficeJet_Pro_9010
Чтобы удалить все принтеры, сначала получите их список (lpstat -p), затем удалите каждый по очереди.
Почему принтер добавляется, но не печатает?
Причин может быть несколько:
- Неверный драйвер. Проверьте список поддерживаемых драйверов (
lpinfo -m) и добавьте принтер заново с другим драйвером. - Очередь печати заблокирована. Очистите её командой
sudo cancel -a. - Проблемы с подключением. Для сетевых принтеров проверьте
pingдо устройства. - Отсутствуют права. Убедитесь, что ваш пользователь входит в группу
lp.
Также проверьте логи CUPS:
tail -n 50 /var/log/cups/error_log
Как добавить принтер на удалённый сервер?
Если принтер подключён к другому компьютеру в сети, вы можете подключиться к нему через IPP или Samba.
Для IPP (если на удалённом компьютере запущен CUPS):
sudo lpadmin -p Remote_Printer -E -v ipp://192.168.1.101:631/printers/HP_OfficeJet -m everywhere
Для Samba (если принтер расшарен через Windows):
sudo lpadmin -p Samba_Printer -E -v smb://WORKGROUP/SERVER/PrinterName -m everywhere
В обоих случаях убедитесь, что на удалённом компьютере разрешён доступ к принтеру.
Где хранятся конфигурационные файлы принтеров?
Основные файлы конфигурации CUPS расположены в директории /etc/cups/:
/etc/cups/printers.conf— список всех настроенных принтеров./etc/cups/cupsd.conf— основной конфигурационный файл службы./etc/cups/ppd/— файлы PPD (PostScript Printer Description) для каждого принтера.
Не редактируйте эти файлы вручную, если не уверены в последствиях. Для изменений используйте команды lpadmin или веб-интерфейс CUPS.