Deze sectie bespreekt het afdrukken van bestanden, het nakijken van de afdrukwachtrij, het verwijderen van taken uit de wachtrij, het opmaken van bestanden voordat ze worden afgedrukt, en het configureren van je afdrukomgeving.
Het Linux afdruksysteem---het lp systeem---is een port van de broncode geschreven door de Regents van de University van California voor de Berkeley Software Distributie versie van het UNIX besturingssysteem.
Verreweg de eenvoudigste manier om onder het Linux besturingssysteem af te
drukken is door het bestand direct naar het afdrukapparaat te sturen.
Een andere manier om dit te doen is, door het commando cat
te gebruiken. Als gebruiker root
, is het mogelijk om iets te
doen als
# cat thesis.txt > /dev/lp
In dit geval is /dev/lp
een symbolische koppeling naar het
werkelijke afdrukapparaat ---of het nu een dot-matrix, laserprinter,
letterzetter, of plotter is. (Zie ln(1) voor meer informatie
over symbolische koppelingen.)
Om beveiligingsredenen, zijn alleen de gebruiker root
en
gebruikers in dezelfde groep als de print daemon bevoegd om direct
naar de printer te schrijven. Dit is de reden waarom commando's zoals
lpr, lprm, en lpq
moeten worden gebruikt om toegang tot de printer te krijgen.
Daarom moeten gebruikers lpr gebruiken om een bestand af te drukken. Het commando lpr zorgt voor al het werk dat in het begin nodig is om een bestand af te drukken, en geeft de controle vervolgens over aan een ander programma lpd, de line printing daemon. De line printing daemon vertelt de printer vervolgens hoe het bestand moet worden afgedrukt.
Als lpr wordt uitgevoerd, kopieert het eerst het aangegeven bestand naar een bepaalde directory (de spooldirectory) waar het bestand bewaard blijft totdat lpd het afdrukt. Zodra lpd is verteld dat er een af te drukken bestand is, zal het een kopie van zichzelf voortbrengen (als programmeurs noemen we dit forking). Deze kopie zal ons bestand afdrukkken terwijl de originele kopie op meer verzoeken wacht. Dit maakt het mogelijk dat er tegelijkertijd meerdere taken in de wachtrij kunnen worden geplaatst.
De syntax van lpr(1) is een bekende,
$ lpr [ options ] [ filename ... ]
Als filename
niet is opgegeven, verwacht lpr dat de invoer
van standaardinvoer (meestal het toetsenbord, of de uitvoer van een ander
programma) komt. Dit stelt de gebruiker in staat de uitvoer van een
commando naar de print-spooler om te leiden.
Zoals,
$ cat thesis.txt | lpr
of,
$ pr -l60 thesis.txt | lpr
Het lpr commando accepteert diverse argumenten op de commandoregel die de gebruiker toestaat controle uit te oefenen over hoe het werkt. Een aantal van de meest gebruikte argumenten zijn: -Pprinter specificeert de te gebruiken printer, -h onderdrukt het afdrukken van de de burst pagina, -s maakt een symbolische koppeling aan in plaats van het bestand te kopiëren naar de spooldirectory (handig voor grote bestanden), en -#num geeft het aantal af te drukken kopieën weer. Een voorbeeld interactie met lpr zou kunnen zijn
$ lpr -#2 -sP dj thesis.txt
Dit commando zal een symbolische koppeling aanmaken naar het bestand
thesis.txt
in de spooldirectory voor de printer met de naam
dj, waar het zal worden verwerkt door lpd.
Het zal vervolgens een tweede kopie afdrukken van
thesis.txt
.
Zie lpr(1) voor een lijst met alle opties die lpr herkent.
Gebruik het commando lpq, om de inhoud van de afdrukwachtrij te bekijken. Aangeroepen zonder argumenten, retourneert het de inhoud van de wachtrij van de standaardprinter.
De teruggegeven uitvoer van lpq kan voor vele doelen handig zijn.
$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 thesis.txt 682048 bytes
Een andere nuttige mogelijkheid van elk afdruksysteem is de bevoegdheid om een taak die voorheen in de wachtrij is gezet, te annuleren. Gebruik hiervoor lprm.
$ lprm -
Het commando hierboven annuleert alle afdruktaken waarvan de gebruiker die het commando aanriep, eigenaar is. Een enkele afdruktaak kan worden geannuleerd door eerst het job nummer, dat wordt aangegeven door lpq, te verkrijgen en dat nummer dan aan lprm door te geven. Bijvoorbeeld,
$ lprm 31
zal job 31 (thesis.txt
) van de standaardprinter annuleren.
Het lpc(8) programma wordt gebruikt om de printer, waarin lpd voorziet, te besturen. Je kunt een printer of zijn wachtrijen instellen of onklaar maken, ingangen binnen een wachtrij herschikken, en een statusrapport verkrijgen over de printers en hun wachtrijen. Lpc wordt meestal gebruikt in een setup waar meerdere printers aan één machine hangen.
$ lpc
Hiermee zal het programma lpc worden opgestart. Standaard kom je nu in een interactieve modus, en kun je beginnen met het aanroepen van commando's. De andere optie is om een lpc commando op de commandoregel aan te roepen.
$ lpc status all
Een lijst met de beschikbare commando's staat in de lpd man page,
maar hier zijn een paar van de belangrijkste commando's die je kunt
gebruiken. Opmerkingen die zijn gemarkeerd met een optie kunnen zowel
door een printernaam (lp, print, etc) als het sleutelwoord all
worden aangeroepen, wat alle printers betekent.
Even een opmerking tussendoor over RedHat's verbazingwekkende printtool programma. Het lijkt erop dat het alles doet wat een magicfilter zou doen. RedHat installeert al veel van de programma's om het filteren te doen. Hier kun je zien hoe ik mijn printer heb ingesteld onder RH 4.0 met een HP LJ 4L aangesloten op mijn parallelle poort (zou evengoed hetzelfde voor andere versies van RH kunnen zijn).
Door het /etc/printcap bestand met de hand aan te passen, kun je voor iedere fysieke printer meerdere printerdefinities hebben. Één voor verschillende papierformaten, resoluties, enz.