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


28

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

Я использую Ubuntu Server 12.04, и мне нужно скопировать файлы в общий каталог, а затем загрузить их с настольного дистрибутива Ubuntu, чтобы распечатать их.

Любая помощь приветствуется


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

я не знаю, почему они понизили мой ответ, просто попробуйте.
Nux

@nux +1 Все ответы отличные, спасибо вам всем
kamil

@alexis Мне ясно: я хочу напечатать вывод консоли. Например, вывод ls прямо на принтер
kamil

Ой, действительно, ты сказал, и я пропустил это, извини!
Алексис

Ответы:


35

В основном есть две команды по умолчанию:

lpr а также lp

man lpr дает вывод:

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

man lp дает вывод:

lp отправляет файлы на печать или изменяет отложенную работу. Используйте имя файла «-» для принудительной печати со стандартного ввода.

так легко используйте команду:

lp /path-to-file-to-print

Или

lpr /path-to-file-to-print

15

Вы можете использовать lp

Например:

man firefox | lp -d printername

Это распечатает страницу руководства из Firefox на указанном принтере


1
Спасибо, мне также нужно было использовать, o fit-to-pageчтобы текст на странице был немного лучше. man bash | lp -o media=letter -o portrait -o fit-to-page -, -в конце обеспечивает чтение стандартного ввода.
Элайджа Линн

1
Если ваш принтер по умолчанию, вам не нужен -dпараметр. В Ubuntu с Unity принтер по умолчанию устанавливается, нажав кнопку «Поиск», затем напечатав «print», и вы попадете в нужное место, где можно установить значение по умолчанию. Кроме того, lpв примере говорится, что вы работали с Unix в течение некоторого времени. lprработает так же на Ubuntu.
SDsolar

4

Если они у вас установлены, есть еще пара вариантов, о которых стоит знать.

а также

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

Я использую их с принтерами с поддержкой Postscript, но считаю, что система печати Ubuntu может растеризовать PS для любого поддерживаемого принтера.


это хорошая идея
Камил

Конечно, лучше, чем кодирование PostScript напрямую.
SDsolar

3

Вы можете узнать, как получить доступ к принтеру в первую очередь - lpstatдаст вам эту информацию. Если вы сравните его выходные данные в обеих системах, вы, вероятно, сможете определить, был ли данный принтер настроен на обеих из них. lpstat -p -dперечисляет все принтеры с их статусом и сообщает, какой из них был установлен в качестве принтера по умолчанию.

Тогда вы можете просто передать свой вывод команде lpили lpr. Вы можете хотеть вставить фильтр для симпатичной печати или нумерации страниц все же. В руководстве Debian есть хорошее резюме инструментов "Подсветка и форматирование простых текстовых данных" , но я обычно просто использую, sedчтобы выделить подсказки и другие вещи перед отправкой всего черезa2ps


2

Чтобы напечатать файл .txt в использовании:

command | lpr -P printername -p ( periority from 1 to 100 )

Пример :

ls -l | lpr -P printername -p 1 

1

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

  1. Убедитесь, что система CUPS установлена ​​и работает. Он предоставляет демонов, которые будут обрабатывать ваши задания на печать.
  2. Как только это произойдет, вам нужно настроить один или несколько сетевых принтеров для печати. Обычный способ установки принтеров - с помощью утилиты « Администратор принтера» , но вы, очевидно, не настроены на запуск каких-либо программ с графическим интерфейсом с вашего сервера - просто доступ через командную строку через ssh. Поскольку у вас уже есть настольная система Ubuntu в той же сети, я бы попробовал скопировать содержимое каталога /etc/cupsиз окна рабочего стола на сервер. Он должен содержать все определения принтера и необходимые драйверы. Проверьте файлы на наличие необходимых настроек (в случае, если в вашей настройке указаны идентификаторы пользователей или пароли, которые различаются в двух системах), перезапустите компьютер cupsd, и, если вам повезет, вы сможете использовать его lprдля печати из командной строки.

PS. В крайнем случае, вы можете установить достаточно X-утилит, чтобы запустить утилиту Print Admin GUI через удаленное X-подключение к вашему Ubuntu на рабочем столе (войти в систему ssh -X) и определить нужные вам принтеры. Но, надеюсь, в этом не будет необходимости.


1

Вы можете использовать lpкоманду.

Чтобы распечатать вывод команды на принтере по умолчанию (используйте, lpstat -dчтобы увидеть, что принтер по умолчанию):

echo "test" | lp

Для печати на определенный принтер (используйте lpstat -p | awk '{print $2}'для вывода списка доступных имен принтеров):

echo "test" | lp -d printername

Чтобы напечатать файл, а не вывод команды:

lp /path/to/file
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.