Drucken per Kommandozeile
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel beschäftigt sich mit den Werkzeugen
lpstat, lpr, lpoptions, lp, lprm, lpmove
und lpadmin
sowie cupsenable/cupsdisable
und cupsaccept/cupsreject
. Diese sind Teil des Common Unix Printing System ( CUPS). Andere Drucksysteme wie LPRng 🇬🇧, das BSD-Drucksystem und das System V Drucksystem bieten ebenfalls diese Befehle, sind aber nicht Teil des Artikels.
Die hier vorgestellten Programme ermöglichen auf der Kommandozeile oder in Skripten die Einrichtung und Verwaltung der von CUPS betreuten Warteschlangen für Druckaufträge sowie auch die Einreichung und Pflege von Druckaufträgen.
Installation¶
Die Programme befinden sich in den Paketen cups-bsd
und cups-client
. Letzteres ist eine Abhängigkeit von dem Paket cups
welches (fast) das gesamte CUPS-Drucksystem umfasst. Beide Pakete können aus den Paketquellen installiert werden:
cups (main)
cups-bsd (main)
Befehl zum Installieren der Pakete:
sudo apt-get install cups cups-bsd
Oder mit apturl installieren, Link: apt://cups,cups-bsd
Außer den in der Einleitung genannten sind noch die Programme lpc, lpq
und lpinfo
in den Paketen vorhanden, diese sind jedoch veraltet und werden aus CUPS in Zukunft entfernt.
Konfiguration¶
Zur Konfiguration von CUPS siehe den zugehörigen Artikel.
Befehle¶
Für alle Befehle siehe auch die zugehörigen Manual Pages ( man).
Diese und weitere Hilfeseiten sind zu finden unter http://localhost:631/help/.
Hinweis:
Diese Seite ist nur aufrufbar, wenn CUPS installiert ist. Siehe auch den zugehörigen Abschnitt im CUPS-Hauptartikel.
Für alle Befehle geltende Optionen¶
Option | Nutzen |
-E | Verbindung zum Server verschlüsseln |
-h server[:port] | Alternativen Server [Port] spezifizieren |
-U | Benutzernamen für die Serververbindung setzen |
Hinweis:
Wenn in der Dokumentation zu CUPS oder in den Ausgaben der Befehle das Wort "printer" oder eingedeutscht „Drucker“ verwendet wird, so ist damit meistens kein physisches Gerät, sondern der Name einer Warteschlange gemeint.
Eine von CUPS verwaltete Warteschlange hat immer ein Ziel; dies kann auch ein physischer Drucker sein.
Statusinformationen – lpstat¶
Der Befehl lpstat
zeigt Statusinformation zum Gesamtsystem, zu den verfügbaren Warteschlangen und den sich darin befindenden Druckaufträgen an.
Er gibt ohne Optionen alle aktuellen Druckaufträge aus, mit der Option -u BENUTZER
nur die des angegebenen Benutzers.
Die Option -r
fragt ab, ob auf dem angesprochenen Rechner CUPS überhaupt aktiv ist, -d
zeigt den Namen der Standardwarteschlange (die in allen Befehlen benutzt wird, wenn keine Warteschlange explizit angegeben wird) und -e
die Namen aller erreichbaren Warteschlangen. Die Optionen können einzeln oder kombiniert verwendet werden:
lpstat -r -d -e
Zeitplandienst läuft keine systemvoreingestellten Ziele hplj Nirvana
Mit der Option -p
gibt er alle Warteschlangen aus. Die Option -d
zeigt zusätzlich den Standard-Systemdrucker:
lpstat -p -d
printer Brother_HL_L2360D_series is idle. enabled since Tue 02 Aug 2022 12:38:38 PM CEST system default destination: Brother_HL_L2360D_series
Man kann hinter der Option -p
eine Warteschlange angeben, für die die Statusmeldungen dann gelten:
lpstat -p Brother_HL_L2360D_series
printer Brother_HL_L2360D_series now printing Brother_HL_L2360D_series-25. enabled since Thu 04 Aug 2022 09:28:23 AM CEST Color Manager: no profiles specified in PPD
Die Option -v
identifiziert die Ziele, an die CUPS die Aufträge aus der jeweiligen Warteschlange übergibt. Dies ist immer ein Programm (backend), welches die aufbereiteten Daten des Druckauftrags an ein physisches Gerät übergibt, oder auch auf einem Massenspeicher ablegt oder etwas anderes damit macht, z.B. wäre auch ein Versand per E-Mail oder Fax möglich.
Die Option '-a' (wahlweise alleine stehend oder mit Angabe einer Warteschlange), zeigt an, ob die Warteschlange(n) neue Aufträge annehmen oder abweisen. Auch diese Optionen sind kombinierbar:
lpstat -p -a -v
Drucker hplj ist im Leerlauf. Aktiviert seit So 11 Sep 2022 11:55:22 CEST Drucker Nirvana ist deaktiviert seit So 11 Sep 2022 11:56:12 CEST - Paused hplj akzeptiert Anfragen seit So 11 Sep 2022 11:55:22 CEST Nirvana akzeptiert Anfragen seit So 11 Sep 2022 11:56:12 CEST Gerät für hplj: socket://192.168.178.20 Gerät für Nirvana: /dev/null
Im Beispiel kann man Aufträge in die Warteschlange Nirvana
einstellen, diese werden jedoch nicht abgearbeitet. Wenn man das mit cupsenable ändert, werden sie nach /dev/null kopiert. Die Warteschlange hplj
nimmt sowohl Aufträge an und arbeitet diese auch ab, indem sie über das Netzwerk an die angegebene IP-Adresse verschickt werden, aber momentan ist sie leer.
Mit der Option -o
werden alle Aufträge in den Warteschlangen aufgelistet:
lpstat -o
Nirvana-18 kB 3072 So 11 Sep 2022 11:57:10 CEST
Die Option -t
ist eine Abkürzung für: -r -d -a -p -v -o
(und zusätzlich die hier nicht besprochene Option -c
.)
Alle Optionen und weitere Informationen kann man in der Manpage nachlesen.
Warteschlangen konfigurieren – lpadmin¶
Der Befehl lpadmin
wird benutzt, um Warteschlangen einzurichten und zu konfigurieren. Solche Konfigurationen können nur von dazu berechtigten Benutzern (bei Ubuntu sind dies die in der Gruppe lpadmin
) oder von root erfolgen.
Mit dem Befehl
lpadmin -d QUEUE
wird eine bereits existierende Warteschlange QUEUE zum „Standard-Drucker“ des angesprochenen CUPS-Servers.
Bei der Erzeugung oder Änderung einer Warteschlange muss diese mit der Option -p QUEUE
angegeben werden.
Zur Einrichtung einer Warteschlange muss mindestens mit der Option -v
das Ziel (z.B. der physische Drucker) angegeben werden. Dies geschieht im Form einer Drucker-URI. Beispiel:
lpadmin -p hplj -v socket://192.168.178.20
Dabei wird die Option -p
zum Vergeben des Namens genutzt.
Zum Auflisten aller vorhandenen Drucker-URIS dient der Befehl lpinfo
:
lpinfo -v
Weitere Eigenschaften können direkt bei der Einrichtung z.B. mit der Option -o
angegeben werden oder später hinzugefügt oder geändert werden. Eine Liste mit den verfügbaren Optionen findet sich auf der Hauptseite von CUPS. Dieses Beispiel sorgt für ein Dateigrößen-Limit von 100 Kilobytes für die angegebene Warteschlange und den durch diese bestimmten Drucker:
lpadmin -p Brother_HL_L2360D_series -o job-k-limit=100
Zur nur für die Benutzer relevanten Beschreibung einer Warteschlange kann man die Optionen -D
und -L
verwenden. Manche GUI-Programme benutzen diese Informationen.
Die Art der Aufbereitung der Auftragsdaten kann bis CUPS-Version 2.4 (verwendet bei Ubuntu 22.04) mit einem Druckertreiber in Form einer PPD-Datei über die Option -m
festgelegt werden. Eine Liste der auf dem eigenen System verfügbaren Druckertreiber erzeugt dieser Befehl:
lpinfo -m
Zum unwiderruflichen Löschen einer Warteschlange mit allen eventuell darin enthaltenen Druckaufträgen benutzt man diesen Befehl:
lpadmin -x QUEUE
Ausführliche Hilfe und Anleitung zu dem Befehl findet sich auf der Hauptseite von CUPS oder in der Manpage:
man lpadmin
Druckeinstellungen – lpoptions¶
Einstelllungen für die Druckaufbereitung tätigen. Mit -p
kann man die Warteschlange angeben, für den die Einstellungen gelten sollen.
Das Programm lpotions
kann von root oder von einem normalen Benutzer aufgerufen werden und bewirkt je nachdem unterschiedliches:
Aufgerufen von root setzt/ändert/löscht es Druckoptionen, die für alle Benutzer gelten.
Aufgerufen durch einen normalen Benutzer bearbeitet es Druckoptionen, welche nur für diesen Benutzer gelten. Jeder Benutzer kann also die systemweit geltenden Vorgaben für sich persönlich anpassen. Das gilt insbesondere auch für den persönlich bevorzugten Standard-Drucker.
Mit der Option -d DRUCKER
lässt sich der Standard-Drucker festlegen, mit -l
lassen sich alle Optionen anzeigen.
Mithilfe der Option -o OPTION
lassen sich Optionen setzen. Für die Optionen siehe die CUPS-Dokumentation.
Die benutzerspezifischen Optionen werden unter ~/.cups/lpoptions gespeichert, die für alle Benutzer geltenden unter /etc/cups/lpoptions.
Drucken¶
CUPS unterstützt für das Drucken von Dateien die beiden Befehle lp
und lpr
.
Die einfachste Benutzung für beide Befehle:
lp DATEINAME lpr DATEINAME
Dies übergibt die angegeben Datei an die als Standard-Drucker eingestellte Warteschlange, man kann aber auch mit der Option -d
bei lp
bzw. -P
bei lpr
eine bestimmte Warteschlange ansprechen.
Außerdem ist es den Befehlen möglich, aus dem Standard-Input zu lesen und zu drucken. Dies ermöglicht die Verwendung in Pipes:
echo Bla bla blub … | lp -d Nirvana
Das Drucken lässt sich mit den zahlreichen Optionen erweitert konfigurieren, von denen die Wichtigsten im Folgenden aufgelistet sind:
Wichtigste Optionen des Befehls lp | |
Option | Benutzung |
-d DRUCKER | Sendet die Druckanfrage an die genannten Warteschlange. |
-i ID | Spezifiziert einen Druckauftrag mittels ID, den man verändern möchte. |
-m | Sendet eine Email, wenn der Druckauftrag beendet ist. Zur Konfiguration siehe E-Mail-Benachrichtigung |
-n NUMMER | Gibt die Nummer der anzufertigenden Kopien an. |
-o name=wert [ ... name=wert ] | Mittels dieser Option lassen sich einige Druckeinstellungen tätigen. Siehe eine Liste von Namen und Werten hierunter |
-H hold/immideate/Stunden:Minuten/restart/resume | Bei immideate wird sofort gedruckt, bei Zeitangabe nach der angegeben Zeit, bei restart wird der Druckauftrag neu gestartet, hold hält ihn an, er lässt sich dann mit lp -i ID -H resume wieder starten. |
-P SEITENLISTE | Die Liste besteht aus mit Kommata getrennten Zahlen und Bereichen, welche mit - angegeben werden, z.B.: 1,3-5,16,18-20 . Diese geben die Seiten der Eingabe an, welche gedruckt werden sollen. |
Von denen des Befehls lp unterschiedliche Optionen von lpr | |
Option | Benutzung |
-# ZAHL | Damit kann man die Anzahl der Kopien angeben. |
-r | Die angegebenen Dateien werden nach dem Drucken gelöscht. |
-P ZIEL | Druckt das Eingabedokument zum angegebenen Ziel |
-q ID | Aktuellen Auftrag oder den Auftrag mit der ID stoppen. |
-p | Jede Seite mit einem Kopf drucken, dieser enthält: Datum, Zeit, Druckauftrag-Name und Seitennummer. |
-I | Fertig formatierte Datei ohne Filtern an den Drucker senden (Äquivalent zu -o raw ) (Nicht bei Ubuntu 22.04 verfügbar.) |
Die Optionen -H, -h, -c, -d, -t
und -n
existieren für lpr
nicht.
Einstellungen¶
Mit der Option -o name=wert
des lassen sich einige Einstellungen bezüglich des Druckens tätigen. Die wichtigsten sind hier aufgelistet. Sie gelten für beide Befehle.
Name/Wert-Paar | Beschreibung |
print-quality=3/4/5 | Legt die Qualität der Druckausgabe fest: Entwurf (3), Normal (4), Ausgezeichnet (5) |
media=Größe | Die Größe der Druckausgabe. Zum Beispiel: a4, letter oder legal |
orientation-requested=4/5/6 | Orientierung des Inhalts auf der Seite: gedreht um 90° gegen den Uhrzeigersinn (4), gedreht um 90° mit dem Uhrzeigersinn (5), um 180° gedreht (6) |
sides=one-sided/two-sided-long-edge/two-sided-short-edge | Einseitiges Drucken/Zweiseitiges Drucken (Hochformat)/Zweiseitiges Drucken (Querformat) |
E-Mail-Benachrichtigung¶
Druckaufträge löschen – lprm¶
Mithilfe des Befehls lprm
lassen sich Druckaufträge löschen. Den aktuellen Job kann man mithilfe einfachen Aufrufs des Befehls löschen. Möchte man alle Aufträge löschen, geht das folgendermaßen:
lprm -
Zudem kann man als Argument eine Auftrags-ID angeben. Diese lässt sich mit dem Befehl lpstat
ermitteln.
Sie wird aber auch beim Aufruf des Befehls lp
angezeigt, wenn man nicht die Option -s
gesetzt hat. Beispiel:
lprm 26
Druckaufträge verschieben – lpmove¶
Mit dem Befehl lpmove
kann man auf ihre Bearbeitung wartende Druckaufträge in eine andere Warteschlange verschieben.
Der Befehl nimmt zwei Argumente entgegen, einmal die ID eines Druckauftrags und den Namen der neuen Warteschlange. Beispiel:
lpmove 30 Brother_HL_L2360D_series
Alternativ kann man statt der ID den Namen einer Warteschlange angeben:
lpmove Brother_HL_L2360D_series Brother_QL_570
Dies verschiebt alle Druckaufträge aus der zuerst genanntem Warteschlange in die an zweiter Stelle genannte Warteschlange.
Warteschlangen verwalten¶
cupsenable/cupsdisable¶
Diese Befehle starten bzw. stoppen die Abarbeitung von Warteschlangen. Als Parameter übergibt man den Befehlen den/die Namen der Warteschlange(n). Mit der Option -c
wird zusätzlich ein gerade druckender Auftrag abgebrochen.
Für cupsdisable
gibt es außerdem noch die Option --hold
, welche zusätzlich die wartenden Druckaufträge anhält, die gerade druckenden Aufträge aber noch abarbeitet.
Um die Abarbeitung der Warteschlange wieder zu starten, nutzt man anschließend cupsenable
mit der Option --release
:
cupsenable --release Brother_HL_L2360D_series
cupsaccept/cupsreject¶
Hiermit lässt sich CUPS instruieren, Aufträge für die angegebene(n) Warteschlange(n) anzunehmen bzw. abzulehnen.
Der Befehl cupsreject
kennt noch die Option -r 'TEXT'
mit nachfolgend TEXT
als Grund. Dies dient nur zur Information der Benutzer.
Links¶
CUPS – Hauptartikel im UbuntuUsers-Wiki
Apple CUPS 🇬🇧 – Hauptseite von Apple CUPS. (Grundlage für die bei Ubuntu bis 21.10 verwendete Version.)
OpenPrinting CUPS 🇬🇧 – Hauptseite von OpenPrinting CUPS. Dies ist ein Fork von Apple CUPS (September 2020) und die Grundlage für die bei Ubuntu ab 22.04 verwendete Software.
https://www.cups.org/documentation.html 🇬🇧 – CUPS-Dokumentation bei Apple
https://openprinting.github.io/cups/#DOCUMENTATION 🇬🇧 – CUPS-Dokumentation bei OpenPrinting