Imprimir en Linux es fácil, pero a veces parece mucho trabajo iniciar una aplicación, abrir un archivo, buscar Imprimir selección en el menú, haga clic en un botón de confirmación, y así sucesivamente. Cuando es un usuario de terminal de Linux, a menudo desea realizar acciones complejas con disparadores simples. La impresión es compleja y hay pocas cosas tan simples como lpr
comando.
Imprimir usando el comando lpr
Para imprimir un archivo desde su terminal, use el lpr
comando:
$ lpr myfile.odt
Si eso falla, debe configurar una impresora predeterminada o especificar una impresora manualmente.
Configuración de una impresora predeterminada
Según mi desgastada copia de un manual de Berkeley 4.2 impreso en 1984, el lpr
el comando paginó y envió un archivo a una cola de impresora, que transmitió datos a algo llamado impresora de línea .
En estos días, el lpr
real El comando es insuficiente porque es probable que las computadoras modernas tengan acceso a varias impresoras, y ciertamente a impresoras mucho más complejas que una impresora de matriz de puntos. Ahora hay un subsistema, llamado Common Unix Printing System (CUPS), para realizar un seguimiento de todas las impresoras a las que desea que acceda su computadora, qué controlador debe usar su computadora para comunicarse con cada impresora, qué impresora usar de manera predeterminada y pronto. Los lpr.cups
o lpr-cups
comandos, incluidos con CUPS y generalmente vinculados a lpr
, le permite imprimir desde una terminal haciendo referencia primero a su configuración del Sistema de impresión común de Unix (CUPS).
Para imprimir un archivo con lpr
, primero debe establecer una impresora predeterminada. Puede configurar una impresora predeterminada en la configuración de la impresora de su sistema:
Alternativamente, puede marcar una impresora como predeterminada 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
Establecer un destino predeterminado con variables de entorno
No se le permite configurar su propia impresora predeterminada en sistemas en los que no tiene una cuenta de administrador porque cambiar los destinos de impresión se considera una tarea privilegiada. Antes de lpr
hace referencia a CUPS para un destino, consulta su sistema para la IMPRESORA variable de entorno.
En este ejemplo, HP_LaserJet_P2015_Series
es el nombre legible por humanos dado a la impresora. Configurar IMPRESORA a ese valor:
$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER
Una vez que la IMPRESORA se ha establecido la variable, puede imprimir:
$ lpr myfile.pdf
Obtener una lista de impresoras adjuntas
Puede ver todas las impresoras que aceptan trabajos de impresión y que están conectadas a su sistema con el 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
Imprimir en una impresora arbitraria
Una vez que haya agregado impresoras a su sistema, y ahora que sabe cómo identificarlas, puede imprimir en cualquiera de ellas, ya sea que tenga un destino predeterminado establecido o no:
$ lpr -P HP_LaserJet_P2015_Series myfile.txt
Cómo se definen las impresoras
CUPS tiene un front-end fácil de usar accesible a través de un navegador web como Firefox. Aunque utiliza un navegador web como interfaz de usuario, en realidad es un servicio que se ejecuta localmente en su computadora (una ubicación llamada localhost ) en el puerto 631. CUPS administra las impresoras conectadas a su computadora y almacena su configuración en /etc/cups/printers.conf
.
El printers.conf
consta de definiciones que detallan los dispositivos de impresión a los que puede acceder su computadora. No debe editarlo directamente, pero si lo hace, debe detener el cupsd
demonio primero.
Una entrada típica se parece a esto:
<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>
En este ejemplo, el nombre de la impresora es r1060
, un identificador legible por humanos para una Ricoh Aficio 1060.
El MakeModel el atributo se extrae de lpinfo
comando, que enumera todos los controladores de impresora disponibles en su sistema. Suponiendo que sabe que tiene una Ricoh Aficio 1060 en la que desea imprimir, debe ejecutar este 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
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Este comando enumera los controladores relevantes que ha instalado.
El MakeModel es la última mitad del resultado. En este ejemplo, es Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11
.
El URI del dispositivo El atributo identifica dónde se encuentra la impresora en la red (o ubicación física, como el puerto USB). En este ejemplo, el DeviceURI es lpd://192.168.4.8
porque estoy usando el lpd
(demonio de impresora de línea) protocolo para enviar datos a una impresora en red. En un sistema diferente, tengo un HP LaserJet conectado mediante un cable USB, por lo que el DeviceURI es DeviceURI hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429
.
Impresión desde el terminal
Enviar un trabajo a una impresora es un proceso fácil, siempre que comprenda los dispositivos conectados a su sistema y cómo identificarlos. La impresión desde la terminal es rápida, eficiente y fácil de programar o realizar como un trabajo por lotes. ¡Pruébalo!