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:

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/