Von der Kommandozeile drucken

28

Wie kann ich die Befehlszeilenausgabe direkt auf dem Drucker ausdrucken?

Ich verwende Ubuntu Server 12.04 und muss Dateien in ein freigegebenes Verzeichnis kopieren und sie dann von einer Ubuntu-Desktop-Distribution herunterladen, um sie zu drucken.

Jede Hilfe wird geschätzt

kamil
quelle
Sie haben nicht gesagt, ob Sie nur Text oder PDF drucken möchten. Einige Systeme unterstützen nur Standardtext, daher muss dieser behandelt werden.
Alexis
Ich weiß nicht, warum sie meine Antwort abgelehnt haben, versuche es einfach.
Nux
@nux +1 Alle Antworten sind großartig, danke euch allen
kamil
@alexis Mir ist klar: Ich möchte die Konsolenausgabe drucken. Zum Beispiel ls Ausgabe direkt an den Drucker
kamil
Ups, in der Tat hast du gesagt und ich habe es verpasst, sorry!
Alexis

Antworten:

35

Hauptsächlich gibt es zwei Standardbefehle:

lpr und lp

man lpr gibt die Ausgabe aus:

lpr sendet Dateien zum Drucken. In der Befehlszeile angegebene Dateien werden an den angegebenen Drucker gesendet (oder an das Standardziel, wenn kein Ziel angegeben ist). Wenn in der Befehlszeile keine Dateien aufgelistet sind, liest lpr die Druckdatei von der Standardeingabe.

man lp gibt die Ausgabe aus:

lp sendet Dateien zum Drucken oder ändert einen ausstehenden Auftrag. Verwenden Sie den Dateinamen "-", um das Drucken über die Standardeingabe zu erzwingen.

So einfach verwenden Sie den Befehl:

lp /path-to-file-to-print

Oder

lpr /path-to-file-to-print
Maythux
quelle
15

Sie können verwenden lp

Beispielsweise:

man firefox | lp -d printername

Dadurch wird die Manpage von Firefox auf dem angegebenen Drucker gedruckt

Noosrep
quelle
1
Danke, ich musste auch verwenden o fit-to-page, um den Text auf der Seite ein bisschen besser zu halten. man bash | lp -o media=letter -o portrait -o fit-to-page -, der -am Ende dafür sorgt, dass die Standardeingabe gelesen wird.
Elijah Lynn
1
Wenn Ihr Drucker Standard ist, benötigen Sie den -dParameter nicht. Unter Ubuntu mit Unity wird der Standarddrucker durch Klicken auf die Schaltfläche "Suchen" festgelegt. Geben Sie dann "Drucken" ein und Sie gelangen an die richtige Stelle, an der der Standarddrucker festgelegt werden kann. lpIm Beispiel heißt es auch, dass Sie schon seit einiger Zeit unter Unix sind. lprfunktioniert genauso auf Ubuntu.
SDsolar
4

Wenn Sie sie installiert haben, gibt es zwei weitere Optionen, die Sie kennen sollten

und

Diese sind nützlich, um nummerierte Seiten mit Überschriften und optionalen Zeilennummern zu versehen. Sie können dann auch den Broschürenstil drucken (z. B. zwei Seiten auf jeder Seite eines Blatts).

Ich verwende diese mit Postscript-fähigen Druckern, aber ich glaube, dass Ubuntus Drucksystem PS für jeden unterstützten Drucker rastern kann.

RedGrittyBrick
quelle
das ist eine schöne idee
kamil
Sicher schlägt Codierung Postscript direkt.
SDsolar
3

Möglicherweise möchten Sie zunächst herausfinden, wie auf den Drucker zugegriffen lpstatwird. Sie erhalten dann diese Informationen. Wenn Sie die Ausgabe auf beiden Systemen vergleichen, können Sie wahrscheinlich feststellen, ob der betreffende Drucker auf beiden Systemen konfiguriert wurde. lpstat -p -dlistet alle Drucker mit ihrem Status auf und gibt an, welcher Drucker als Standarddrucker festgelegt wurde.

Sie können Ihre Ausgabe dann einfach an den Befehl lpoder lprweiterleiten. Möglicherweise möchten Sie jedoch einen Filter für hübsches Drucken oder Paginieren einfügen. Es gibt eine gute Zusammenfassung der Werkzeuge im Debian-Handbuch "Hervorheben und Formatieren von Nur- Text-Daten" , aber ich benutze sedes normalerweise nur , um Eingabeaufforderungen und andere Dinge hervorzuheben, bevor ich alles durchschickea2ps

Tatjana Heuser
quelle
2

So drucken Sie eine TXT-Datei in einer Verwendung:

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

Beispiel

ls -l | lpr -P printername -p 1 
nux
quelle
1

Die Frage ist, wie über die Befehlszeile auf einem Server gedruckt werden soll , und es scheint, dass auf diesem System noch keine Drucker definiert sind. Ich habe kein zu überprüfendes System, daher sind die folgenden Angaben ungefähr, sie sollten Ihnen jedoch einen allgemeinen Eindruck vermitteln:

  1. Stellen Sie sicher, dass das CUPS-System installiert ist und ausgeführt wird. Es stellt die Daemons bereit, die Ihre Druckaufträge verarbeiten.
  2. Sobald dies abgeschlossen ist, müssen Sie einen oder mehrere Netzwerkdrucker zum Drucken einrichten. Die übliche Methode zum Installieren von Druckern ist die Verwendung des Dienstprogramms " Druckerverwaltung". Sie sind jedoch offensichtlich nicht für die Ausführung von GUI-Programmen von Ihrem Server aus eingerichtet. Sie müssen lediglich über ssh auf die Befehlszeile zugreifen. Da Sie bereits ein Ubuntu-Desktopsystem im selben Netzwerk haben, würde ich versuchen, den Inhalt des Verzeichnisses /etc/cupsvon der Desktop-Box auf den Server zu kopieren . Es sollte alle Druckerdefinitionen und Treiber enthalten, die Sie benötigen. Überprüfen Sie die Dateien auf erforderliche Anpassungen (falls Ihre Einrichtung Benutzer-IDs oder Kennwörter angibt, die sich zwischen den beiden Systemen unterscheiden), starten cupsdSie sie neu , und wenn Sie Glück haben, können Sie lprüber die Befehlszeile drucken.

PS. Zur Not können Sie genügend X-Dienstprogramme installieren, um das Print Admin- GUI-Dienstprogramm über eine Remote-X-Verbindung mit Ihrer Desktop-Ubuntu-Box auszuführen (anmelden mit ssh -X) und die benötigten Drucker zu definieren. Aber hoffentlich wird das nicht nötig sein.

alexis
quelle
1

Sie können den lpBefehl verwenden.

So drucken Sie die Ausgabe eines Befehls auf dem Standarddrucker (verwenden Sie lpstat -d, um den Standarddrucker zu ermitteln):

echo "test" | lp

So drucken Sie auf einem bestimmten Drucker (verwenden Sie, lpstat -p | awk '{print $2}'um die verfügbaren Druckernamen aufzulisten):

echo "test" | lp -d printername

So drucken Sie eine Datei anstelle einer Befehlsausgabe:

lp /path/to/file
waldyrisch
quelle