Поиск по сайту:

Распечатайте файлы с вашего терминала Linux


Чтобы распечатать файл с вашего терминала, используйте команду lpr.

Печать в Linux проста, но иногда кажется, что запуск приложения, открытие файла, поиск пункта Печать в меню, нажатие кнопки подтверждения и т. д. требует больших усилий. Когда вы являетесь пользователем терминала Linux, вам часто хочется выполнять сложные действия с помощью простых триггеров. Печать сложна, и нет ничего проще, чем команда lpr.

Печать с помощью команды lpr

Чтобы распечатать файл с вашего терминала, используйте команду lpr:

$ lpr myfile.odt

Если это не поможет, вам необходимо установить принтер по умолчанию или указать принтер вручную.

Установка принтера по умолчанию

Согласно моей потрепанной копии руководства по Berkeley 4.2, напечатанному в 1984 году, команда lpr разбивала файл на страницы и отправляла файл в спул принтера, который передавал данные в потоковом режиме на нечто, называемое линейным принтером.

Рисунок 1: Команда lpr.

В наши дни фактической команды lpr недостаточно, поскольку современные компьютеры, скорее всего, будут иметь доступ к нескольким принтерам, и, конечно же, к принтерам, которые намного сложнее, чем матричный линейный принтер. Теперь есть подсистема, называемая Common Unix Printing System (CUPS), которая отслеживает все принтеры, к которым вы хотите, чтобы ваш компьютер имел доступ, какой драйвер ваш компьютер должен использовать для связи с каждым принтером, какой принтер использовать по умолчанию и скоро. Команды lpr.cups или lpr-cups, поставляемые в комплекте с CUPS и обычно имеющие символическую ссылку на lpr, позволяют вам печатать с терминала, ссылаясь на ваш Сначала настройте общую систему печати Unix (CUPS).

Чтобы распечатать файл с помощью lpr, вам следует сначала установить принтер по умолчанию. Вы можете установить принтер по умолчанию в настройках принтера вашей системы:

Рисунок 2. Установите принтер по умолчанию.

Альтернативно вы можете пометить принтер как принтер по умолчанию с помощью команды lpadmin:

$ sudo lpadmin -d HP_LaserJet_P2015_Series
$ lpstat -v
device for HP_LaserJet_P2015_Series: ipp://10.0.1.222:631/printers/HP_LaserJet_P2015_Series

Установка места назначения по умолчанию с помощью переменных среды

Вам не разрешено устанавливать собственный принтер по умолчанию в системах, в которых у вас нет учетной записи администратора, поскольку изменение мест назначения печати считается привилегированной задачей. Прежде чем lpr ссылается на CUPS в качестве места назначения, он запрашивает в вашей системе переменную среды PRINTER.

В этом примере HP_LaserJet_P2015_Series — это удобочитаемое имя, присвоенное принтеру. Установите для PRINTER это значение:

$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER

После установки переменной PRINTER вы можете распечатать:

$ lpr myfile.pdf

Получить список подключенных принтеров

Вы можете просмотреть все принтеры, принимающие задания на печать и подключенные к вашей системе, с помощью команды lpstat:

$ lpstat -a
HP_LaserJet_P2015_Series accepting requests since Sun 1 Aug 2021 10:11:02 PM NZST
r1060 accepting requests since Wed 18 Aug 2021 04:43:57 PM NZST

Печать на произвольный принтер

После того как вы добавили принтеры в свою систему и теперь знаете, как их идентифицировать, вы можете печатать на любом из них, независимо от того, установлен ли у вас пункт назначения по умолчанию или нет:

$ lpr -P HP_LaserJet_P2015_Series myfile.txt

Как определяются принтеры

CUPS имеет удобный интерфейс, доступный через веб-браузер, например Firefox. Несмотря на то, что в качестве пользовательского интерфейса он использует веб-браузер, на самом деле это служба, работающая локально на вашем компьютере (местоположение под названием localhost) через порт 631. CUPS управляет принтерами, подключенными к вашему компьютеру, и хранит конфигурация в /etc/cups/printers.conf.

Файл printers.conf состоит из определений, подробно описывающих устройства печати, к которым может получить доступ ваш компьютер. Вы не должны редактировать его напрямую, но если вы это сделаете, сначала вам необходимо остановить демон cupsd.

Типичная запись выглядит примерно так:

<Printer r1060>
  Info Ricoh 1060
  Location Downstairs
  MakeModel Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.6
  DeviceURI lpd://192.168.4.8
  State Idle
  StateTime 1316011347
  Type 12308
  Filter application/vnd.cups-raw 0 -
  Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
  Accepting Yes
  Shared No
  JobSheets none none
  QuotaPeriod 0
  PageLimit 0
  KLimit 0
  OpPolicy default
  ErrorPolicy stop-printer
</Printer>

В этом примере имя принтера — r1060 — удобочитаемый идентификатор Ricoh Aficio 1060.

Атрибут MakeModel извлекается из команды lpinfo, которая выводит список всех доступных драйверов принтеров в вашей системе. Предполагая, что вы знаете, что у вас есть Ricoh Aficio 1060, на котором вы хотите печатать, вы должны ввести следующую команду:

$ lpinfo -m | grep 1060
gutenprint.5.2://brother-hl-1060/expert Brother HL-1060 - CUPS+Gutenprint v5.2.11
gutenprint.5.2://ricoh-afc_1060/expert Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11

Эта команда выводит список соответствующих установленных вами драйверов.

MakeModel — это последняя половина результата. В данном примере это Ricoh Aficio 1060 — CUPS+Gutenprint v5.2.11.

Атрибут DeviceURI определяет, где находится принтер в сети (или физическое местоположение, например порт USB). В этом примере DeviceURI — это lpd://192.168.4.8, поскольку для отправки я использую протокол lpd (демон линейного принтера). данные на сетевой принтер. В другой системе у меня есть HP LaserJet, подключенный с помощью USB-кабеля, поэтому DeviceURI — это DeviceURI hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429.

Печать с терминала

Отправка задания на принтер — простой процесс, если вы понимаете, какие устройства подключены к вашей системе, и как их идентифицировать. Печать с терминала выполняется быстро, эффективно и легко запрограммирована или выполняется в виде пакетного задания. Попробуйте!

Статьи по данной тематике: