I detta kapitel beskrivs hur man skriver ut filer, hur man gör för att titta på skrivarkön, hur utskriftsjobb raderas från skrivarkön, hur filer formateras före utskrift samt hur ``utskriftsmiljön'' ställs in.
Den utskriftshanterare som används under Linux - det s.k. lp-systemet - är en anpassning av den källkod som utvecklats vid University of California till Berkley-distributionen av UNIX (BSD).
Det allra enklaste sättet att skriva ut något i Linux, är att sända den fil
som skall skrivas ut direkt till skrivarenheten. Detta kan t.ex. göras
genom att använda kommandot cat. Som root
, skulle man kunna
skriva
# cat thesis.txt > /dev/lp
I det här fallet, är /dev/lp
en symbolisk länk till den verkliga
skrivarenheten---må det vara en matrisskrivare, laserskrivare,
typsättningsmaskin eller plotter. (Se ln(1) för information om
symboliska länkar.)
Av säkerhetsskäl, har endast root
och de användare som är medlemmar
av samma grupp som skrivar-demonen rätt att skriva direkt till skrivaren.
Därför måste kommandon som lpr, lprm och lpq
användas för att komma åt skrivaren.
lpr används för att skriva ut en fil. Kommandot lpr ansvarar för det inledande arbete, som krävs för att filen skall kunna skrivas ut, och överlämnar därefter kontrollen till ett annat program, lpd, skrivar-daemonen. Skrivar-daemonen ``talar om'' för skrivaren hur filen skall skrivas ut.
När lpr exekveras, kopieras först den angivna filen till en särskild katalog (spool-katalogen, eller ``the spool directory''), där den sedan finns tills lpd skriver ut den. Då lpd får reda på att det finns en fil att skriva ut, exekverar den en kopia av sig själv (något som vi programmerare kallar ``delning'' eller ``forking''). Denna kopia av lpd skriver ut filen, medan den ursprungliga kopian väntar på ytterligare förfrågningar. På detta sätt kan flera skrivarjobb köa samtidigt.
Syntaxen för lpr(1), är välkänd,
$ lpr [ val ] [ filnanm ... ]
Om inget filnamn
anges, förväntas inmatningen till lpr komma från
standardenheten för inmatning (vanligen tangentbordet, eller utmatningen
från ett annat program). Detta ger användaren möjlighet att omdirigera
utmatningen från ett kommando till utskriftshanteraren, t.ex. såhär:
$ cat thesis.txt | lpr
eller
$ pr -l60 thesis.txt | lpr
lpr förstår ett flertal kommandoradsargument, vilket möjliggör för användaren att kontrollera dess funktion. Några av de vanligaste argumenten är dessa: -Pskrivare anger vilken skrivare som skall användas, -h gör att ingen titelsida skrivs ut, -s skapar en symbolisk länk istället för att kopiera filen till spool-katalogen (användbart för stora filer) och -#nummer anger antal kopior som skall skrivas ut. Ett exempel på hur lpr kan användas är:
$ lpr -#2 -sP dj thesis.txt
Detta kommando skapar en symbolisk länk till filen thesis.txt
i
spool-katalogen för skrivaren dj, där lpd tar hand om filen.
Dessutom skrivs en andra kopia av filen thesis.txt
ut.
Se lpr(1) för en lista med alla alternativ som lpr förstår.
Använd kommandot lpq, för att titta på innehållet i skrivarkön. Om det körs utan argument, visas standardskrivarens kö.
Utmatningen från lpq är användbar till mycket.
$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 thesis.txt 682048 bytes
En annan användbar finess hos en utskriftshanterare är möjligheten att avbryta ett skrivarjobb som är placerat i kö. Använd lprm för att göra det.
$ lprm -
Kommandot ovan avbryter alla skrivarjobb som ägs av den användare som kör det. Ett enstaka jobb kan avbrytas genom att först ta reda på jobbets ID-nummer med lpq, och därefter ange det på kommandoraden till lprm. Till exempel skulle
$ lprm 31
avbryta jobb nummer 31 (thesis.txt
) på standardskrivaren.
Programmet lpc används för att styra de skrivare som lpd kontrollerar. Du kan aktivera eller deaktivera en skrivare eller dess köer, förändra ordningen mellan jobb i en kö samt erhålla en statusrapport över skrivare och köer. lpc används oftast när flera skrivare är kopplade till en och samma dator.
$ lpc
Detta startar normalt lpc i ett interaktivt läge, i vilket det går att ge kommandon till programmet. Du kan också ge lpc-kommandon direkt på kommandoraden:
$ lpc status all
En lista med tillgängliga kommandon finns på manualsidan till lpd,
men här ges några viktiga kommandon, som du bör känna till. Om kommandot
innehåller ordet val, kan det efterföljas av ett skrivarnamn (lp,
print, etc.) eller ordet all
, vilket betyder alla skrivare.
Bara en kort kommentar här angående RedHats förbluffande printtool-program. Det verkar göra allt som ett magiskt filter gör. RedHat installerar redan många av de program, som utför själva filtreringen. Jag beskriver här hur mina skrivarinställningar är under RH 4.0 med en HP LJ 4L ansluten till parallellporten (samma sak torde gälla för andra versioner av RedHat också).