В этом руководстве мы рассмотрим печать из командной строки в Linux.
Необходимые условия
- Для выполнения действий, описанных в данном руководстве, необходимы следующие компоненты:
- Правильно настроенная система Linux. Подробнее о настройке виртуальных машин Ubuntu и Arch Linux в VirtualBox.
- Базовое понимание интерфейса командной строки Linux.
Принтеры в Linux
Linux - это универсальная операционная система. Она может выполнять простые повседневные задачи и справляться даже с масштабной инфраструктурой. Печать - это общая задача, с которой могут справиться все системы Linux.
В этом руководстве мы настроим фиктивный принтер, который будет печатать вывод в /dev/null. Мы также покажем, как отправить документ на принтер и управлять очередью печати.
Настройка демонстрационного принтера
Для настройки демонстрационного принтера мы будем использовать CUPS (Common UNIX Printing System). Это свободно распространяемый модуль печати, который большинство дистрибутивов Linux используют в качестве стандарта для управления принтерами.
Установка CUPS
Сначала установите CUPS с помощью APT:
1 | sudo apt install cups |
Далее включите и запустите службу CUPS:
1 | sudo systemctl enable --now cups |
Создание тестового принтера
Теперь создайте фиктивный принтер, печатающий на /dev/null:
1 | sudo lpadmin -p demo-printer -E -v file:///dev/null |
Если действие выполнено успешно, то он появится в списке принтеров:
1 | sudo lpstat -s |
Опционально мы можем отметить наш новый принтер как принтер по умолчанию:
1 | sudo lpoptions -d demo-printer |
Печать из командной строки
Теперь, когда наш принтер готов, пора приступить к печати.
Базовое использование
Чтобы распечатать документ, используйте команду "lp":
1 | lp [файл_к_печати] |
Поскольку принтер не указан, lp отправляет документ на печать на принтер по умолчанию. Если вы сконфигурировали демонстрационный принтер, печатающий в /dev/null, то на самом деле он не будет производить никакого вывода.
Печать нескольких копий
Чтобы распечатать несколько копий документа, выполните следующую команду:
1 | lp -n [количество_копий] [файл_к_печати] |
Очередь печати
При работе с реальными принтерами обычно требуется некоторое время для завершения печати одной копии. Однако у вас может быть несколько документов, которые вы хотите распечатать. Что делать в такой ситуации?
Благодаря функции очереди печати вы можете отправить на печать сразу все документы. Сервер CUPS хранит дополнительные документы в буфере. Как только текущее задание печати завершается, он автоматически отправляет на печать новый документ.
Для просмотра списка отпечатков, которые в данный момент находятся в очереди, используйте следующую команду:
1 | lpq |
Отмена задания печати
Что делать, если вы случайно отправили на печать не тот документ? Пока документ еще не отправлен на принтер, мы можем удалить его из очереди печати:
1 | cancel [номер_задания_печати] |
Однако делать это следует быстро. Иначе документ будет уже напечатан.
Двусторонняя печать
По умолчанию большинство принтеров настроены на одностороннюю печать. Однако мы можем указать CUPS на двухстороннюю печать:
1 | lp -o sides=two-sided-long-edge [файл_к_печати] |
Если вы хотите сделать двухстороннюю печать конфигурацией по умолчанию, используйте следующую команду:
1 | lpoptions -o sides=two-sided-short-edge |
Если необходимо вернуться к односторонней печати, выполните следующую команду:
1 | lpoptions -o sides=one-sided |
Ландшафтная печать
Мы также можем указать печать в альбомном режиме. Для этого выполните следующую команду:
1 | lp -o landscape [файл_к_печати] |
Другие возможности CUPS
До сих пор мы изучали различные способы печати документов. В этом разделе мы поработаем над самой конфигурацией CUPS.
Вывод списка подключенных принтеров
Чтобы получить список всех принтеров, подключенных к системе, выполните следующую команду:
1 | lpstat -a |
Установка принтера по умолчанию
При печати из командной строки без указания принтера команда "lp" отправляет документ на принтер по умолчанию.
Существует несколько способов задать принтер по умолчанию. Как было показано в начале данного руководства, для задания принтера по умолчанию можно использовать команду "lpoptions":
1 | sudo lpoptions -d [имя_принтера] |
В качестве альтернативы можно использовать переменную окружения PRINTER для указания принтера по умолчанию:
1 | export PRINTER=[имя_принтера] |
Если вы хотите сделать это изменение постоянным, добавьте эту строку в файл "bashrc":
1 2 | tail ~/.bashrc echo "export PRINTER=<имя_принтера>" >> ~/.bashrc |
Заключение
Мы продемонстрировали различные способы печати документа из командной строки. Мы использовали уровень печати CUPS, поскольку это стандартное решение для печати, поддерживаемое большинством дистрибутивов Linux. Хотя в руководстве использовался виртуальный принтер, любой физический принтер может работать, если у вас установлен соответствующий драйвер и он поддерживает обмен данными с CUPS.