BASH Programming - Введение

       

Печать файлов используя lpr


Наиболее простой путь для печати в операционной системе Linux это посыл файла для печати прямо на устройство печати. Для того чтобы сделать это используется команда cat. Как пользователь root, наберите что-то подобное этому

# cat thesis.txt > /dev/lp

В этом случае, /dev/lp это символическая ссылка на устройство печати -- это может быть матричный или лазерный принтер, typesetter, или плоттер. (См. ln(1) для более полной информации о символических ссылках)

В целях безопасности, только пользователь root и пользователи в той же группе что и демон принтера могут писать прямо на принтер. Поэтому такие команды как lpr, lprm, and lpq

должны использоваться для доступа к принтеру.

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

Когда выполняется команда lpr, она первым делом копирует заданный файл в определенную директорию (spool directory), где файл остается пока lpd печатает его. Когда lpd сообщают, что есть файл для печати, он запускает копию своего процесса (что программисты называют forking). Эта копия процесса будет печатать наш файл в то время как оригинальный процесс будет ждать других запросов. Это позволяет обслуживать много заданий печати в одно время.

Синтаксис lpr(1) очень прост,

$ lpr [ опции ] [ имя_файла ... ]

Если имя_файла не задано, lpr ожидает ввод данных со стандартного вводаexpects (обычно клавиатура, или вывод другой программы). Это позволяет пользователям перенаправлять вывод комманд в очередь печати. Вот так,

$ cat thesis.txt | lpr

или,

$ pr -l60 thesis.txt | lpr

Команда lpr принимает несколько аргументов командной строки что позволяет пользователям контролировать его работу. Вот некоторые из часто используемых аргументов: -Pprinter определяет какой принтер использовать, -h suppresses printing of the burst page, -s создает символическую ссылку вместо копирования файла в директорию спула (полезно для больших файлов), и -#num определяет количество копий печати. Пример взаимодействия с lpr может выглядеть подобно этому

$ lpr -#2 -sP dj thesis.txt

Эта команда создает символическую ссылку на файл thesis.txt в директории спула для принтера названного dj, где он будет обработан демоном печати lpd. Затем будет напечатана вторая копия файла thesis.txt.

Для просмотра всех опций, которые может принимать lpr, смотрите мануал по lpr(1).



Содержание раздела