Linux printing from console

Linux printing 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 в командной строке.

Читайте также:  Как открыть файл ipynb windows

Список всех возможных команд перечислен на странице руководства команды 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 вручную, вы можете иметь множество определений принтера для каждого физического принтера. Каждое для различных размеров бумаги, разрешений и т.п.

Источник

Печать из командной строки Linux

Оригинал: Printing from the Linux command line
Автор: Sandra Henry-Stocker
Дата публикации: 20 марта 2019 года
Перевод: А. Кривошей
Дата перевода: апрель 2016 г.

Печать из командной строки Linux очень проста. Вы используете команду lp, чтобы запросить печать, и lpq, чтобы увидеть, какие задания на печать находятся в очереди, но все становится немного сложнее, когда вы хотите печатать на двух сторонах листа или в портретном режиме. И есть много других вещей, которые вы можете захотеть сделать — например, распечатать несколько копий документа или отменить задание на печать. Давайте проверим некоторые опции, чтобы, когда вы печатаете из командной строки, ваши распечатки выглядели именно так, как вы хотите.

Вывод параметров принтера

Чтобы просмотреть настройки принтера из командной строки, используйте команду lpoptions. Вывод должен выглядеть примерно так:

Этот вывод, вероятно, будет немного более дружественным к человеку, если вы превратите его пробелы в возврат каретки. Обратите внимание, сколько настроек указано в списке.

ПРИМЕЧАНИЕ. В приведенном ниже выводе некоторые строки были повторно связаны, чтобы сделать этот вывод более читабельным.

С опцией -v команда lpinfo выведет список драйверов и связанной с ними информации.

Команда lpoptions покажет настройки вашего принтера по умолчанию. Используйте параметр -p, чтобы указать один из нескольких доступных принтеров.

Команда lpstat -p отображает состояние принтера, а команда lpstat -p -d также выводит список доступных принтеров.

Полезные команды

Чтобы распечатать документ на принтере по умолчанию, просто используйте команду lp, а затем имя файла, который вы хотите распечатать. Если имя файла содержит пробелы (что редко встречается в системах Linux), либо поместите имя в кавычки, либо начните вводить имя файла и нажмите клавишу табуляции, чтобы вызвать завершение файла (как показано во втором примере ниже).

Команда lpq отображает очередь печати.

Команда lp с опцией -n позволяет вам указать количество копий, которое вы хотите напечатать.

Чтобы отменить задание на печать, вы можете использовать команду cancel или lprm. Если вы не будете действовать быстро, то можете увидеть это:

Двусторонняя печать

Чтобы печатать в двухстороннем режиме, вы можете ввести команду lp с параметром sides, в котором указано, как печатать на обеих сторонах листа, и вид переплета (сбоку или сверху). Этот параметр представляет обычный способ, при которым вы получите двусторонний документ в портретном режиме.

Если вы хотите, чтобы все ваши документы печатались в двухстороннем режиме, вы можете изменить настройки lp для sides с помощью команды lpoptions.

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

Печать в ландшафтном режиме

Для печати в ландшафтном режиме вы должны использовать параметр landscape с командой lp.

Система печати, используемая в системах Linux, — это основанная на стандартах система печати с открытым исходным кодом, называемая CUPS, первоначально обозначавшая Common Unix Printing System. Она позволяет компьютеру выступать в качестве сервера печати.

Источник

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 будут распечатаны в альбомном формате. Вы также можете задать принтер в этой же команде:

Источник

Команда 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.

Источник

Читайте также:  Sed linux ������ ������
Оцените статью