Linux print from console

Linux print from console

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

Система печати Linux — lp система — это порт исходного кода написанного в Университете Калифорнии для BSD версии операционной системы UNIX.

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

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

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

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

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

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

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

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

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

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

Для просмотра содержимого очереди печати используется команда lpq . Команда запущенная без аргументов, она возвращает содержимое очереди печати принтера по умолчанию.

Вывод возвращаемый lpq может быть полезен для многих целей.

Другое полезное свойство любой системы печати это возможность отмены задания, которое было перед этим помещено в очередь. Чтобы сделать это используйте команду lprm .

Показанная выше команда отменяет все задания печати владельцем котрых является пользователь выполнивший эту команду. Для того чтобы отменить одиночное задание печати, надо сначала получить номер задания с помощью команды lpq и затем сообщить полученный номер команде lprm . Например,

отменит задание номер 31 ( thesis.txt ) на принтере по умолчанию.

Программа lpc (8) используется для контроля принтеров, которые обслуживает демон lpd. Вы можете разрешать или запрещать использование принтера или их очередей, перераспределять задания внутри очереди, и получать информацию о состоянии принтеров и их очередей. Lpc наиболее часто используется в системах, где несколько принтеров установлено на одну машину.

Команда показанная выше запускает программу lpc. По умолчанию, она входит в интерактивный режим и вы можете начинать вводить команды. Другие опции используются для запуска команды lpc в командной строке.

Список всех возможных команд перечислен на странице руководства команды lpd , но здесь перечислено несколько главных команд, которые вы должны знать. Любые команды обозначенные как option могут быть либо именем принтера (lp, print, etc) или ключевым словом all , которое обозначает все принтера.

  • disable option — запрещает добавление любых новых заданий печати
  • down option — запрещает все задания на принтере
  • enable option — разрешает ввод новых заданий в очередь печати
  • quit (or exit) — покинуть lpc
  • restart option — перезагрузить lpd для данного принтера
  • status option — статус печати принтера
  • up option — разрешить все и стартовать новый демон lpd

Небольшое замечание here on RedHat’s amazing printtool program.

Она умеет делать все, что должен делать magicfilter. RedHat уже установил много программ для использования фильтров. Здесь показано как установить принтер HP LJ 4L, подключенный к параллельному порту, в RedHat 4.0 (эта процедура должна быть одинаковой для всех версий RH).

  • Войдите как root и запустите printtool (если вы используете команду su, вы должны установить SETENV DISPLAY :0.0 и xhost +).
  • Щелкните кнопку «Add» («Добавить»), и нажмите «OK» для локального принтера.
  • Заполните поле именем устройства печати (например /dev/lp1)
  • Заполните поле входного фильтра — Выберите тип принтера, разрешение и размер бумаги (ljet4, 300×300 и letter для нашего примера)
  • Нажмите «OK», и перезапустите lpd.

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

Источник

lpr: печать из командной строки

Команда lpr (line printer) печатает файл из терминала Linux. Утилита lpr помещает один или несколько файлов в очередь печати. Концепция очереди позволяет нескольким пользователям системы направлять вывод на один принтер. Очередь печатается последовательно, то есть первый файл в очереди будет напечатан первым. Если вы редактируете большинство своих файлов в консольных редакторах, таких как vim или nano, и хотите быстро распечатать набранный текст, вы найдете команду lpr очень легкой в употреблении и удобной. Для того, чтобы печатать с помощью команды lpr, необходимо установить пакет System printer configuration. Это можно сделать с помощью следующих команд:

В Debian/Ubuntu:

В Fedora/Cent OS/RedHat:

В других дистрибутивах пакет system-config-printer также должен иметься в репозиториях.

Откройте его и кликните Add.

Выберите и добавьте свой принтер

Команда lpr:

Для печати тестового файла просто введите:

Список сетевых принтеров:

Чтобы получить список всех доступных сетевых принтеров, введите команду:

Печать на заданный принтер:

Если доступно несколько принтеров, вы можете использовать опцию -P, чтобы указать нужный вам принтер.

Пробел после -P вставлять необязательно:

Проверка состояния:

Проверить состояние очереди печати определенного принтера можно с помощью команды lpq.

Очистка очереди печати:

Как вы могли видеть из вывода приведенной выше команды, каждая очередь печати имеет уникальный id. Вы можете удалить файлы из очереди печати с помощью команды lprm:

Чтобы отменить все задания на печать, используется следующая команда:

Печать всех файлов в директории:

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

Все файлы с расширением .txt будут распечатаны в альбомном формате. Вы также можете задать принтер в этой же команде:

Источник

Linux lpr command

On Unix-like operating systems, the lpr command submits print jobs.

Printing in Linux

The simplest way to print in Linux is to cat a file to the printing device, like this:

