21. Tulostimet
Tulostus Unixissa tapahtuu perinteisesti joko tekstipohjaisena
rivikirjoittimella tai muotoiltuna Adoben kehittämällä PostScript-sivunkuvauskielellä.
Käytännössä kaikki ohjelmat, joista voi tulostaa tuottavat PostScriptiä joko
tiedostoon tai suoraan tulostusjonoon. PostScript on itse asiassa täysiverinen
ohjelmointikieli ja mahdollistaa tulostimen parhaan tarkkuuden käytön
riippumatta siitä, millaisella laitteella tulostus on tehty. PostScript-tiedostot
tunnistaa tarkentimesta ps.
Tärkeitä käsitteitä Unix-tulostuksessa ovat jonot ja filtterit. Jonot ovat
joko paikallisella tai etäkoneella sijaitsevia puskureita, joihin tulostettavat
työt menevät kunnes tulostusdemoni (lpd) syöttää ne tulostimelle. Jonojen
hakemistot sijaitsevat paikassa /var/spool/lpd. Filtterit ovat ohjelmia, joilla
tulostusta voidaan muokata ennen kuin se syötetään tulostimelle. Tavallisin
filtteri on ghostscript, joka muuttaa PostScript-tyyppisen tulosteen tulostimen
ymmärtämään muotoon. Red Hatissa on käytössä älykäs filtteri, joka osaa muuttaa
lennossa jotkin erityyppiset tiedostot kuten teksti ja jpeg PostScriptiksi.
Tulostimen asennus
Helpointa, joskaan ei joustavinta, on asentaa tulostimet Red Hatin graafisella
asetustyökalulla. Control-panelissa on tätä varten kohta 'Printer Configuration'.
Uutta jonoa lisättäessä valitaan Add, jonka jälkeen asetustyökalu kysyy
minkä tyyppinen tulostin halutaan asentaa. Tyyppejä ovat:
Local Printer - Koneen paikallinen tulostin
Remote Unix (lpd) Queue - Verkkotulostin
LAN Manager Printer - Windows-verkon tulostin. Vaatii Samban.
NetWare Printer - Novell Netware-verkon tulostin
Valittaessa paikallinen tulostin, asetustyökalu ilmoittaa mitä rinnakkaisportteja
koneesta löytyy. Portit ovat nimillä /dev/lp0, lp1 ja lp2. Seuraavaksi
aukeavassa valintaikkunassa valitaan tulostusjonon nimi. Jos halutaan useampia
nimiä, ne erotetaan putkimerkillä (|). Muita valintoja ovat jonon puskurihakemisto,
suurimman mahdollisen työn koko tai nolla jos kokoa ei haluta rajoittaa,
tulostimen portti ja filtteri. Filtteri valitsee käytännössä tulostimen
tyypin ja asetukset. Tärkeitä valintoja filtterin valinnassa ovat tulostimen
asetusten lisäksi 'Send EOF after job to eject page' ja 'Fix stair-stepping
text', joista edellinen aiheuttaa tekstimuotoisten tiedostojen viimeisen
sivun automaattisen tulostamisen kokonaan ja jälkimmäinen korjaa
tekstitulosteiden rivinvaihto-ongelman. Alareunan kohta 'Suppress headers'
estää tulostuksen otsikkosivujen tulostamisen. Valinta kannattaa jättää päälle
ellei ole tarkoitus valvoa käyttäjien tulostuksia.
Etätulostin asennetaan muuten samalla tavoin, mutta tulostinportin sijasta
asetetaan etäkoneen tai -tulostimen nimi tai IP-numero ja tulostusjono.
Eräs huomattava seikka on, että filtterin valinta ei vaikuta mitenkään
etätulostimen kanssa, vaan filtteröinti tapahtuu etäkoneella. Mikäli
filtteröinti halutaan välttämättä suorittaa paikallisella koneella, täytyy
luoda kaksi tulostusjonoa, joista ensimmäinen on paikallinen ja tulostaa
toiselle, joka on etäjono. Asetustyökalu ei anna tähän valmista mahdollisuutta.
Jos paikallinen tulostin halutaan jakaa verkkoon, luetellaan tiedostossa
/etc/hosts.lpd koneet, joilla on oikeus käyttää tulostinta.
Kuva 21.1 Etätulostusjonon asetukset
/etc/printcap
Tiedosto /etc/printcap sisältää tulostusjonojen asetukset. Tiedostoa voi
olla tarpeen muokata, mikäli graafinen asetustyökalu ei anna tyydyttäviä
tuloksia. Tulostusjonon asetukset alkavat sen nimellä, jota seuraavat
kaksoispisteillä erotetut asetukset. Rivin loppuun tulee kauttaviiva.
Tavallisia asetuksia ovat:
sd - Hakemisto, johon tulostustyöt puskuroidaan
mx# - Tulostustyön maksimikoko. Nolla jos kokoa ei rajoiteta.
sh - Estää otsikkosivujen tulostumisen
lp - Paikallisen tulostimen portti kuten /dev/lp1
rm - Etätulostimen IP-osoite tai nimi
rp - Etätulostimen jono etäkoneella
if - Tulostustöille käytettävä filtterikomento
Esimerkki paikallisen laserjet-nimisen jonon asetuksista:
laserjet:\
:sd=/var/spool/lpd/laserjet:\
:mx#0:\
:sh:\
:lp=/dev/lp1:\
:if=/var/spool/lpd/laserjet/filter:
lpr, lprm ja lpq
Joskus ohjelmat tuottavat ainoastaan PostScript-tiedostoja tai on muuten
tarve tulostaa komentoriviltä. Komennolla lpr voidaan tulostaa tiedosto
haluttuun jonoon. Komento lprm poistaa tulostustyön jonosta ja lpq näyttää
jonossa odottavat työt. Eri jonoja käsitellään antamalla komennoille
ensimmäiseksi parametriksi -P ja heti sen perään halutun jonon nimi.
Jos jonoa ei anneta parametrina, menee tulostus oletusjonoon lp.
Esimerkkejä:
lpr kirje.ps
Tulostaa PostScript-tiedoston kirje.ps oletusjonoon.
lpq -Plaserjet
Näyttää jonossa laserjet olevat tulostustyöt.
lprm -Plaserjet 12
Poistaa jonosta laserjet työn numero 12.
Ghostview
PostScript-muotoisten tiedostojen esikatseluun X:ssä voidaan käyttää ohjelmaa
Ghostview, joka käynnistyy komennolla gv. Sivua voi vierittää vasemmalla
hiirennapilla ja zoomata keskinapilla. Sivuja voi tulostaa yksitellen tai
useampia valitsemalla niitä alakulman luettelosta keskimmäisellä hiirennapilla.
Kuva 21.2 Ghostviewin pääikkuna
22. Ohjelmien asennus
Kolme tavallisinta tapaa asentaa ohjelmia Red Hat Linuxiin ovat rpm-paketit,
valmiit binäärit ja ohjelmien kääntäminen. Distribuution mukana tulevat
ohjelmat ovat valmiina rpm-paketteina, kun taas esim. internetistä saatavat
ohjelmat ovat usein tar-tyyppisiä paketteja, joissa on joko valmiiksi käännetyt
ohjelmabinäärit tai ohjelman lähdekoodi. Muissa Linux-distribuutioissa on
käytössä omia paketinhallintamenetelmiä kuin rpm, esim. Debian käyttää
deb-paketteja.
rpm
Red Hatin rpm-paketit ovat yksinkertaisin tapa asentaa ohjelmia. Paketeissa
on valmiina sekä ohjelmatiedostot että asetustiedostot ja ne asentuvat
automaattisesti oikeisiin hakemistoihin ja ohjelma on heti käyttövalmis.
Rpm-paketit tukevat myös riippuvuuksia, eli jos ohjelma vaatii toisen
paketin toimiakseen, rpm osaa ilmoittaa puuttuvan paketin nimen. Rpm-paketteja
voi hallita graafisella Glint-työkalulla, joka käynnistyy komennolla
glint tai Control-panelin kohdasta 'Package management'.
Komentoriviltä pakettien hallinta tapahtuu komennolla rpm. Vivulla
-i asennetaan paketti. Mikäli jokin toinen tarvittava paketti puuttuu, rpm ilmoittaa
siitä. Riippuvuudet voi ohittaa lisäämällä komentoriville vivun --nodeps.
Vanhan paketin voi ylikirjoittaa vivulla --force.
Vivulla -q ja sen vivuilla kysellään tietoja pakettien sisällöstä. Kyselyn
vipu -pl kertoo mitä tiedostoja paketissa on, vipu -a näyttää kaikki asennetut
paketit ja -pi antaa kuvauksen paketin sisällöstä. Vipu -e poistaa
parametrina annetun paketin järjestelmästä. Paljon lisää vipuja löytyy
rpm:n manuaalisivulta.
Esimerkkejä:
rpm -i xlockmore-4.11-3.i386.rpm
Asentaa paketin xlockmore-4.11-3.i386.rpm järjestelmään.
rpm -e xlockmore-4.11-3
Poistaa paketin xlockmore-4.11-3. Poistettaessa pakettia ei anneta sen
tarkenninta eikä i386-osaa.
rpm -q -pi xlockmore-4.11-3.i386.rpm
Näyttää paketin xlockmore-4.11-3.i386.rpm yleiset tiedot.
tar ja gzip
Yleisin Unixissa käytetty pakkaustapa on se, että komennolla tar kerätään
tiedostot pakettiin ja filtteröidään ne gzip-pakkausohjelman läpi. Tar
(tape arcive) on alkujaan tarkoitettu hakemistojen varmuuskopiointiin
nauhalle. Internetistä saatavat ohjelmat on useimmiten pakattu juurikin
tar+gzipillä, tällaisten tiedostojen tarkennin on joko tar.gz tai tgz.
Gzip-filtteröinnistä ei tarvitse juurikaan huolehtia, sillä tar osaa tehdä
sen vivulla z. Tavallisimpia tarin vipuja:
t - Näytä paketin sisältö
f - Käsitellään tiedostoa
x - Pura paketti
c - Luo paketti
z - Filtteröi gzipin läpi
Esimerkkejä:
tar tzf tiedostot.tar.gz
Näyttää paketin tiedostot.tar.gz sisältämät tiedostot.
tar xzf ssh-1.2.25.tar.gz
Purkaa paketin ssh-1.2.25.tar.gz tiedostot levylle.
tar czf tekstit.tar.gz *.txt
Pakkaa pakettiin tekstit.tar.gz kaikki txt-päätteiset tiedostot. Kokonaisia
hakemistopuun osia voidaan pakata samalla tavalla.
Ohjelmien kääntäminen
Ennemmin tai myöhemmin tulee vastaan tilanne, jossa ohelmasta on saatavissa
vain lähdekoodi. Näin on erityisesti monien ilmaisohjelmien kohdalla.
Tällaisessa tapauksessa ohjelma on käännettävä manuaalisesti C- (tai C++)
kääntäjällä. Helpoimmillaan tämä tekniseltä vaikuttava vaihe tarkoittaa
käskyn make ja mahdollisesti make install antamista. Jos ohjelman hakemistossa
on komentojono configure, ajetaan se ensin. Configure nuuskii järjestelmän
asetuksia ja tekee niiden perusteella sopivan ns. Makefilen jonka jälkeen
jatketaan kuten edellä. Tiedostoissa README ja INSTALL on yleensä ohjeita
ohjelman asennukseen, mikäli asennuksessa on jotain poikkeuksellista. Suurin
ongelma ohjelmien käännössä on yleensä kirjastojen puuttuminen.
Esimerkki SSH-ohjelmiston käännöksen vaiheista koneella eno:
[root@eno stuff]# tar xzf ssh-1.2.25.tar.gz
[root@eno stuff]# cd ssh-1.2.25
[root@eno ssh-1.2.25]# ./configure
...
[root@eno ssh-1.2.25]# make
...
[root@eno ssh-1.2.25]# make install
Tämän jälkeen SSH-ohjelmisto on käännetty ja asennettu järjestelmään.
Tutkimalla tiedostoa Makefile voi tarkemmin selvittää, mitä käännöksen
aikana tapahtuu ja minne ohjelmat asentuvat, ellei sitä ole mukana tulevissa
tiedostoissa kerrottu.
23. Ympäristömuuttujat
Muissakin järjestelmissä käytössä olevat ympäristömuuttujat ovat yksi
tärkeä tapa ohjata järjestelmän ja ohjelmien toimintaa. Ympäristömuuttujien
nimet kirjoitetaan perinteisesti isoilla kirjaimilla. Ympäristömuuttujien
sisältämää arvoa voidaan käyttää komentorivillä lisäämällä muuttujan nimen
eteen dollarimerkki ($). Ympäristömuuttujien arvoja voi muutella komennolla
export, myöskin pelkkä yhtäsuuruusmerkki (=) toimii, mutta silloin muuttujan
arvo ei periydy istunnosta käynnistettäville shelleille. Suositeltavaa on
siis käyttää komentoa export. Muissa shelleissä kuin bash on oma tapansa
säätää ympäristömuuttujien arvoja, esim. komento setenv. Kaikki
asetetut ympäristömuuttujat arvoineen näkee komennolla set.
Esimerkkejä:
export TERM=vt100
Säätää ympäristömuuttujan TERM arvoksi vt100. TERM-ympäristömuuttuja ilmoittaa
käytettävän päätteenohjauskoodin.
echo $HOME
Näyttää ympäristömuuttujan HOME sisällön ts. kotihakemiston nimen.
set | more
Näyttää kaikkien ympäristömuuttujien arvot ja katkoo tulostuksen ruudun
mittaisiksi paloiksi.
Tavallisimmat ympäristömuuttujat
Useimmista ympäristömuuttujista ei tarvitse juurikaan kantaa huolta, mutta
muutamien avulla voidaan lukea hyödyllisiä tietoja ja asettaa järjestelmän
ominaisuuksia. Erityisesti komentojonoissa ympäristömuuttujista on suurta
hyötyä. Seuraavassa luettelossa on joitakin tärkeimpiä ympäristömuuttujia
käyttötarkoituksineen:
COLUMNS/LINES - Teksti-ikkunan koko
DISPLAY - X-ohjelmien käyttämä näyttö. Paikallisella koneella :0.0, etäkoneelta
ohjelmia ajettaessa laitetaan koneen nimi:0.
HOME - Tähän muuttujaan tallentuu käyttäjän kotihakemisto
HOSTNAME - Koneen nimi
MAIL/MAILCHECK - Postihakemisto ja uuden postin saapumisen tarkkailuväli
OSTYPE - Käyttöjärjestelmän tyyppi (komento uname -a kertoo tarkemmin)
PATH - Polku. Hakemistot, joista oletuksena etsitään komentoja, kaksoispisteellä
erotettuina.
PS1 - Kehote
PWD/OLDPWD - Oletushakemisto ja edellinen oletushakemisto
SHELL - Käytettävä shell
TERM - Päätteen tyyppi. Tekstikonsolissa linux, X:ssä xterm. Etäkäytössä
voi olla tarpeen säätää arvoksi vt100, sillä kaikki ohjelmat eivät tunnista
kahta ensimmäistä tyyppiä.
UID/USER - Käyttäjän numero ja nimi
Kehotetta muokattaessa voidaan käyttää mm. seuraavia optioita:
\u - Käyttäjän nimi
\h - Koneen nimi
\w - Oletushakemisto
\W - Oletushakemiston viimeinen hakemisto
\t - Kellonaika
\d - Päivä
\$ - Tavallisille käyttäjille tulostuu $, ylikäyttäjälle #
Red Hatin oletusasetus on PS1=[\u@\h \W]\$ . Esimerkki hieman toisenlaisen
kehotteen asettamisesta (huomaa hipsut):
export PS1='\h:\w\$ '
24. Laitteiden asennus
Linuxissa on kaksi tapaa, jolla laiteajuri saadaan käyttöön: suoraan kerneliin
(ytimeen) käännettynä tai moduulina. Kerneliin on yleensä käännetty tuki
vain koneen peruskomponenteille ja tuki lisälaitteille ladataan moduuleina.
Moduuleja voidaan käynnistää ja poistaa ajon aikana ilman koneen
uudelleenkäynnistystä. Pelottavalta kuullostavaan kernelin kääntöön ei nykyään
ole suurtakaan tarvetta, sillä useimmille laitteille löytyy tuki valmiina
moduulina. Moduulit sijaitsevat hakemistossa /lib/modules/preferred, joka
on itse asiassa symbolinen linkki kernelin versiota vastaavaan hakemistoon
kuten 2.0.36.
Moduulit säästävät myös muistia, sillä järjestelmä voi siirtää käyttämättömät
moduulit näennäismuistiin levylle odottamaan. Jos laitetuki olisi kernelissä,
tämä ei olisi mahdollista. Aivan kaikkia laitteita ei tueta kernelissä tai
moduulina, esim. tuki näyttökorteille on sisäänrakennettuna X:ssä.
modprobe, insmod, lsmod ja rmmod
Red Hatin graafisella asetustyökalulla voi muokata moduuleja, tätä varten
on Control-panelissa kohta 'Kernel Daemon Configuration'. Monesti on kuitenkin
tehokkaampaa käsitellä moduuleja suoraan komentoriviltä. Komennoilla modprobe
ja insmod voidaan ladata moduuli ja antaa sille parametrit. Kumpi tahansa
komento käy, joskin modprobe on suositeltavampi, sillä se ottaa huomioon
tiedoston /etc/conf.modules, jossa on moduulien asetuksia. Moduulikohtaiset
parametrit annetaan moduulin nimen jälkeen. Komento lsmod näyttää ladatut
moduulit ja rmmod poistaa moduulin muistista.
Esimerkkejä:
modprobe BusLogic
Lataa moduulin BusLogic eli tuen Bus Logicin SCSI-ohjaimille. Moduuli
sijaitsee hakemistossa /lib/modules/preferred/scsi, mutta polkua ei tarvitse
antaa, sillä järjestelmä osaa hakea moduulit automaattisesti oikeasta
paikasta.
modprobe 3c509 irq=11 xcvr=0
Lataa moduulin 3c509 eli tuen 3Comin Etherlink III-korteille. Moduulille
annetaan parametrina keskeytyksen numero ja käytettävän verkkoliittimen
tyyppi (BNC). Parametrit ovat moduulikohtaisia, eivätkä välttämättä samanlaisia
kuin esimerkissä. Verkkokortin moduuli ladataan automaattisesti, jos sellainen
on asennuksen yhteydessä valittu.
lsmod
Näyttää tiedot kaikista ladatuista moduuleista. Nimen lisäksi näytetään
tiedot moduulin koosta ja sitä käyttävistä järjestelmän osista.
rmmod BusLogic
Poistaa edellä ladatun moduulin BusLogic järjestelmästä ja vapauttaa sen
käyttämät resurssit.
Tiedostossa /etc/conf.modules voidaan antaa valmiita parametreja
ladattaville moduuleille ja tehdä niille aliaksia. Mikäli automaattisesti
käynnistyviä moduuleita ei haluta säätää graafisella asetustyökalulla,
voidaan niiden modprobe-komennot laittaa tiedostoon /etc/rc.d/rc.modules.
Oletuksena tiedostoa rc.modules ei ole, mutta kun sen luo ja antaa siihen
ajo-oikeuden, niin käynnistyskomentojonot suorittavat sen. Seuraavassa
luettelossa esimerkinomaisesti joitakin moduuleja:
3c503 - 3Com Etherlink II -verkkokortti
3c509 - 3Com Etherlink III -verkkokortti
aha1542 - Adaptecin 1542 SCSI-ohjaimet
BusLogic - Bus Logicin SCSI-ohjaimet
gus - Gravis UltraSound -äänikortti
mcd - Vanhat Mitsumin CD-asemat
ne - NE 2000 -yhteensopivat verkkokortit
sb - Sound Blaster -äänikortit
Äänikorttien moduulit ladataan automaattisesti, jos äänikortti on valittu
sndconfig-ohjelmalla. Tiedosto /dev/sndstat sisältää tekstimuotoiset tiedot
äänituesta.