2. Stampare Sotto Linux

Indice di questa sezione

Questa sezione discute di come stampare file, esaminare la coda di stampa, rimuovere lavori dalla coda di stampa, formattare i file prima di stamparli e configurare il proprio ambiente di stampa.

2.1 Un po' di storia

Il sistema di stampa in Linux ---il sistema lp--- è un port del codice sorgente scritto dalla Regents of the University of California per la versione della Distribuzione Software di Berkeley del sistema operativo Linux.

2.2 La stampa di base

La maniera più semplice di stampare sotto il sistema operativo Linux è mandare il file che deve essere stampato direttamente al device (dispositivo) di stampa. Un modo per fare ciò è quello di usare il comando cat. Se si è l'utente root, si può fare qualcosa del tipo

# cat thesis.txt > /dev/lp

In questo caso, /dev/lp è un link simbolico al dispositivo attuale di stampa, sia esso una stampante ad aghi, una stampante PostScript o un plotter. (Si veda ln(1) per maggiori informazioni sui link symbolici.)

A causa delle esigenze di sicurezza, solamente l'utente root e gli utenti nello stesso gruppo del demone di stampa (il print daemon), sono in grado di scrivere direttamente al dispositivo di stampa.

Questo è il motivo per cui bisogna usare comandi del tipo lpr, lprm, e lpq per stampare un file. Il comando lpr è responsabile del prendersi cura di tutto il lavoro iniziale necessario a stampare il file, e dopo passa la palla ad un altro programma, lpd, il demone della stampa. (Nella documentazione americana un programma viene chiamato demone quando gira completamente in background, ed è sempre invisibile all'utente comune. N.d.T.)

Quando lpr viene eseguito, prima copia il file specificato in una certa directory (la directory di spool), dove il file rimane fino a che lpd lo stampa. Una volta che a lpd viene comunicato che esiste un file da stampare, questo manda in esecuzione una copia di se stesso (che è quello che i programmatori chiamano forking). Questa copia stamperà il file, mentre la copia originale rimarrà in attesa per ulteriori richieste. Questo permette che lavori multipli possano essere accodati in una volta sola.

La sintassi di lpr è molto familiare,

$ lpr [ options ] [ filename ... ]

Se un filename non viene specificato, lpr assume che l'input debba pervenire dallo standard input (di solito la tastiera, oppure l'output di un altro programma). Questo permette all'utente di ridirezionare l'output di un comando al dispositivo di stampa, ad esempio

$ cat thesis.txt | lpr

oppure qualcosa di più avanzato, come

$ pr -l60 thesis.txt | lpr

Il comando lpr accetta molti argomenti nella linea di comando, che permettono ad un utente di controllare il suo modo di lavorare. Alcuni degli argomenti più ampiamente usati sono: -Pprinter che specifica la stampante da usare, -h sopprime la stampa della pagina burst, -s crea un link simbolico invece di copiare l'intero file alla directory di spool (il che è utile per file di grosse dimensioni), e -#num specifica il numero delle copie da stampare. Un esempio di interazione con lpr può essere qualcosa del tipo

$ lpr -#2 -sP dj thesis.txt
Questo comando creerà un link simbilico al file thesis.txt nella directory di spool, per la stampante chiamata dj, e ne stamperà poi una seconda copia.

Per una lista completa delle opzioni che lpr riconosce, si veda lpr(1).

2.3 Esaminare la Coda di Stampa

Qualche volta è utile sapere quali lavori sono attualmente in una particolare coda di stampa. Questo è l'unico scopo del comando lpq.

Per vedere che cosa c'è nella coda della stampante di default (come stabilito in /etc/printcap), si usi

$ lpq
lp is ready and printing
Rank   Owner      Job  Files                            Total Size
active mwf        31   thesis.txt                       682048 bytes

2.4 Rimuovere un Lavoro di Stampa

Un'altra caratteristica utile di qualunque sistema di stampa, è la possibilità di rimuovere un lavoro che era stato accodato in precedenza. Per fare questo si usi lprm.

$ lprm -

Questo comando rimuove tutti i lavori di stampa che sono posseduti dall'utente che ha eseguito il comando. Un singolo lavoro di stampa può essere rimosso prendendo in precedenza il numero del lavoro (job number) fornito da lpq, e poi passando quel numero a lprm. Per esempio,

$ lprm 31

cancellerà il lavoro (job) 31 (thesis.txt) sulla stampante di default.


Capitolo Successivo, Capitolo Precedente

Indice di questo capitolo, Indice generale

Inizio del documento, Inizio di questo Capitolo