What this command does is read the file my-file-to-print.txt and send it, byte by byte, to the printer device /dev/lp. This name is a symbolic link to the device, and may vary. Your printer may be another device name, for instance lp0. Normally cat sends its output to standard output (the terminal) but here we redirect it to the device /dev/lp with the > operator. Only the superuser can write directly to the printer device, which is why we have to preface the command with sudo.

lpr is much more user-friendly than this, however, and it allows you to queue print jobs. And most importantly, it allows you to access the printer device without being the superuser.

Installing lpr, lpd, and CUPS

The way lpr works, in a nutshell, is: it reads in the file and hands the printable data over to the linux printing daemon, lpd. lpd is a legacy piece of software for Linux, but it is supported under the modern system used by most Linux distributions, CUPS (the Common Unix Printing System).

You may need to manually install CUPS, and lpr itself, to print this way. If you’re operating Debian, or a Debian-derived Linux system like Ubuntu that uses the APT package managements system, you can install them by running the following command:

This command will install the Common Unix Printing System on your system. You can now set up CUPS by directing any web browser to the address: http://localhost:631

Doing so opens a web-based CUPS configuration screen, which should look something like this:

Then, from the command line, add your user to the group lpadmin with the command:

This command adds you to the group of users allowed to administer printers on your system. Now go back to the CUPS web administration panel, and under the administration tab, select «Add Printer.» You will be prompted for your username and password, and you can set up a new printer.

Description

lpr submits files for printing. Files named on the command line are sent to the named printer (or the default destination if no destination is specified). If no files are listed on the command-line, lpr reads the print file from the standard input.

Syntax

Options

-E Forces encryption when connecting to the server.
-H server[:port] Specifies an alternate server.
-C «name«

-T «name« Sets the job name. -P destination[/instance] Prints files to the named printer. -U username Specifies an alternate username. -# copies Sets the number of copies to print from 1 to 100. -h Disables banner printing. This option is equivalent to «-o job-sheets=none«. -l Specifies that the print file is already formatted for the destination and should be sent without filtering. This option is equivalent to «-o raw«. -m Send an e-mail when a job is complete. -o option[=value] Sets a job option. -p Specifies that the print file should be formatted with a shaded header with the date, time, job name, and page number. This option is equivalent to «-o prettyprint» and is only useful when printing text files. -q Hold job for printing. -r Specifies that the named print files should be deleted after printing them.

Examples

Submits a request to print the file myfile.txt.

cat a file (myfile.txt), piping the output to lpr, which reads its contents from standard input and sends it to the print daemon for printing.

Print 3 copies of myfile.txt.

hostname — Set or print the hostname of system.
lp — Print a file on the System V operating system.
lpc — Control line printers.
lpq — List the status of available printers.
lprm — Remove requests from the print queue.
lpstat — List the status of the LP print services.
mail — Read, compose, and manage mail.

Источник

Команда printf. Оболочка Bash в Linux

Главное меню » Linux » Команда printf. Оболочка Bash в Linux

Команда printf форматирует и печатает свои аргументы, аналогично функции printf() в C.

Команда printf

printf это оболочка, встроенная в Bash и другие популярные оболочки, такие как Zsh и Ksh. Существует также автономный двоичный файл /usr/bin/printf, но встроенная версия оболочки имеет преимущество. Мы рассмотрим встроенную версию Bash printf.

Синтаксис команды printf следующий:

Опция -v – указывает printf не печатать выход , но и присвоить его переменной.

format – строка, которая может содержать три различных типа объектов:

  • Обычные символы, которые просто выводятся на печать как есть.
  • Символы с обратной косой чертой, которые интерпретируются и затем печатаются.
  • Спецификации преобразования, которые описывают формат и заменяются значениями соответствующих аргументов, следующих за строкой формата.

Команда принимает любое количество arguments. Если в arguments указано больше, чем спецификаторы формата, строка format используется повторно для использования всех аргументов. Если в arguments указано меньше спецификаторов формата, дополнительные спецификаторы числового формата устанавливаются в нулевое значение, а спецификаторы строкового формата – в нулевую строку.

Ниже приведены несколько моментов, которые следует учитывать при передаче аргументов команде printf:

  • Оболочка заменит все переменные, подстановочные знаки и специальные символы перед передачей аргументов в команду printf.
  • При использовании одинарных кавычек будет ”сохранено буквальное значение каждого символа, заключенного в кавычки. Переменные и команды не будут расширены.

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

Строка Open issues: %s\nClosed issues: %s\n – это format, «34» и «65» являются аргументами. Строка формата содержит два символа новой строки (\n) и два спецификатора формата (%s), которые заменяются аргументами.

Команда printf не добавляет символ новой строки ( \n) в конце строки.

Символы с обратной косой чертой

