Ebből a szakaszból megtudhatjuk, hogyan használjuk a FreeBSD-n beállított nyomtatónkat. Röviden most itt foglaljuk össze az ide tartozó felhasználói parancsokat:
Ezek mellett létezik még a nyomtatók és a hozzájuk tartozó sorok irányítására alkalmas parancs is, az lpc(8), amelyre a A nyomtatók vezérlése című szakaszban fogunk részleteiben kitérni.
A nyomtatók/sorok /etc/printcap
állományban szereplő nevük szerinti
megadásához az lpr(1), lprm(1) és
lpq(1) parancsok közül mindegyik elfogadja a
-P
paramétert. Ennek köszönhetően
képesek vagyunk nyomtatási feladatokat küldeni,
eltávolítani vagy felügyelni az egyes
nyomtatók soraiban. Ha nem használjuk a
nyomtatónév
-P
kapcsolót, akkor az érintett
nyomtató a PRINTER
környezeti
változó által meghatározott lesz.
Végül, ha a PRINTER
nevű
környezeti változót sem
állítottuk be, akkor a parancsok
alapértelmezett módon az lp
nevű nyomtatót fogják használni.
A továbbiakban az alapértelmezett
nyomtató kifejezés a
PRINTER
környezeti változó
által megnevezett nyomtatóra fog utalni, illetve ha
ezt nem definiáltuk, akkor az lp
nevű nyomtatóra.
Az állományok kinyomtatásához írjuk be:
%
lpr állománynév ...
Ezzel kinyomtatjuk az összes felsorolt állományt az alapértelmezett nyomtatón. Ha nem adunk meg állományokat, akkor az lpr(1) parancs a szabványos bemenetről várja a nyomtatandó adatokat. Például ezzel a paranccsal néhány igen fontos rendszerállományt tudunk kinyomtatni:
%
lpr /etc/host.conf /etc/hosts.equiv
A nyomtató megválasztásához így adjuk ki a parancsot:
%
lpr -P nyomtatónév állománynév ...
Ez a példa kinyomtatja az aktuális
könyvtár részletes listáját a
rattan
nevű nyomtatón:
%
ls -l | lpr -P rattan
Mivel egyetlen állományt sem adtunk meg az
lpr(1) programnak, az lpr
parancs a
nyomtatandó adatokat a szabványos bemenetről
várja, ami jelen esetünkben a
ls -l
parancs
kimenete.
Az lpr(1) ezeken felül még képes értelmezni rengeteg formázásra, konverzióra, másolatok készítésére stb. utasító kapcsolót is. Erről bővebben a Nyomtatási beállítások című szakaszban lesz szó.
Amikor az lpr(1) programmal nyomtatunk, az összes nyomtatandónk egy "nyomtatási feladatnak" nevezett csomagba kerül, ami pedig az LPD nyomtatási rendszerébe. Minden nyomtatóhoz tartozik egy nyomtatási sor, ahol részünkről és mások által eddig kiadott nyomtatási feladatokat találhatjuk. A nyomtató ezután ezeket érkezési sorrend szerint dolgozza fel.
Az alapértelmezett nyomtatóhoz tartozó
sor állapotát az lpq(1) programmal tudjuk
megnézni. Ha egy adott nyomtatóra vagyunk
kíváncsiak, akkor használjuk a
-P
kapcsolót. Például a
%
lpq -P bamboo
parancs a bamboo
nevű
nyomtató sorát fogja megmutatni.
Példaképpen lássuk is ilyen esetben az
lpq
parancs eredményét:
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
Itt három nyomtatási feladatot
láthatunk a bamboo
nyomtatási
sorában. Az első nyomtatási feladat, amit a
kelly
nevű felhasználó
küldött, a 9-es "feladatszámot"
kapta. A nyomtatóhoz tartozó összes feladat
kap egy ilyen egyedi számot. Többnyire nyugodtan
figyelmen kívül hagyhatjuk, azonban
szükségünk lehet rá, ha éppen
törölni kívánjuk a
hozzá tartozó nyomtatási feladatot. Ezzel
majd a Nyomtatási feladatok
eltávolítása című
szakaszban foglalkozunk.
A kilences számú nyomtatási feladat
két állományt tartalmaz: ha a parancssorban
több állományt adunk meg az lpr(1)
programnak, akkor az egy nyomtatási feladatnak
számít. Ez egyben a pillanatnyilag aktív
nyomtatási feladat (ezt a "Rank" oszlopban
szereplő active
érték
jelzi), tehát a nyomtató éppen ezzel
foglalatoskodik. A második nyomtatási feladat
közvetlenül az lpr(1) szabványos
bemenetére érkezett. A harmadik a
mary
nevű
felhasználótól jött, és ez egy
nagyobb méretű nyomtatási feladat. A
nyomtatandó állomány elérési
útvonala túlságosan hosszú ahhoz,
hogy ki lehessen írni, ezért az lpr(1) csak
három pontot jelez ki helyette.
Az lpq(1) kimenetének első sorai is nagyon hasznos információt tartalmaz: megtudhatjuk, mit csinál éppen (legalább is az LPD szerint) a nyomtató.
A -l
kapcsolóval az lpq(1)
parancstól kérhetünk sokkal
részletesebb listázást is.
Például így nézhet ki a
lpq -l
parancs eredménye:
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
Ha meggondoltuk volna magunkat egy nyomtatási feladattal kapcsolatban, az lprm(1) paranccsal még törölni tudjuk a sorból. Az lprm(1) gyakran még a folyamatban levő nyomtatási feladatot is képes eltávolítani, azonban előfordulhat, hogy a nyomtatási feladat egy része már elvégzésre került.
Az alapértelmezett nyomtató sorából csak úgy tudunk nyomtatási feladatokat törölni, ha először az lpq(1) segítségével megkeressük a számukat. Ha ez megvan, írjuk be:
%
lprm feladatám
Adott nyomtatóról a -P
kapcsoló segítségével tudunk
nyomtatási feladatot törölni. A most
következő parancs a bamboo
nevű nyomtatóról törli a 10-es
számú nyomtatási feladatot:
%
lprm -P bamboo 10
Az lprm(1) parancs esetén még használhatóak az alábbi rövidítések is:
Eltávolítja a hozzánk tartozó az összes nyomtatási feladatot (az alapértelmezett nyomtatón).
felhasználó
Eltávolítja az adott
felhasználó
hoz
tartozó összes nyomtatási feladatot (az
alapértelmezett nyomtatón).
Kizárólag a rendszergazdák
képesek erre, a rendes felhasználók
csak a saját nyomtatási feladataikat
törölhetik.
A nyomtatási feladat száma, a
felhasználói név vagy a
-
megadása nélkül az
lprm(1) törli az alapértelmezett
nyomtatón éppen aktív
nyomtatási feladatot, amennyiben az a miénk.
Csak a rendszergazdák képesek
bármilyen aktív nyomtatási feladatot
törölni.
Ha kiegészítjük az imént
említett rövidítéséket a
-P
paraméter megadásával,
akkor az alapértelmezett nyomtató helyett
bármelyik másikat is használhatjuk.
Például ez a parancs eltávolítja az
aktuális felhasználó összes
nyomtatási feladatot a rattan
nevű nyomtatón:
%
lprm -P rattan -
Hálózati környezetben az lprm(1) csak arról a gépről engedi törölni a nyomtatási feladatokat, amelyről küldték ezeket, még abban az esetben is, amikor ugyanaz a nyomtató más számítógépekről is elérhető. A következő parancssorozat ezt igyekszik szemléltetni:
%
lpr -P rattan myfile
%
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
Az lpr(1) parancs számos olyan beállítást enged, amelyekkel a szövegek formázását, grafikák átalakítását illetve más állományformátumok használatát, másolatok készítését, nyomtatási feladatok irányítását és még sok minden mást el tudunk végezni. Ebben a szakaszban pontosan ezekről a kapcsolókról lesz szó.
Az lpr(1) most következő opciói a nyomtatási feladatokban található állományok formázását vezérlik. Akkor használjuk ezeket a beállításokat, ha a nyomtatási feladat nem tartalmaz nyers szöveget, vagy ha nyers szöveget akarunk formázni a pr(1) segédprogrammal.
Például az alábbi parancs kinyomtat
egy
halászati-jelentés.dvi
nevű (a TeX betűszedű rendszerből
már jól ismert) DVI állományt a
bamboo
nevű nyomtatón:
%
lpr -P bamboo -d halászati-jelentés.dvi
Ezek a beállítások a nyomtatási feladatban szereplő minden egyes állományra vonatkoznak, ezért nem keverhetjük (például) a DVI és ditroff formátumú állományokat egy nyomtatási feladaton belül. Ehelyett külön nyomtatási feladatokban kell elküldenünk az eltérő formátumú állományokat, és mindegyik nyomtatási feladathoz külön konverziós beállításokat kell megadnunk.
A -p
és -T
kapcsolók kivételével az itt felsorolt
összes beállításnak a
kiválasztott nyomtatóhoz szüksége
van a megfelelő konverziós szűrőre.
Például a -d
opció
használatához kell egy konverziós
szűrő a DVI formátumhoz. A Konverziós
szűrők című szakasz
erről ad bővebb
tájékoztatást.
-c
Cifplot állományok nyomtatása.
-d
DVI állományok nyomtatása.
-f
FORTRAN forrás nyomtatása.
-g
Plot formátumú adatok nyomtatása.
-i szám
A kinyomtatott szöveg
behúzásának növelése a
szám
értékével. Ha nem adjuk meg a
számot
, akkor ennek
értéke 8 lesz. Ez a
beállítás csak bizonyos
konverziós szűrőkkel
működik.
Ne hagyjunk helyet az -i
és a szám között.
-l
A szöveg formázás nélküli nyomtatása, vezérlőkarakterekkel együtt.
-n
Ditroff (eszközfüggetlen troff) adat nyomtatása.
Nyomtatás előtt a szöveg formázása a pr(1) programmal. Lásd pr(1).
-T
cím
Az állomány neve helyett a
fejlécben a címet
jeleníti meg a pr(1). Ennek a
beállításnak csak a
-p
opcióval együtt van
hatása.
-t
Troff adat nyomtatása.
-v
Raszteres adatok nyomtatása.
Vegyünk az iméntiekre egy példát. A következő parancs az ls(1) szépen megformázott man oldalát nyomtatja ki az alapértelmezett nyomtatón:
%
zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t
A zcat(1) kitömöríti az ls(1)
man oldalának forrását és
átadja a troff(1) parancsnak, ami ebből
létrehoz a GNU troff formátumának
megfelelő kimenetet és továbbadja az
lpr(1) parancsnak, ami végül elküldi a
nyomtatási feladatot az LPD
nyomtatási rendszernek. Mivel az lpr(1)
parancsnak megadtuk az -t
kapcsolót, a
nyomtatási rendszer a GNU troff formátumban
érkező adatokat magától át
fogja alakítani olyan formátumra, amit a
nyomtató is képes lesz megérteni.
Az lpr(1) most felsorolandó beállításaival az LPD rendszert arra tudjuk utasítani, hogy a nyomtatási feladatot különleges módon kezelje:
példányszám
Egyetlen példány helyett hozzon
létre
példányszám
számú példányt a
nyomtatási feladatban található
összes állományból. A
rendszergazda a nyomtató
kímélése érdekében
ezt a lehetőséget letilthatja, amivel
inkább a fénymásoló
használatára ösztönzi a
felhasználókat. Lásd A
másolatok számának
szabályozása szakasz.
A beállítás
illusztrálásaként most az
alapértelmezett nyomtatón
először nyomtassunk ki három
példányt a
parser.c
,
majd ezután a
parser.h
állományokból:
%
lpr -#3 parser.c parser.h
A rendszer küldjön levelet a nyomtatási feladat teljesítése után. Ekkor az LPD a nyomtatási feladat elvégzése után levelet küld a helyi postafiókunkba. A levélben kifejti, hogy sikeres volt-e a nyomtatás, vagy esetleg valamilyen hiba keletkezett, és ha hiba történt, akkor pontosan mi is volt az.
Ne másolja közvetlenül az állományokat a nyomtatási könyvtárba, hanem készítsen hozzájuk szimbolikus linkeket.
Egy nagyobb nyomtatási feladat elvégzése esetén javasolt használni ezt a kapcsolót. Ezzel a megoldással helyet tudunk spórolni a nyomtatási könyvtárban (amikor a nyomtatási feladatok könnyen megtelítheti a nyomtatási könyvtárat tároló állományrendszert). Emellett időt is takarítunk meg, mivel az LPD-nek nem kell a nyomtatási feladat minden egyes bitjét átmásolni a nyomtatási könyvtárba.
Van azonban egy hátránya: mivel az LPD ekkor közvetlenül az eredeti állományra fog hivatkozni, ezért a nyomtatás befejezéséig azt nem módosíthatjuk vagy törölhetjük.
Ha egy távoli nyomtatónak
küldjük a nyomtatási feladatot, akkor
az LPD a helyi és a
távoli számítógép
között mégis kénytelen lesz
átmásolni a nyomtatási feladatot,
így a -s
kapcsoló
egyedül csak a helyi nyomtatási
könyvtárban fog helyet spórolni.
Ettől eltekintve még ilyenkor is
hasznunkra válhat.
Törölje a nyomtatási feladatban
szereplő állományokat, miután
átmásolta ezeket a nyomtatási
könyvtárba, vagy miután a
-s
kapcsoló
használatával kinyomtatta ezeket. Nagy
körültekintéssel
használjuk!
Az lpr(1) most következő beállításai a nyomtatási feladatok fejlécében megjelenő szövegekre vannak hatással. Így ha letiltottuk a fejléclapok használatát, akkor ezek a kapcsolók lényegében semmit sem állítanak. A Fejléclapok című szakaszból tudhatunk meg többet ezek beállításáról.
szöveg
A fejléclapon megjelenő
hálózati név helyett a
szöveg
fog szerepelni.
A hálózati név
általában annak a gépnek a neve,
ahonnan a nyomtatási feladatot
küldték.
szöveg
A fejléclapon megjelenő
nyomtatási feladat neve helyett a
szöveg
fog megjelenni.
A nyomtatási feladat neve általában
a benne szereplő első állomány
nevével egyezik meg, ha a szabványos
bemenetről nyomtatunk, akkor egyszerűen csak
stdin
.
Ne nyomtasson fejléclapot.
Bizonyos helyeken előfordulhat, hogy ennek a kapcsolónak nincs semmilyen hatása a fejléclapok létrehozásának módszeréből fakadóan. A részleteket lásd a Fejléclapok szakaszban.
A nyomtatóink rendszergazdájaként nekünk kell telepítenük, üzembe helyeznünk és kipróbálnunk ezeket. Az lpc(8) parancs használatával még jobban képesek vagyunk kapcsolatba lépni velük. Az lpc(8) paranccsal:
el tudjuk indítani és le tudjuk állítani a nyomtatókat;
be- és ki tudjuk kapcsolni a nyomtatási soraikat;
át tudjuk rendezni az egyes sorokban található nyomtatási feladatokat.
Először is essen pár szó a fogalmakról: ha a nyomtató leállt, akkor semmit sem fog kinyomtatni a sorából. A felhasználók továbbra is képesek nyomtatási feladatokat küldeni, amik azonban egészen addig fognak várakozni, amíg a nyomtatót el nem indítjuk vagy a sorát ki nem ürítjük.
Ha egy sort kikapcsolunk, akkor (a
root
kivételével) egyetlen
felhasználó sem képes nyomtatási
feladatokat küldeni a nyomtatónak. A
bekapcsolt sorok képesek csak
nyomtatási feladatot fogadni. A nyomtató
elindítható kikapcsolt sorral
is, ilyenkor egészen addig folytatja a nyomtatási
feladatok elvégzését, amíg a sor ki
nem ürül.
Általánosan elmondható, hogy az
lpc(8) parancs használatához a
root
felhasználó
jogosultságaira van szükségünk. Az
lpc(8) parancsot minden más esetben csak a
nyomtató állapotának
ellenőrzésére vagy a megakadt nyomtató
újraindítására
használhatjuk.
Foglaljuk röviden össze az lpc(8) parancsait.
A legtöbb parancs kiadásához még
szükséges egy
nyomtatónév
paraméter megadása is, amivel megnevezzük az
utasítani kívánt nyomtatót.
Helyette használható az all
szó is, amivel az /etc/printcap
állományban szereplő összes
nyomtatót egyszerre utasíthatjuk.
abort
nyomtatónév
Az aktuális nyomtatási feladat megszakítása és a nyomtató leállítása. Ha a nyomtatási sort még nem kapcsoltuk ki, a felhasználók küldhetnek további nyomtatási feladatokat.
clean
nyomtatónév
A nyomtató könyvtárából töröljük a régi állományokat. Esetenként adódhat, hogy bizonyos nyomtatási feladatok állományait nem takarította el az LPD, különösen abban az esetben, amikor a nyomtatás vagy az adminisztrálás során keletkezett valamilyen hiba. Ez a parancs segít megtalálni a nyomtatási könyvtárból már kikopott állományokat és törli ezeket.
disable
nyomtatónév
Az újonnan érkező nyomtatási
feladatok besorolásának kikapcsolása.
Ha a nyomtató még működik, akkor
folytatni fogja a sorban még bennmaradt
nyomtatási feladatok
elvégzését. A rendszergazda (a
root
) még a kikapcsolt sorok
esetén is küldhet nyomtatási
feladatokat.
Ez a parancs valójában akkor hasznos, ha
egy új nyomtató vagy egy új
szűrő működését
próbálgatjuk: ilyenkor érdemes
kikapcsolni a nyomtatási sort és
root
felhasználóként nyomtatási
feladatokat küldeni. A többi
felhasználó a tesztelés
befejezéséig nem tud majd nyomtatási
feladatokat küldeni, vagyis egészen addig,
amíg a nyomtatási sort vissza nem kapcsoljuk
az enable
paranccsal.
down
nyomtatónév
üzenet
A nyomtató üzemen kívül
helyezése. Lényegében megegyezik egy
disable
és utána egy
stop
parancs kiadásával.
Az üzenet
akkor jelenik
meg, amikor a valaki megpróbálja
lekérdezni a nyomtató
állapotát az lpc status
paranccsal, vagy amikor megnézi a nyomtatási
sorát az lpq(1) paranccsal.
enable
nyomtatónév
A nyomtatóhoz tartozó nyomtatási sor bekapcsolása. A felhasználók ezután már képesek lesznek a nyomtatónak feladatokat küldeni, azonban egészen addig nem nyomtatódik ki semmi, amíg a nyomtatót el nem indítjuk.
help
parancsnév
Megmutatja a
parancsnév
parancshoz
tartozó súgót. A
parancsnév
megadása nélkül a rendelkezésre
álló parancsok listáját kapjuk
meg.
restart
nyomtatónév
Elindítja a nyomtatót. A
felhasználók ezt a parancsot tudják
használni abban az esetben, amikor valamilyen
megmagyarázhatatlan okból az
LPD működése
megáll, viszont ezzel nem tudják
elindítani a stop
vagy
down
parancsokkal
leállított nyomtatót. A
restart
parancs megegyezik az
abort
és a
start
egymás utáni
kiadásával.
start
nyomtatónév
Elindítja a nyomtatót, és a nyomtató nekilát kinyomtatni a sorában levő nyomtatási feladatokat.
stop
nyomtatónév
Leállítja a nyomtatót, és a nyomtató az aktuális nyomtatási feladat befejezése után már nem kezd neki újabbnak. Ettől függetlenül a felhasználók még továbbra is képesek feladatokat küldeni a nyomtatási sorába.
topq
nyomtatónév
feladat-vagy-felhasználónév
Átrendezi a
nyomtatónév
nevű nyomtató sorát úgy, hogy a
megadott azonosítójú
feladatot
vagy a megadott
felhasználónévhez
tartozó nyomtatási feladatokat a sor
elejére teszi. Ennél a parancsnál
nyomtatónévnek
nem adhatjuk meg az all
értéket.
up
nyomtatónév
Üzembe helyezi a nyomtatót,
tulajdonképpen a down
parancs
ellentéte. Megegyezik egy egymás
után kiadott start
és
enable
paranccsal.
Az lpc(8) a fenti parancsokat a parancssorból
fogadja el. Ha itt nem adunk meg neki semmilyen parancsot,
akkor az lpc(8) interaktív módba vált,
ahol ugyanezeket a parancsokat adhatjuk ki, egészen az
exit
, quit
parancsok vagy
az állományvége jelzés
begépeléséig.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.