L'impression sous Linux est facile, mais parfois cela représente beaucoup de travail pour lancer une application, ouvrir un fichier, trouver l'Imprimer sélection dans le menu, cliquez sur un bouton de confirmation, etc. Lorsque vous êtes un utilisateur de terminal Linux, vous souhaitez souvent effectuer des actions complexes avec des déclencheurs simples. L'impression est complexe, et rien n'est aussi simple que le lpr
commande.
Imprimer à l'aide de la commande lpr
Pour imprimer un fichier depuis votre terminal, utilisez le lpr
commande :
$ lpr myfile.odt
Si cela échoue, vous devez définir une imprimante par défaut ou spécifier une imprimante manuellement.
Définir une imprimante par défaut
Selon ma copie bien usée d'un manuel de Berkeley 4.2 imprimé en 1984, le lpr
la commande paginait et envoyait un fichier à un spouleur d'imprimante, qui transmettait les données à quelque chose appelé une imprimante ligne .
De nos jours, le véritable lpr
est insuffisante car les ordinateurs modernes sont susceptibles d'avoir accès à plusieurs imprimantes, et certainement à des imprimantes beaucoup plus complexes qu'une imprimante matricielle ligne. Il existe maintenant un sous-système, appelé Common Unix Printing System (CUPS), pour garder une trace de toutes les imprimantes auxquelles vous voulez que votre ordinateur accède, quel pilote votre ordinateur doit utiliser pour communiquer avec chaque imprimante, quelle imprimante utiliser par défaut, et bientôt. Le lpr.cups
ou lpr-cups
commandes, fournies avec CUPS et généralement liées symboliquement à lpr
, vous permettent d'imprimer à partir d'un terminal en référençant d'abord votre configuration Common Unix Printing System (CUPS).
Pour imprimer un fichier avec lpr
, vous devez d'abord définir une imprimante par défaut. Vous pouvez définir une imprimante par défaut dans les paramètres d'imprimante de votre système :
Alternativement, vous pouvez marquer une imprimante comme imprimante par défaut avec le lpadmin
commande :
$ 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
Définir une destination par défaut avec des variables d'environnement
Vous n'êtes pas autorisé à définir votre propre imprimante par défaut sur les systèmes sur lesquels vous n'avez pas de compte administrateur, car la modification des destinations d'impression est considérée comme une tâche privilégiée. Avant lpr
référence CUPS pour une destination, il interroge votre système pour l'IMPRIMANTE variable d'environnement.
Dans cet exemple, HP_LaserJet_P2015_Series
est le nom lisible donné à l'imprimante. Définir IMPRIMANTE à cette valeur :
$ PRINTER=HP_LaserJet_P2015_Series
$ export PRINTER
Une fois l'IMPRIMANTE variable a été définie, vous pouvez imprimer :
$ lpr myfile.pdf
Obtenir une liste des imprimantes connectées
Vous pouvez voir toutes les imprimantes qui acceptent les travaux d'impression et qui sont connectées à votre système avec le lpstat
commande :
$ 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
Imprimer sur une imprimante arbitraire
Une fois que vous avez ajouté des imprimantes à votre système, et maintenant que vous savez comment les identifier, vous pouvez imprimer sur n'importe laquelle d'entre elles, que vous ayez défini une destination par défaut ou non :
$ lpr -P HP_LaserJet_P2015_Series myfile.txt
Comment les imprimantes sont définies
CUPS dispose d'une interface utilisateur conviviale accessible via un navigateur Web tel que Firefox. Même s'il utilise un navigateur Web comme interface utilisateur, il s'agit en fait d'un service exécuté localement sur votre ordinateur (un emplacement appelé localhost ) sur le port 631. CUPS gère les imprimantes connectées à votre ordinateur et stocke sa configuration dans /etc/cups/printers.conf
.
Le printers.conf
Le fichier se compose de définitions détaillant les périphériques d'impression auxquels votre ordinateur peut accéder. Vous n'êtes pas censé le modifier directement, mais si vous le faites, vous devez arrêter le cupsd
démon d'abord.
Une entrée typique ressemble à ceci :
<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>
Dans cet exemple, le nom de l'imprimante est r1060
, un identifiant lisible pour un Ricoh Aficio 1060.
Le MakeModel l'attribut est extrait du lpinfo
, qui répertorie tous les pilotes d'imprimante disponibles sur votre système. En supposant que vous savez que vous disposez d'un Ricoh Aficio 1060 sur lequel vous souhaitez imprimer, vous devez émettre cette commande :
$ 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
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Cette commande répertorie les pilotes pertinents que vous avez installés.
Le MakeModel est la dernière moitié du résultat. Dans cet exemple, il s'agit de Ricoh Aficio 1060 - CUPS+Gutenprint v5.2.11
.
Le DeviceURI L'attribut identifie l'emplacement de l'imprimante sur le réseau (ou emplacement physique, tel que le port USB). Dans cet exemple, le DeviceURI est lpd://192.168.4.8
parce que j'utilise le lpd
(démon d'imprimante en ligne) pour envoyer des données à une imprimante en réseau. Sur un système différent, j'ai un HP LaserJet connecté par un câble USB, donc le DeviceURI est DeviceURI hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429
.
Imprimer depuis le terminal
L'envoi d'un travail à une imprimante est un processus simple, tant que vous comprenez les périphériques connectés à votre système et comment les identifier. L'impression à partir du terminal est rapide, efficace et facilement scriptée ou effectuée par lot. Essayez-le !