Hieronder wordt beschreven hoe printers die onder FreeBSD geïnstalleerd zijn gebruikt moeten worden. Nu volgt een overzicht van de commando's op gebruikersniveau:
Er is ook een administratief commando, lpc(8), beschreven in Printers beheren, dat gebruikt wordt om printers en hun wachtrijen in te stellen.
Alledrie de commando's lpr(1), lprm(1) en
lpq(1) accepteren een optie
-P
om aan
te geven op welke printer uit printernaam
/etc/printcap
een opdracht van toepassing is. Dit biedt de mogelijkheid
opdrachten te versturen, verwijderen en controleren voor
verschillende printers. Als -P
niet wordt
gebruikt, werken deze commando's op de printer gedefinieerd in de
omgevingsvariabele PRINTER
. Tot slot, wanneer
de omgevingsvariabele PRINTER
niet is
gedefinieerd, wordt standaard verwezen naar de printer met de
naam lp
.
Om bestanden af te drukken:
%
lpr bestandsnaam ...
Dit drukt elk van de opgegeven bestanden af op de standaard printer. Als geen bestanden worden opgegeven, drukt lpr(1) de standaard invoer af. De volgende opdracht drukt bijvoorbeeld een paar belangrijke systeembestanden af:
%
lpr /etc/host.conf /etc/hosts.equiv
Om een specifieke printer te selecteren:
%
lpr -P printernaam bestandsnaam ...
Dit voorbeeld drukt een lange opgave van de huidige map af
op de printer rattan
:
%
ls -l | lpr -P rattan
Omdat er geen bestanden worden meegegeven aan het commando
lpr(1), drukt lpr
de gegevens af
die het van de standaard invoer leest: de uitvoer van het
commando ls -l
.
lpr(1) accepteert ook een breed scala aan opties om de vorm aan te passen, bestandsconversies toe te passen, meerdere kopieën af te drukken, enzovoort. Meer informatie staat in Afdrukopties.
Als lpr(1) wordt gebruikt om af te drukken, dan worden de gegevens die afdrukt moet worden in een pakketje samengevoegd dat een “afdrukopdracht” wordt genoemd en naar het wachtrijsysteem LPD gestuurd. Elke printer heeft een wachtrij met opdrachten van alle gebruikers. Een printer drukt deze opdrachten op volgorde van binnenkomst af.
De wachtrij voor de standaardprinter kan worden weergegeven
met lpq(1). Voor een specifieke printer moet de optie
-P
meegegeven worden. Het volgende commando
toont de wachtrij van printer bamboo
:
%
lpq -P bamboo
Hieronder volgt een voorbeeld van de uitvoer van het
commando lpq
:
bamboo is ready and printing Rank Owner Job Files Total Size active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes 2nd kelly 10 (standard input) 1635 bytes 3rd mary 11 ... 78519 bytes
Dit laat drie opdrachten zien in de wachtrij voor
bamboo
. De eerste opdracht, gegeven door
gebruiker kelly
, heeft opdrachtnummer 9
gekregen. Elke opdracht voor een printer krijgt een uniek
opdrachtnummer. Dit nummer kan in de meeste gevallen genegeerd
worden, maar is nodig om een opdracht te annuleren. In Opdrachten verwijderen staan
meer details.
Opdrachtnummer negen bestaat uit twee bestanden; meerdere
bestanden opgegeven naar lpr(1), worden als
één enkele opdracht behandeld. Het is de actieve
opdracht (active
onder de kolom
“Rank”), wat betekent dat de printer deze opdracht
momenteel aan het afdrukken is. De tweede opdracht bestaat uit
gegevens doorgegeven aan lpr(1) als standaard invoer. De
derde opdracht is afkomstig van gebruiker
mary
. Het is een veel grotere opdracht.
De bestandsnaam van het bestand dat ze probeert af te drukken
is te lang voor het overzicht, daarom toont lpq(1) drie
puntjes.
De allereerste regel uitvoer van lpq(1) is ook handig: die vertelt wat de printer momenteel aan het doen is; dat wil zeggen, wat LPD denkt dat de printer aan het doen is.
Het commando lpq(1) ondersteunt ook een optie
-l
om een gedetailleerd, lang overzicht te
geven. Hieronder volgt voorbeelduitvoer van
lpq -l
:
waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host.conf 73 bytes /etc/hosts.equiv 15 bytes kelly: 2nd [job 010rose] (standard input) 1635 bytes mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes
Een gebruiker die van gedachten verandert over een af te drukken opdracht, kan een opdracht uit een wachtrij halen met het commando lprm(1). Vaak kan met lprm(1) zelfs een actieve opdracht worden verwijderd, maar een deel of alles van de opdracht kan desondanks toch worden afgedrukt.
Om een opdracht van de standaardprinter te verwijderen dient eerst met lpq(1) het opdrachtnummer gevonden te worden. Typ vervolgens:
%
lprm opdrachtnummer
Om een opdracht van een specifieke printer te verwijderen,
moet de optie -P
worden toegevoegd. Het
volgende commando verwijdert opdrachtnummer 10 uit de wachtrij
van printer bamboo
:
%
lprm -P bamboo 10
Het commando lprm(1) heeft een aantal snelkoppelingen:
Verwijder alle opdrachten (voor de standaardprinter) van de huidige gebruiker.
gebruiker
Verwijder alle opdrachten (voor de standaardprinter)
die van gebruiker
zijn. De
supergebruiker kan opdrachten van andere gebruikers
verwijderen. Andere gebruikers kunnen alleen hun eigen
opdrachten verwijderen.
Zonder een opdrachtnummer, gebruikersnaam of
-
op de opdrachtregel, verwijdert
lprm(1) de huidige actieve opdracht van de huidige
gebruiker op de standaard printer. Alleen de
supergebruiker kan iedere actieve opdracht verwijderen.
Gebruik de optie -P
met bovenstaande
snelkoppelingen om een specifieke printer in plaats van de
standaard printer te selecteren. Het volgende voorbeeld
verwijdert alle opdrachten van de huidige gebruiker uit de
wachtrij van printer rattan
:
%
lprm -P rattan -
Als in een netwerkomgeving wordt gewerkt, staat lprm(1) alleen toe opdrachten te verwijderen vanaf hosts waarvan de afdrukopdrachten zijn gegeven, ook als dezelfde printer vanaf andere hosts bereikbaar is. Het volgende voorbeeld demonstreert dit:
%
lpr -P rattan mijnbestand
%
rlogin orchid
%
lpq -P rattan
Rank Owner Job Files Total Size active seeyan 12 ... 49123 bytes 2nd kelly 13 myfile 12 bytes%
lprm -P rattan 13
rose: Permission denied%
logout
%
lprm -P rattan 13
dfA013rose dequeued cfA013rose dequeued
Het commando lpr(1) ondersteunt een aantal opties voor de opmaak van platte tekst, het converteren van grafische en andere bestandsformaten, het afdrukken van meerdere kopieën, afwikkeling van een opdracht en meer. In deze sectie worden die opties beschreven.
De volgende opties voor lpr(1) zorgen voor de opmaak van de bestanden in de opdracht. Gebruik deze opties als de opdracht geen platte tekst bevat of als platte tekst opgemaakt dient te worden met behulp van pr(1).
Het volgende commando drukt bijvoorbeeld een DVI-bestand
af (van het TeX typesettingsysteem) met de naam
visrapport.dvi
op de printer bamboo
:
%
lpr -P bamboo -d visrapport.dvi
Deze opties zijn van toepassing op alle bestanden in de opdracht. Het is dus niet mogelijk om bijvoorbeeld DVI- en ditroff-bestanden in een opdracht samen te voegen. In plaats hiervan moeten deze bestanden als aparte opdrachten worden gegeven, elk met een andere conversie-optie.
Al deze opties, behalve -p
en
-T
, vereisen dat er conversiefilters zijn
geïnstalleerd voor een printer. De optie
-d
vereist bijvoorbeeld het
DVI-conversiefilter. In Conversiefilters
staan de details beschreven.
-c
Afdrukken van cifplot-bestanden.
-d
Afdrukken van DVI-bestanden.
-f
Afdrukken van FORTRAN tekstbestanden.
-g
Afdrukken van plotgegevens.
-i aantal
De uitvoer wordt aantal
kolommen ingesprongen. Als
nummer
wordt weggelaten,
wordt acht kolommen ingesprongen. Deze optie werkt
alleen met bepaalde conversiefilters.
Plaats geen spatie tussen de -i
en het nummer.
-l
Drukt letterlijke tekstgegevens af, inclusief controlekarakters.
-n
Afdrukken van ditroff (apparaatonafhankelijke troff) gegevens.
Opmaak van platte tekst met pr(1) alvorens af te drukken. Zie pr(1) voor meer informatie.
-T titel
Gebruik titel
op de
pr(1) koptekst in plaats van de bestandsnaam.
Deze optie heeft alleen effect in combinatie met de
optie -p
.
-t
Afdrukken van troffgegevens.
-v
Afdrukken van rastergegevens.
In het volgende voorbeeld wordt een mooi opgemaakte versie van de handleiding ls(1) afgedrukt op de standaardprinter:
%
zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t
Het commando zcat(1) pakt de broncode van de
ls(1) handleiding uit en geeft het door aan het commando
troff(1), dat de broncode opmaakt, er GNU troff van
maakt en dit doorstuurt naar lpr(1), dat de opdracht
naar de LPD wachtrij stuurt.
Omdat de optie -t
meegeven wordt aan
lpr(1), converteert het wachtrijsysteem de GNU troff
uitvoer naar een formaat dat de standaardprinter begrijpt als
de opdracht wordt afgedrukt.
De volgende opties voor lpr(1) geven LPD aan de opdracht speciaal te behandelen:
kopieën
Produceer een aantal van
kopieën
kopieën
van elk bestand in de opdracht, in plaats van
één kopie. Een beheerder kan deze optie
uitschakelen om slijtage van de printer te voorkomen en
gebruik van een kopieerapparaat aan te moedigen. Zie
Meerdere
kopieën beperken.
Dit voorbeeld drukt drie kopieën af van
parser.c
gevolgd door drie kopieën van
parser.h
op de standaardprinter:
%
lpr -#3 parser.c parser.h
Stuur een email na voltooiing van de afdrukopdracht. Met deze optie stuurt het LPD-systeem een email als een opdracht is afgehandeld. In dit bericht vertelt het of de opdracht succesvol is uitgevoerd of dat er een fout was met (vaak) de aard van de fout.
Kopieer de bestanden niet naar de wachtrijmap, maar maak in plaats hiervan een symbolische link.
Bij het afdrukken van een grote opdracht is het handig van deze optie gebruik te maken. Het spaart ruimte in de wachtrijmap (het kan zijn dat de opdracht de vrije ruimte verbruikt in het bestandssysteem waarin de wachtrijmap zich bevindt). Het bespaart ook tijd, omdat LPD niet elke byte van de opdracht naar de wachtrijmap hoeft te kopieëren.
Er is echter een nadeel: aangezien LPD het originele bestand nodig heeft, is het niet mogelijk dit te wijzigen, of te verwijderen totdat het is afgedrukt.
Bij het afdrukken op een printer in een netwerk,
moet LPD een bestand
uiteindelijk toch kopieëren van een lokale host
naar een netwerkhost. De optie -s
bespaart dus ruimte in een lokale wachtrijmap, niet
in die van een host in een netwerk. Het blijft
echter nuttig.
Verwijder bestanden in een opdracht na ze naar een
wachtrij gekopieerd te hebben of na ze te hebben
afgedrukt als de optie -s
is gebruikt.
Wees voorzichtig met deze optie!
Deze opties voor lpr(1) passen de tekst aan die gewoonlijk op het voorblad van een opdracht verschijnt. Deze opties hebben geen effect als het afdrukken van voorbladen wordt onderdrukt op een gebruikte printer. Zie Voorbladen voor meer informatie over het opzetten van voorbladen.
tekst
Vervang de hostnaam op het voorblad door
tekst
. De hostnaam is
gewoonlijk de naam van de host waarvan de opdracht is
verstuurd.
tekst
Vervang de naam van de opdracht op het voorblad
door tekst
. De naam van de
opdracht is standaard de naam van het eerste bestand in
de opdracht of stdin
als de
standaard uitvoer wordt afgedrukt.
Druk geen voorblad af.
Bij sommige installaties kan het zijn dat deze optie geen effect heeft door de manier waarop de voorbladen worden gegenereerd. Zie Voorbladen voor de details.
De beheerder van de printers in een netwerk heeft deze moeten installeren, opzetten en testen. Met het commando lpc(8) kan een beheerder op nog meer manieren communiceren met printers. Met lpc(8) is het mogelijk om:
Printers te starten en te stoppen;
Wachtrijen aan en uit te zetten;
De volgorde van opdrachten in elke wachtrij aan te passen.
Ten eerste een opmerking over terminologie: als een printer is gestopt, drukt die niets uit een wachtrij af. Gebruikers kunnen nog steeds opdrachten geven, maar opdrachten wachten in een wachtrij totdat de bijbehorende printer is gestart of als de wachtrij vrij is.
Als een wachtrij is uitgeschakeld,
kan geen enkele gebruiker (behalve root
)
opdrachten naar een printer versturen. Een
ingeschakelde wachtrij accepteert
opdrachten. Een printer met een uitgeschakelde wachtrij kan
worden gestart en drukt dan alle
afdrukopdrachten in de wachtrij af tot deze leeg is.
In het algemeen is het nodig
root
-rechten te hebben om het commando
lpc(8) te gebruiken. Gewone gebruikers kunnen het
commando lpc(8) gebruiken om een printerstatus op te
vragen en om een vastgelopen printer te herstarten.
Nu volgt een samenvatting van de lpc(8) commando's.
De meeste commando's accepteren een argument
printernaam
, om aan te geven op
welke printer te werken. Om op alle printers te werken die in
/etc/printcap
genoemd worden, kan
all
worden gebruikt als
printernaam
.
abort
printernaam
Annuleer de huidige opdracht en stop de printer. Gebruikers kunnen nog steeds opdrachten versturen als de wachtrij is ingeschakeld.
clean
printernaam
Verwijder oude bestanden uit de wachtrijmap van de betreffende printer. Het kan wel eens gebeuren dat de bestanden waaruit een opdracht bestaat niet juist worden verwijderd door LPD. Dit gebeurt bijvoorbeeld wanneer er fouten zijn opgetreden tijdens het afdrukken of tijdens grote administratieve activiteit. Dit commando vindt en verwijdert bestanden die niet in de wachtrijmap thuishoren.
disable
printernaam
Nieuwe opdrachten kunnen niet meer in de wachtrij
worden geplaatst. Als de printer nog draait, drukt die
de opdrachten die zich nog in de wachtrij bevinden
af. De supergebruiker (root
) kan
altijd opdrachten versturen, ook naar een uitgeschakelde
wachtrij.
Dit commando is handig bij het testen van een nieuwe
printer of een filterinstallatie: schakel de wachtrij uit
en verstuur als root
opdrachten.
Andere gebruikers kunnen geen opdrachten versturen totdat
het testen is voltooid en de wachtrij weer is
ingeschakeld met het commando
enable
.
down printernaam
boodschap
Schakel een printer uit. Equivalent aan
disable
gevolgd door
stop
. De
boodschap
verschijnt als de
status van de printer als een gebruiker de wachtrij van
de printer controleert met lpq(1) of de status
met lpc status
.
enable
printernaam
Schakel de wachtrij van een printer in. Gebruikers kunnen opdrachten versturen, maar de printer drukt ze pas af als deze is gestart.
help
commandonaam
Geef hulp over het commando
commandonaam
. Zonder
commandonaam
, wordt een
samenvatting van de beschikbare commando's
getoond.
restart
printernaam
Start de printer. Gewone gebruikers kunnen dit
commando gebruiken als door een uitzonderlijke
omstandigheid LPD hangt, maar
ze kunnen een printer niet starten die gestopt is met
een van de commando's stop
of
down
. Het commando
restart
is equivalent aan
abort
gevolgd door
start
.
start
printernaam
Start de printer. De printer drukt opdrachten in zijn wachtrij af.
stop
printernaam
Stop de printer. De printer maakt de huidige opdracht af en drukt opdrachten in de wachtrij niet af. Gebruikers kunnen nog steeds opdrachten versturen naar een ingeschakelde wachtrij, ook al is de printer gestopt.
topq printernaam
opdracht-of-gebruikersnaam
Herschik de wachtrij voor
printernaam
door de opdrachten
met de opgegeven opdracht
nummers of opdrachten van
gebruikersnaam
bovenaan de
wachtrij te plaatsen. Voor dit commando is het niet
mogelijk all
te gebruiken als
printernaam
.
up
printernaam
Schakel een printer in. Het omgekeerde van het
commando down
. Equivalent aan
start
gevolgd door
enable
.
lpc(8) accepteert bovenstaande commando's op de
opdrachtregel. Als er geen commando's worden gegeven,
schakelt lpc(8) over op een interactieve modus, waar
opdrachten gegeven kunnen worden totdat het commando
exit
, quit
of
einde-van-bestand wordt gegeven.