Пользователи обычно используют для печати файлов утилиту lpr. Команда lpr берет на себя заботы о всей предварительной обработке, необходимой для печати файла, и затем передает управление другой программе, lpd, демону линейной печати. Демон линейной печати непосредственно взаимодействует с принтером и указывает ему, как печатать переданный файл.
Когда выполняется команда lpr, она первым делом копирует заданный файл в определенную директорию (spool directory), где файл остается, пока lpd печатает его. Когда lpd получает сообщение о том, что есть файл для печати, он запускает свою копию процесса. Эта копия процесса будет печатать наш файл, в то время как оригинальный процесс будет ждать других запросов. Это позволяет обслуживать много заданий печати одновременно.
Синтаксис lpr очень прост,
$ lpr [ опции ] [ имя_файла ... ]
Если имя_файла не задано, lpr ожидает ввод данных со стандартного ввода (обычно клавиатура, или вывод другой программы). Это позволяет пользователям перенаправлять вывод команд в очередь печати, например, вот так,
$ cat thesis.txt
lpr|
или,
$ pr -l60 thesis.txt
lpr|
Команда lpr принимает несколько аргументов командной строки, что позволяет пользователям контролировать ее работу. Вот некоторые из часто используемых аргументов:
$ lpr -#2 -sP dj thesis.txt
Эта команда создает символическую ссылку на файл thesis.txt в директории спулинга для принтера названного dj, где он будет обработан демоном печати lpd. Затем будет напечатана вторая копия файла thesis.txt.