Linux-kurssi, osa 6
25. Enemmän irti komentorivistä
Tähän mennessä komentorivin käyttö on rajoittunut peruskomentoihin. Linux ja
bash tarjoavat kuitenkin paljon mahdollisuuksia käyttää komentoriviä
joustavammin. Esimerkiksi vanhojen komentojen selailu, tekstikonsolin vaihto,
tiedostonimien täydennys alun perusteella ja edellisten tekstien selailu
ovat mahdollisia näppäinkomennoilla. Osa toiminnoista on shellistä riippumattomia,
osa bashista riippuvaisia. Seuraavassa luettelossa on esitetty hyödyllisiä
näppäinkomentoja:
Shift-PgUp/PgDn - Edellisten tekstien selailu
Alt-F1..F6 - Tekstikonsolin vaihto. X:ssä Ctrl-Alt-F1..F6. X on konsolissa 7.
Alt-Vasen/Oikea - Tekstikonsolien selailu
Ylös/Alas - Komentohistorian selailu
Tab - Komennon tai tiedostonimen täydennys. Jos vaihtoehtoja on useita, piippaa
ja toisella painalluksella näyttää luettelon mahdollisista tiedostoista.
Ctrl-d - Istunnon sulkeminen
Ctrl-s - Tulostuksen pysäytys
Ctrl-q - Tulostuksen jatkaminen. Kannattaa painaa, jos konsoli yhtäkkiä
tuntuu jumittuvan.
Ctrl-c - Ohjelman keskeytys
Ctrl-z - Ohjelman pysäytys
Ctrl-l - Ruudun tyhjennys. Monissa ohjelmissa ruudun virkistys.
Ctrl-r - Komentohistoriasta etsintä. Enter suorittaa komennon, Esc ottaa
komennon komentoriville.
Ctrl-a - Rivin alkuun
Ctrl-e - Rivin loppuun
Ctrl-w - Poistaa sanan vasemmalta
Ctrl-k - Poistaa rivin lopun
Ctrl-d - Poistaa merkin. Delete toimii kuten askelpalautin.
Siirtymiseen ja tekstin leikkaamiseen käytettävät näppäimet toimivat monissa
muissakin ohjelmissa lähes samalla tavoin (esim. pico ja emacs).
bashin käynnistystiedostot
Sisäänkirjautumisen yhteydessä bash suorittaa järjestelmänlaajuisen
komentojonon /etc/profile. Seuraavaksi se etsii käyttäjän kotihakemistosta
tiedostoa .bash_profile tai .bash_login ja suorittaa sen. Myös X:n alta
käynnistettävät Xtermit toimivat näin. Jos jokin toiminto halutaan suorittaa
aina kun bash käynnistyy, esim. su-komennon jälkeen, se sijoitetaan
kotihakemiston tiedostoon .bashrc. Vastaava järjestelmänlaajuinen tiedosto
on /etc/bashrc.
26. Lisää komentoja
Komentoja Unixissa riittäisi käytännössä loputtomasti, mutta läheskään
kaikkia ei onneksi ole tarpeen opetella. Tässä luvussa esitellään joitakin
peruskomentoja, joihin ei ole aiemmin törmätty. Ensinnä tarkastellaan
komentoja, joilla voidaan etsiä tiedostoja nimen tai sisällön perusteella.
find
DOS-käyttäjille tutunnäköinen komento find etsii tiedostoja nimen tai
muun ominaisuuden, kuten omistajan, päiväyksen tai koon mukaan. Pelkkä
find ilman parametreja etsii oletushakemistosta ja sen alihakemistoista
kaikki tiedostot ja hakemistot. Jos komennolle annetaan parametriksi
hakemisto, find etsii kaikki hakemiston ja sen alihakemistojen tiedostot.
Hakua voidaan rajoittaa tiedostonimen perusteella parametreilla -name ja
-iname, joista jälkimmäinen käsittelee sekä isot että pienet kirjaimet.
Parametrilla -user voidaan etsiä tiedostoja omistajan perusteella ja
parametrilla -mtime viimeisen muutoshetken perusteella, missä seuraava
parametri on vuorokausien määrä. Parametrilla -size voidaan etsiä
tiedostoja niiden koon perusteella. Seuraavaksi parametriksi annetaan
koko ja b, jos koko on tavuina ja k, jos koko on kilotavuina.
Esimerkkejä:
find /usr/src -iname *.h
Etsii hakemistosta /usr/src ja sen alihakemistoista kaikki tiedostot,
joiden pääte on .H tai .h.
find /tmp -size 100k
Etsii hakemistosta /tmp ja sen alihakemistoista kaikki tiedostot, joiden
koko on vähintään 100 kilotavua.
find -mtime 1
Etsii oletushakemistosta ja sen alihakemistoista kaikki tiedostot, joita on
muokattu edellisen vuorokauden aikana.
locate ja updatedb
Komento find on monipuolinen tapa etsiä tiedostoja, mutta jos etsinnän kohteena
on koko hakemistopuu, tiedostojen etsiminen voi kestää todella kauan.
Komento locate auttaa tässä ongelmassa, sillä sen avulla voi nopeasti etsiä
tiedostoja niiden nimen tai nimen osan perusteella. Jotta locate toimisi,
täytyy ensin rakentaa tietokanta hakemistopuun tiedostoista. Tämä onnistuu
komennolla updatedb, jonka Red Hatin komentojono /etc/cron.daily ajaa
automaattisesti joka yö.
Esimerkki:
locate HOWTO
Etsii kaikki tiedostot ja alihakemistot, joiden nimessä esiintyy teksti HOWTO.
grep
Komento grep on tehokas tapa etsiä tiedostoja niiden sisällön perusteella.
Perusmuodossaan grepin ensimmäiseksi parametriksi annetaan etsittävä
merkkijono ja toiseksi parametriksi tiedostot, joihin haku kohdistetaan.
Jos tiedostosta löytyy haettava merkkijono, grep tulostaa tiedoston nimen
ja rivin, jolta merkkijono löytyi. Grepin lukuisista vivuista mainittakoon
-c, joka laskee osumien määrän tiedostoittain ja -v, joka suorittaa käänteisen
haun. Lisää parametreista grepin manuaalisivulla. Grep voi toimia myös
filtterinä, jolloin se etsii saamastaan syötteestä sopivia rivejä.
Esimerkkejä:
grep CD-ROM /usr/doc/HOWTO/*
Etsii hakemiston /usr/doc/HOWTO kaikista tiedostoista sanaa CD-ROM ja
tulostaa hakuehtoon sopivat rivit.
ls /usr/lib | grep vga
Ensinnä ottaa luettelon kaikista hakemiston /usr/lib tiedostoista ja
sitten putkittaa tulostuksen komennon grep läpi. Grep etsii saamastaan
syötteestä rivit, joilla esiintyy sana vga ja tulostaa ne.
grep -c bash /etc/passwd
Laskee tiedoston /etc/passwd niiden rivien määrän, joilla esiintyy sana
bash, ts. ilmoittaa, moniko käyttäjistä käyttää kyseistä shelliä.
wc
Helposti nimensä perusteella muistettava komento wc (word count) laskee
rivien, sanojen ja tavujen määrän. Sille voidaan antaa parametrina yksi
tai useampi tiedosto, joista arvot lasketaan. Komento voi toimia myös
filtterinä, jolloin se laskee arvot saamastaan syötteestä.
Esimerkki:
wc *.txt
Laskee kaikkien txt-päätteisten tiedostojen rivi-, sana- ja tavumäärät
ja lopuksi ilmoittaa ne vielä yhteiset määrät.
finger | wc
Tulostaa luettelon järjestelmään kirjautuneista käyttäjistä ja ohjaa
tulosteen wc:lle, joka laskee syötteestään rivit, sanat ja merkit.
Rivien määrästä nähdään, montako käyttäjien istuntoa on auki (+1).
mv
Komentoa mv (move) käytetään tiedostojen uudelleennimeämiseen. Saman
osion tai jaetun hakemiston kannalta tämä tarkoittaa Unix-filosofian
mukaisesti myös hakemiston tai tiedostojen siirtämistä. Ensimmäisenä
parametrina annetaan uudelleennimettävä hakemisto tai tiedosto(t) ja
toisena kohde.
Esimerkkejä:
mv kukka.txt ruusu.txt
Vaihtaa tiedoston kukka.txt nimeksi ruusu.txt.
mv /home/marq /tmp
Siirtää koko hakemiston /home/marq hakemistoon /tmp. Toiminto on erittäin
nopea, sillä se on Unix-filosofian mukaan vain uudelleennimeäminen.
Eri osioiden välillä mv toimii enemmänkin kuin cp ja antaa virheilmoituksia.
clear ja reset
Komento clear tyhjentää pääteikkunan. Komento reset palauttaa pääteikkunan
asetukset ennalleen, jos ruudunohjaus jostain syystä sekoaa.
mtools
Asentamalla distribuution mukana tulevan paketin mtools saa käyttöön
komennot, joilla on helppoa käsitellä DOS-levykkeitä ilman niiden liittämistä.
Komennot ovat vastaavanlaisia kuin DOSissa, niitä ovat mm. mdir, mdel ja
mcopy. Laitetiedostoon /dev/fd0 täytyy lisätä oikeuksia, mikäli halutaan
muidenkin kuin ylikäyttäjän pystyvän käyttämään komentoja.
27. SSH-ohjelmien käyttö
Jo monesti aiemminkin mainittu SSH-ohjelmisto parantaa huomattavasti
Unix-järjestelmien tietoturvaa ja on kaiken hyvän lisäksi ilmainen
Unixeissa. Windows-pääteohjelma on maksullinen, joskin ilmaisiakin versioita
on harrastajien toimesta tehty. SSH-ohjelmista käsitellään tästä kolmea
tärkeintä: ssh, sshd ja scp. Ohjelmat asentuvat oletuksena hakemiston
/usr/local alihakemistoihin sbin ja bin.
Ensimmäistä kertaa uudelle koneelle yhteyttä otettaessa SSH varmistaa,
halutaanko kone lisätä tunnettujen luetteloon. Yleensä vastataan yes.
Tunnetuille koneille yhteyttä otettaessa kyselyä ei tehdä. Jos tunnetun
koneen avain on muuttunut, SSH varoittaa, että kyseessä voi olla
murtautumisyritys (murtautujan kone yrittää esiintyä toisena koneena).
Avaimet tallentuvat kotihakemiston alihakemistoon .ssh tiedostoon known_hosts.
sshd
sshd-demoni toimii tausta-ajossa ja mahdollistaa suojattujen yhteyksien
ottamisen koneelle. Demoni käynnistyy yksinkertaisesti komennolla
/usr/local/sbin/sshd. Demonin käynnistävä komentorivi kannattaa lisätä
vaikkapa tiedostoon /etc/rc.d/rc.local, jotta se käynnistyy automaattisesti
kun kone käynnistetään.
ssh
Komento ssh (secure shell) tarjoaa mm. suojatut pääteyhteydet Unix-koneisiin,
yhteyden kompressoinnin lennossa ja porttien (mukaanlukien X:n portti)
uudelleenohjauksen. X:n uudelleenohjaus on oletuksena päällä, eli kun
toiselle koneelle on ssh-yhteys, voidaan X-ohjelmia ajaa suoraan ilman
perinteistä xhost/DISPLAY-asettelua. Vivulla -l voidaan valita, millä
käyttäjätunnuksella etäkoneelle kirjaudutaan ja vivulla -C asetetaan kompressointi
päälle. Kompressointi on hyödyllinen, jos kahden tehokkaan koneen välillä
on hidas yhteys. Vivulla -p voidaan valita, mihin etäkoneen porttiin otetaan
yhteys, jos portti ei ole oletusportti eli 22.
Esimerkkejä:
ssh mummo.ton.tut.fi
Kirjautuu etäkoneelle mummo.ton.tut.fi samalla käyttäjätunnuksella kuin
mikä paikallisella koneella on käytössä.
ssh -C -l miha server.vparty.fi
Kirjautuu etäkoneelle server.vparty.fi käyttäjätunnuksella miha ja käyttää
lennossa kompressointia.
scp
Komennolla scp voidaan kopioida tiedostoja etäkoneelta omalle koneelle ja
päinvastoin. Komento toimii muuten kuin yksinkertainen cp, mutta parametrina
voidaan kopioitavien tiedostojen lisäksi antaa koneiden nimet ja
käyttäjätunnukset näillä koneilla. Käyttäjätunnukset annetaan ennen koneen
nimeä at-merkillä (@) erotettuna. Vivulla -r saadaan scp toimimaan
rekursiivisesti, eli kopioimaan alihakemistotkin. Kompressointi vivulla
-C toimii myös scp:ssä. Portti voidaan valitaan vivulla -P, mikäli se ei
ole oletusporti. Huom! Jos etäkoneen tiedostoille halutaan käyttää
jokerimerkkejä, pitää parametri ympäröidä hipsuilla ('), muuten bash
luulee, että viitataan paikallisiin tiedostoihin.
Esimerkkejä:
scp teksti.doc salumae.utu.fi:/tmp
Kopioi tiedoston teksti.doc etäkoneen salumae.yok.utu.fi hakemistoon /tmp.
Kysyy ennen kopiointia salasanan etäkoneella.
scp -r '10.0.0.2:/home/yzi/*' .
Kopioi etäkoneen 10.0.0.2 hakemistosta /home/yzi kaikki tiedostot ja
alihakemistot rekursiivisesti paikallisen koneen oletushakemistoon. Huomaa
hipsut.
scp ana5.doc mauno@vaari.ton.tut.fi:/usr/demos
Kopioi tiedoston ana5.doc etäkoneen vaari.ton.tut.fi hakemistoon /usr/demos.
Etäkoneella käytetään käyttäjätunnusta mauno ja kun scp kysyy salasanaa,
annetaan käyttäjän mauno salasana etäkoneella.
28. Materiaalia verkossa
Tässä luvussa raapaistaan Linux-aiheisten internet-resurssien pintaa.
Luettelo ei pyri olemaan mitenkään kattava, mutta pyrkii antamaan edes
jonkinlaisen pohjan tiedonhaulle. Kurssin WWW-sivut ovat osoitteessa
http://www.iki.fi/marq/linuxkurssi/
sfnet.atk.linux
Uutisryhmästä sfnet.atk.linux saa tietoa uutuuksista ja Linux-maailman
tapahtumista sekä apua teknisiin ongelmiin. Harrastajat vastailevat kysymyksiin
monesti jopa saman päivän aikana. Liikaa ei kannata tunkea yhteen viestiin
eikä kysellä asioita, jotka olisi muuten helposti löydettävissä vaikkapa
hakukoneella tai ohjelmien omasta dokumentaatiosta. Usein kysyttyihin
kysymyksiin löytyy vastaukset ryhmän FAQ-tekstistä - kannattaa tutustua:
http://www.hut.fi/~kvalo/sal-faq/
Yleisiä Linux-lähteitä
http://www.linux.org/
Näiltä sivuilta löytyy linkkejä eri Linuxin osa-alueita käsitteleviin
paikkoihin sekä tietoja erilaisista kiinnostavista Linux-projekteista.
http://www.slashdot.org/
Slashdotia seuraamalla pysyy hyvin ajan hermolla.
http://www.happypenguin.org/
Linux-peleistä kiinnostuneelle sopiva paikka. Tiedot ja huhut uusimmista
ilmestyneistä peleistä löytyvät juuri täältä.
http://www.fsf.org/
GNU-projektin ja monen monituisen vapaan ohjelman koti. Useimmat Linuxin
komennoista (ja myös itse Linux) ovat Free Software Foundationin GNU-projektin
tuotosta tai sen GPL-lisenssin alaisia.
http://www.mpoli.fi/flug/tiedonetsinta.html
FLUGin (Finnish Linux User Group) tiedonetsintäsivu auttaa eteenpäin
Linux-aiheisen tiedon hankinnassa.
Linux-distribuutiot
http://www.redhat.com/
Red Hatin WWW-sivuilla on runsaasti dokumentteja Red Hat Linuxin asentamisesta
ja ongelmista sekä uutisia.
http://www.debian.org/
Debian Linux-distribuution kotisivu. Debian on lähtökohdiltaan hieman
erilainen kuin Red Hat ja soveltuu Red Hatia paremmin tekstipohjaisesti
ylläpidettäväksi. Debianin voi asentaa jopa koneeseen, jossa on 4MB
muistia.
http://www.suse.de/
Saksalainen SuSe on hieman vähemmän tunnettu distribuutio. SuSe on tehnyt
XFreehen tuen joillekin uusille näytönohjaimille.
http://www.bestlinux.net/
Suomen ohjelmistotyön julkaisema osittain suomennettu SOT-Linux perustuu
Red Hatiin.
Ohjelma-aiheisia sivuja
http://www.freshmeat.net/
Freshmeat on eräs parhaita paikkoja, joista etsiä Linux-uutuuksia.
http://linuxberg.eunet.fi/
Linuxbergissä on luetteloitu runsaasti Linux-ohjelmia kategorioittain.
Sivut ovat hyvin ajan tasalla. Suomessa Linuxbergiä sponsoroi EUnet.
http://www.nllgg.nl/linuxapps/linapps.html
Laaja, joskin hieman päivittämätön kokoelma linkkejä Linux-ohjelmiin.
http://sound.lovebead.com/
Suurin osa Linuxin ääniohjelmista löytyy täältä.
ftp://ftp.funet.fi/pub/Linux/
Funetin valtavissa tiedostoarkistoissa on tavallisimpien Linux-distribuutioiden
lisäksi paljon muita Unix- ja Linux-ohjelmia ja dokumentteja.
Ohjelmakohtaisia sivuja
http://www.apache.org/
Maailman suosituin WWW-palvelinohjelmisto.
http://www.xfree86.org/
Linuxin mukana tulevan XFree-serverin kotisivu. Täältä löytyvät tiedot
viimeisimmistä X:n päivityksistä ja tuetuista näyttökorteista.
http://www.netscape.com/
Netscapen sivut tuskin esittelyjä kaipaavat.
http://www.gimp.org/
GIMP-kuvankäsittelyohjelman kotisivu. Runsaasti GIMP-aiheisia linkkejä
ja tietoja GIMPin päivityksistä.
http://www.winehq.com/
Alati kehittyvän Windows-emulaattorin, Winen, kotisivu. Nykyisin jopa
muutamia DirectX-pelejä pystyy ajamaan Winen alta.
http://www.samba.org/
Samba mahdollistaa Linux-koneen toimimisen Windows-verkossa palvelimena tai
työasemana.
Tietoturva
http://www.datafellows.fi/
F-prot -virusohjelmastaan tutun Data fellowsin WWW-sivuilta löytyy jonkin
verran SSH-aiheista materiaalia, maksuton SSH Unix-järjestelmiin ja
kokeiluversio kaupallisesta Windows-pääteohjelmasta.
http://www.securityfocus.com/
Entinen BugTraq-postituslistan viestiarkisto, nykyään käsittelee tietoturvaa
laajemminkin. Keskustelua ja uutisia Unixin ja muidenkin järjestelmien
tietoturva-aukoista.
29. Lähteet
Muistinvirkistystä Unix-historiaa ja tiedostojen ominaisuuksia koskien
sain Hannu-Matti Järvisen kirjasta "Unix-ylläpitäjän opas"
2. Painos, Painoyhtymä Oy, Loviisa, 1990
Osa Red Hat 5.2:n asennusvaiheista selvisi Red Hatin WWW-sivuilta:
http://www.redhat.com/
WWW-palvelimien suhteellisia osuuksia kuvaava diagrammi on peräisin
Netcraftin tekemästä tutkimuksesta:
http://www.netcraft.com/survey/
Apachen asetuksiin löytyi tarkennuksia Apachen WWW-sivuilta:
http://www.apache.org/