Stampare su Linux è facile, ma a volte è necessario molto lavoro per avviare un'applicazione, aprire un file, trovare la Stampa selezione nel menu, fare clic su un pulsante di conferma e così via. Quando sei un utente di un terminale Linux, spesso vuoi eseguire azioni complesse con semplici trigger. La stampa è complessa e c'è poco di semplice come lpr
comando.
Stampa usando il comando lpr
Per stampare un file dal tuo terminale, usa il lpr
comando:
$ lpr myfile.odt
In caso contrario, è necessario impostare una stampante predefinita o specificarne una manualmente.
Impostazione di una stampante predefinita
Secondo la mia copia consumata di un manuale di Berkeley 4.2 stampato nel 1984, il lpr
comando impaginato e inviato un file a uno spool di stampante, che trasmetteva i dati a qualcosa chiamato stampante di linea .
In questi giorni, l'attuale lpr
comando è insufficiente perché è probabile che i computer moderni abbiano accesso a diverse stampanti e sicuramente a stampanti molto più complesse di una stampante a linee a matrice di punti. Ora c'è un sottosistema, chiamato Common Unix Printing System (CUPS), per tenere traccia di tutte le stampanti a cui vuoi che il tuo computer acceda, quale driver il tuo computer dovrebbe usare per comunicare con ciascuna stampante, quale stampante usare per impostazione predefinita e presto. lpr.cups
o lpr-cups
comandi, in bundle con CUPS e di solito collegati simbolicamente a lpr
, consentono di stampare da un terminale facendo prima riferimento alla configurazione del sistema di stampa Common Unix (CUPS).
Per stampare un file con lpr
, dovresti prima impostare una stampante predefinita. Puoi impostare una stampante predefinita nelle impostazioni della stampante del tuo sistema:
In alternativa, puoi contrassegnare una stampante come predefinita con lpadmin
comando:
$ sudo lpadmin -d HP_LaserJet_P2015_Series
$ lpstat -v
device for HP_LaserJet_P2015_Series: ipp://10.0.1.222:631/printers/HP_LaserJet_P2015_Series
Impostazione di una destinazione predefinita con variabili di ambiente
Non è consentito impostare la propria stampante predefinita su sistemi su cui non si dispone di un account amministratore perché la modifica delle destinazioni di stampa è considerata un'attività privilegiata. Prima di lpr
fa riferimento a CUPS per una destinazione, interroga il tuo sistema per la STAMPANTE variabile di ambiente.
In questo esempio, HP_LaserJet_P2015_Series
è il nome leggibile assegnato alla stampante. Imposta STAMPANTE a quel valore:
$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER
Una volta che la STAMPANTE è stata impostata la variabile, puoi stampare:
$ lpr myfile.pdf
Ottieni un elenco di stampanti allegate
Puoi vedere tutte le stampanti che accettano lavori di stampa e che sono collegate al tuo sistema con lpstat
comando:
$ lpstat -a
HP_LaserJet_P2015_Series accepting requests since Sun 1 Aug 2021 10:11:02 PM NZST
r1060 accepting requests since Wed 18 Aug 2021 04:43:57 PM NZST
Stampa su una stampante arbitraria
Dopo aver aggiunto le stampanti al tuo sistema e ora che sai come identificarle, puoi stampare su una qualsiasi di esse, indipendentemente dal fatto che tu abbia una destinazione predefinita impostata o meno:
$ lpr -P HP_LaserJet_P2015_Series myfile.txt
Come vengono definite le stampanti
CUPS ha un front-end intuitivo accessibile tramite un browser web come Firefox. Anche se utilizza un browser Web come interfaccia utente, in realtà è un servizio in esecuzione localmente sul tuo computer (una posizione chiamata localhost ) sulla porta 631. CUPS gestisce le stampanti collegate al tuo computer e ne memorizza la configurazione in /etc/cups/printers.conf
.
Il printers.conf
file è costituito da definizioni che descrivono in dettaglio i dispositivi di stampa a cui il tuo computer può accedere. Non devi modificarlo direttamente, ma se lo fai, devi interrompere cupsd
prima il demone.
Una voce tipica è simile a questa:
<Printer r1060>
Info Ricoh 1060
Location Downstairs
MakeModel Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.6
DeviceURI lpd://192.168.4.8
State Idle
StateTime 1316011347
Type 12308
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
In questo esempio, il nome della stampante è r1060
, un identificatore leggibile per un Ricoh Aficio 1060.
Il MakeModel l'attributo viene estratto da lpinfo
comando, che elenca tutti i driver di stampa disponibili sul sistema. Supponendo che tu sappia di avere un Ricoh Aficio 1060 su cui desideri stampare, emetteresti questo comando:
$ lpinfo -m | grep 1060
gutenprint.5.2://brother-hl-1060/expert Brother HL-1060 - CUPS+Gutenprint v5.2.11
gutenprint.5.2://ricoh-afc_1060/expert Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Questo comando elenca i driver rilevanti che hai installato.
Il MakeModel è l'ultima metà del risultato. In questo esempio, è Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11
.
Il DeviceURI attributo identifica dove si trova la stampante sulla rete (o posizione fisica, come la porta USB). In questo esempio, DeviceURI è lpd://192.168.4.8
perché sto usando lpd
(line printer daemon) protocollo per inviare dati a una stampante in rete. Su un sistema diverso, ho una HP LaserJet collegata tramite un cavo USB, quindi DeviceURI è DeviceURI hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429
.
Stampa dal terminale
L'invio di un lavoro a una stampante è un processo semplice, purché tu abbia compreso i dispositivi collegati al tuo sistema e come identificarli. La stampa dal terminale è veloce, efficiente e facilmente gestibile tramite script o eseguita in batch. Provalo!