Символы с обратной косой чертой интерпретируются при использовании в строке формата или в аргументе, соответствующем спецификатору преобразования %b. Вот список наиболее распространенных escape-символов:

  • \\ – Отображает символ обратной косой черты.
  • \b – Отображает символ возврата на одну позицию.
  • \n – Отображает новую строку.
  • \r – Отображает возврат каретки.
  • \t – Отображает горизонтальную вкладку.
  • \v – Отображает вертикальную вкладку.

Конверсионные характеристики

Спецификация преобразования принимает следующую форму:

Каждая спецификация преобразования звезды с знаком процента (%), включает в себя дополнительные модификаторы и заканчивается одним из следующих букв, которые представляют собой тип данных (specifier) соответствующего аргумента: aAbcdeEfgGioqsuxX.

Спецификатор преобразования типа

Преобразование типа specifier – это символ, который определяет, как интерпретировать соответствующий аргумент. Этот символ обязателен, и он помещается после необязательных полей.

Ниже приведен список, показывающий все преобразования типов и то, что они делают:

  • %b – Распечатайте аргумент, расширяя escape – последовательности обратной косой черты.
  • %q – Вывести аргумент в кавычках, многократно используемый в качестве ввода.
  • %d, %i- Печать аргумента как десятичное целое.
  • %u – Вывести аргумент в виде десятичного целого числа без знака.
  • %o – Вывести аргумент в виде восьмеричного целого без знака.
  • %x, %X – Вывести аргумент в виде шестнадцатеричного целого числа без знака. %x печатает строчные буквы и %X печатает прописные.
  • %e, %E – Вывести аргумент в виде числа с плавающей запятой в экспоненциальной записи. %e печатает строчные буквы и %E печатает прописные.
  • %a, %A – Вывести аргумент в виде числа с плавающей запятой в шестнадцатеричной дробной записи. %a печатает строчные буквы и %A печатает прописные.
  • %g, %G – Вывести аргумент в виде числа с плавающей точкой в обычной или экспоненциальной записи, в зависимости от того, что больше подходит для данного значения и точности. %g печатает строчные буквы и %G печатает прописные.
  • %c – Распечатать аргумент в виде одного символа.
  • %f – Распечатайте аргумент как число с плавающей точкой.
  • %s – Распечатать аргумент в виде строки.
  • %% – Напечатайте буквальный символ %.

Число без знака представляет ноль и положительные числа, а число со знаком представляет отрицательные, ноль и положительные числа.

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

Флаги директивы

Флаги являются первыми необязательными модификаторами и используются для установки выравнивания, начальных нулей, префиксов и т. д.

Вот самые распространенные из них:

  • — Выровнять напечатанный текст по полю слева. По умолчанию текст выравнивается по правому краю.
  • +- Префикс номера со знаком +или -. По умолчанию только отрицательные числа имеют префикс со знаком минус.
  • 0 – Числа дополняются нулями, а не пробелами.
  • blank – Префикс положительных чисел с пробелом и отрицательных чисел с минусом ( -).
  • #- Альтернативный формат для чисел.

Директива ширины

Указанная директива width помещается после любых символов флага и определяет минимальное количество символов, которое должно привести к преобразованию.

Если ширина выводимого текста меньше указанной ширины, он дополняется пробелами. Ширина может быть указана как неотрицательное десятичное целое число или звездочка ( *).

%20s означает установить поле длиной не менее 20 символов. Пробелы добавляются перед текстом, потому что по умолчанию вывод выровнен по правому краю. Чтобы выровнять текст по левому краю, используйте флаг (%-20s).

Когда звездочка ( *) используется в качестве директивы width, тогда ширина поля преобразования устанавливается аргументом ширины, который предшествует форматируемому аргументу.

В приведенном ниже примере мы устанавливаем ширину 10:

0 – это флаг, который дополняет число начальными нулями вместо пробелов. Выходной текст будет содержать не менее 10 символов:

Директива точности

Модификатор .precision состоит из точки (.) с последующей положительным целым числом или звездочкой (*), которые в зависимости от типа спецификатора, задает число строк или цифровых символов или количество знаков после запятой для печати.

Точность имеет следующий эффект:

  • Если тип преобразования является целым числом, точность определяет минимальное количество цифр для печати. Если количество цифр в аргументе меньше точности, выводятся начальные нули.
  • Если тип преобразования является плавающей точкой, точность указывает количество цифр, следующих за символом десятичной запятой. Точность по умолчанию – 6.
  • Если тип преобразования является строкой, точность определяет максимальное количество символов для печати. Если количество символов в аргументе превышает точность, лишние символы усекаются.

Вот пример, показывающий, как округлить число с плавающей запятой до 3 десятичных знаков:

Когда для точности задана звездочка ( *), ее значение задается аргументом точности, который предшествует форматируемому аргументу.

Вывод

Команда printf принимает формат и аргументы и печатает форматированный текст.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Читайте также:  Astra linux система пакетов
Оцените статью