Имя принтера в linux

Как вывести список имен принтеров, приемлемых для использования с lpr?

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

-P destination[/instance] Prints files to the named printer. 

Я «добавил» различные принтеры в локальные ресурсы Samba, используя графический интерфейс в Ubuntu/Gnome. Как я могу получить список этих доступных принтеров в формате, который ожидает флаг -P (предпочтительно из оболочки bash)?

2 ответа 2

Чтобы получить список вы можете использовать:

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

lpstat + read + array:

$ while read l; do l=($l); echo "$"; done  

lpstat + awk:

lpstat + cut:

cat + grep + вырезать в /etc/printcap :

$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v 

Вот что показано, по одному на строку:

HP_LaserJet_P1606dn HP_Deskjet_2540_series HP_LaserJet_M1212nf GCP-Save_to_Google_Docs 

Я чувствую, что решения lpstat более элегантны и надежны. Главным образом потому, что /etc/printcap не был найден в некоторых системах, которые я тестировал.

Использование awk или cut зависит от того, что вы установили и предпочитаете. Опция bash read + bash array должна работать на любой оболочке bash без необходимости внешних операций.

РЕДАКТИРОВАТЬ: Я сказал, что отмеченное решение не работает для меня на Amazon Linux. Но я думаю, это работает, если вы просто хотите скопировать имена принтеров из середины остальной части вывода. Работает так же, как использование только lpstat -a .

$ lpstat -p -d printer HP_Deskjet_2540_series is idle. enabled since Tue 22 Dec 2015 01:12:10 PM BRST . . . printer GCP-Save_to_Google_Docs is idle. enabled since Tue 15 Dec 2015 02:13:33 AM BRST system default destination: HP_LaserJet_P1606dn 

Источник

unixforum.org

хочу настроить печать через самбу. в smb.conf для этого нужно указать параметр "printer name". а что в нем написать? я так понял, там нужно указать системное имя принтера, но как его узнать?

Re: как узнать системное имя принтера?

Сообщение Redfoxnet » 31.12.2007 13:14

Portage 2.1.7.16 (default/linux/amd64/10.0, gcc-4.4.2, glibc-2.11-r1, 2.6.32-gentoo-r2 x86_64) @ Intel® Core™2 Duo CPU E6750

Juliette Сообщения: 5058 Статус: ROSA Lab ОС: Ubuntu LTS, Mandriva 2011

Re: как узнать системное имя принтера?

Сообщение Juliette » 31.12.2007 13:21

Attila Сообщения: 125 Статус: Тролль-Лѣсовичокъ ОС: Свободная aka ArchLinux

Re: как узнать системное имя принтера?

Сообщение Attila » 31.12.2007 13:40

[zigfrid@attila ~]$ lpstat -p
принтер MyPrinter свободен. Отключен с момента Сбт 15 Дек 2007 15:29:27
принтер PDFprinter свободен. Отключен с момента Вск 23 Дек 2007 22:18:33

Re: как узнать системное имя принтера?

Сообщение sidd » 31.12.2007 15:48

Attila Сообщения: 125 Статус: Тролль-Лѣсовичокъ ОС: Свободная aka ArchLinux

Re: как узнать системное имя принтера?

Сообщение Attila » 31.12.2007 16:16

А как Вы настраиваете печать?
Вы подключаетесь к Windows-серверу, или к Вам подключаются Windows-клиенты? Как я понял, к Вам подключаются Windows-клиенты.

Тогда, похоже, у Вас вообще ещё не настроен принтер. То есть, Вы даже со своего компьютера не можете печатать?

Для настройки нужно запустить демон cupsd (обычно что-то вроде /etc/rc.d/cups start) и воспользоваться web-интерфейсом (http://localhost:631). Подробновсё описано в специльной теме про принтеры в разеделе "Важные темы".

Re: как узнать системное имя принтера?

Сообщение sidd » 01.01.2008 00:21

Вы подключаетесь к Windows-серверу, или к Вам подключаются Windows-клиенты? Как я понял, к Вам подключаются Windows-клиенты.

Тогда, похоже, у Вас вообще ещё не настроен принтер. То есть, Вы даже со своего компьютера не можете печатать?

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

Источник

How to list all available printers from terminal?

I need a command to list available printers in my Ubuntu. The printers list could be installed or shared? This list also should state the state of the printer . Any Help to achieve my goal?

4 Answers 4

The Command lpstat -p will list all available printers for your Desktop .

And whether or not they are available ( the state of them) .

If you just want the printer names:

To see their names and print queues:

lpstat -p | awk '' | xargs -n1 lpq -P 

I need a command to list available printers in my Ubuntu.

I have bolded available because the OP presumably means available.

Neither lpstat -p nor lpstat -t`give a list of all printers available on the local network. Both commands only show local (often called permanent) printers. Both these commands appear to have gained some traction as inadequate responses to the query.

As of 2022, lpstat -e or lpsta -l -e give all available on the local network.

For the most detailed information about all available printers including local and lan printers, you can use -t option with lpstat

It tells you the following:

  1. Scheduler information
  2. Default printer
  3. Addresses of the printers
  4. Enabled status with timestamp
  5. Accepting jobs status with timestamp
  6. If a printer is currently printing

Here is the sample output

> lpstat -t scheduler is running system default destination: HP_Ink_Tank_Wireless_410_series_1C5045 device for Deskjet-Ink-Adv-2010-K010: hp:/usb/Deskjet_Ink_Adv_2010_K010?serial=CN12C11MQH05MB device for HP_Ink_Tank_Wireless_410_series_1C5045: implicitclass://HP_Ink_Tank_Wireless_410_series_1C5045/ Deskjet-Ink-Adv-2010-K010 accepting requests since Saturday 30 April 2022 10:45:04 AM HP_Ink_Tank_Wireless_410_series_1C5045 accepting requests since Monday 02 May 2022 01:54:54 PM printer Deskjet-Ink-Adv-2010-K010 is idle. enabled since Saturday 30 April 2022 10:45:04 AM printer HP_Ink_Tank_Wireless_410_series_1C5045 now printing HP_Ink_Tank_Wireless_410_series_1C5045-202. enabled since Monday 02 May 2022 01:54:54 PM HP_Ink_Tank_Wireless_410_series_1C5045-202 user 679936 Monday 02 May 2022 01:54:54 PM 

Источник

Читайте также:  Check dir exists linux
Оцените статью
Adblock
detector