Esta sección comenta cómo imprimir ficheros, examinar la cola de impresión, eliminar trabajos de la cola, formatear ficheros antes de imprimirlos, y configurar tu entorno de impresión.
El sistema de impresión de Linux (el sistema lp
) es una adaptación del código
escrito por los Regents de la Universidad de California para la versión
Berkeley Software Distribution (BSD) del sistema operativo UNIX.
La forma más simple (con mucho) de imprimir en el sistema operativo Linux es
enviar el fichero a ser impreso directamente al dispositivo de impresión. Una
manera de hacer esto es usar el comando cat
. Como usuario root
, uno puede hacer
lo siguiente:
# cat tesis.txt > /dev/lp
En este caso, /dev/lp
es un enlace simbólico al verdadero dispositivo
de impresión (una matricial, láser, tipográfica o plotter). Mira la página del
man ln(1)
para más información acerca de enlaces simbólicos.
Para el propósito de la seguridad, sólo el usuario root
y los usuarios de su
mismo grupo como el demonio de impresión son capaces de escribir directamente
a la impresora. Es por esto por lo que se tienen que usar comandos como lpr
, lprm
y lpq
para acceder a la impresora.
Por esto, los usuarios tienen que usar lpr
para imprimir un fichero. El
comando lpr
es responsable de preocuparse por el trabajo inicial para
imprimir un fichero, pasando entonces el control a otro programa, lpd
, el
demonio de las impresoras de líneas.
Este demonio le dice entonces a la impresora cómo imprimir el fichero.
Cuando lpr
es ejecutado, primero copia el fichero a un cierto directorio
(el directorio de spool
) donde el fichero permanece hasta que lpd
lo
imprime. Una vez se le dice a lpd
que hay un fichero para imprimir, creará
una copia de sí mismo (lo que los programadores llaman un 'fork
'). Esta
copia imprimirá nuestro fichero mientras la copia original queda esperando otras
peticiones. Esto permite que hayan múltiples trabajos a la vez en una cola.
Las sintaxis de lpr(1)
es bastante familiar,
$ lpr [ opciones ] [ nombre_fichero ... ]
Si no se especifica un nombre de fichero, lpr
asume que la entrada
será efectuada por la entrada estándar (normalmente el teclado o la salida de
otro programa). Esto permite que el usuario redirija la salida de un programa
al dispositivo de impresión. Por ejemplo:
$ cat tesis.txt | lpr
o algo más potente, como
$ pr -l60 tesis.txt | lpr
El comando lpr
acepta varios argumentos en la línea de comandos que
permiten al usuario controlar cómo trabaja. Algunos de los argumentos más
ampliamente usados son: -Pprinter
especifica la impresora a usar, -h
suprime la impresión de la página, burst, -s
crea un enlace simbólico en
lugar de copiar el fichero completo al directorio de spooling (útil para
ficheros grandes), y -#num
especifica el número de copias a imprimir.
Un ejemplo de interacción con lpr
podría ser algo como
$ lpr -#2 -sP dj tesis.txt
Este comando crearía un enlace simbólico al fichero tesis.txt
en el
directorio de spool de la impresora llamada dj
, donde debería ser
procesado por lpd
. Además debería imprimir una segunda copia de tesis.txt
.
Para ver un listado de todas las opciones que reconoce lpr
, ver la página
del man lpr(1)
.
Algunas veces es útil saber qué trabajos están actualmente en una cola de
impresión particular. Esta es la única tarea del comando lpq
.
Para ver qué hay en la cola de la impresora por defecto (definida por /etc/printcap
), usa
$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 tesis.txt 682048 bytes
Otra útil característica para cualquier sistema de impresión es la capacidad de
cancelar un trabajo que ha sido 'encolado' anteriormente. Para hacer esto,
usa lprm
.
$ lprm -
El comando anterior cancela todos los trabajos de impresión que son propiedad
del usuario que envió el comando. Se puede cancelar un trabajo de forma
individual obteniendo primero el número del trabajo usando lpq
, dando
entonces el número a lprm
. Por ejemplo
$ lprm 31
cancelaría el trabajo 31 (tesis.txt
) en la impresora por defecto.