Sisällys:Kotisivuilleni Perusteetetusivuhakemistot ulkoiset muistit käyttäjät käyttöoikeudet sisäänkirjautuminen ja lopetus käyttäjien lisääminen Linuxin peruskomennot syötön ja tulostuksen ohjaus putket säännölliset lausekkeet Red Carpet tiedostojen purku ja pakkaus prosessit johdatus komentoriviohjelmointiin sudo-ohjelma Asennus (9.0)johdantoasentaminen asennuksen jälkitoimet Linux ja Windows samaan koneeseen Pohdintaa osioinnista Päivittäminenpakettienhallinta yum:llaHaku RPM:stä up2date Virittelyäfontit kuntoonrullahiiri lisää levyä koneeseen Graafinen ympäristöX Window Systemikkunamanagerit ja työpöytäohjelmat Gnomen ja KDE:n käyttö OpenOfficeOpenOfficeasennus soikko VerkkoympäristöNFSNFS automount NFS versio 4 Firestarter-palomuuri isdn:llä nettiin Mitä uutta sivuilla? vanhentunutta materiaalia |
KomentoriviohjelmointiKomentotulkin muuttujat, muuttujien määrittäminen ja arvon vaihtaminen, Kolmenlaisia lainausmerkkejä, Komentotiedostot, Komentotulkin määrittäminen itse komentotiedostossa, Komentoriviargumentit, Laskutoimituksia expr-apuohjelman avulla, test-ohjelma, Kontrollirakenteet, Ehtolause, for-toistolause, while-toistolause, Tapausrakenne case, Lukeminen päätteeltä Tämän osan tarkoituksena on tutustuttaa Linuxin komentotulkkien komentokieleen. Esimerkkinä on käytetty Bourne-shell-komentotulkkia, koska tämä tulkki löytyy käytännössä jokaisesta Unix-järjestelmästä. Sen takia sillä tehdyt komentotiedostot toimivat varmuudella missä järjestelmässä tahansa. Lisäksi Linuxin oletuskomentotulkki BASH (Bourne Again SHell) on hyvin tämän kaltainen järjestelmä. Esimerkiksi komentotulkin muuttujat ovat hyvin samanlaiset. Komentotulkin muuttujatKomentotulkki käyttää useita muuttujia yksityiskohtien ohjaamiseen. Näiden arvot ovat yleensä käyttäjäkohtaisia ja sitä kautta ne mahdollistavat oman käyttäjäympäristön räätälöimisen omiin tarkoituksiin. Muuttujat saat näkyville komentotulkin sisäisellä
Mainittakoon muuttujista seuraavat:
Jos halutaan käyttää kenties tarkempaa ilmaisua kuin "komentotulkin muuttujat", voisi myös puhua "ympäristömuuttujista", vaikuttavathän nämä muuttujat käyttäjän komentotulkin ympäristöön. Muuttujien määrittäminen ja arvon vaihtaminenMuuttuja määritellään seuraavasti:
Esimerkiksi:
Näin olemme luoneet
Tulostaa koe-nimisen muuttujan sisällön. Samalla tavoin voi myös tulostaa komentotulkin ympäristömuuttujia:
Tulostaa ruudulle komentotulkkisi nimen. Huomattavaa on, etteivät Linuxin (Unixin) muuttujat ole
yleensä globaaleja. Näin ollen jos muuttuja on määritelty
jossakin komentotulkissa ja komentotiedostohan lähtökohtaisesti
käynnistää suoritustaan varten uuden komentotulkin, tällöin
ylemmällä tasolla määritelty muuttuja ei olekaan enää
olemassa tässä uudessa komentotulkissa. Poikkeuksena ovat ns.
ympäristömuuttujat, jotka voidaan Kolmenlaisia lainausmerkkejä...Linuxissa (kuten unixissa) on käytössä kolmenlaisia lainausmerkkejä:
Lainausmerkkejä käytettäessä merkkijonossa olevat muuttujat korvataan näiden sisällöllä:
Tulostaa jotain tällaista:
Heittomerkit taas aiheuttavat sen, että koko merkkijono tulkitaan "vain" merkkijonoksi, oli sisällä muuttujia tai ei:
Tulostuu näin:
Gravis ` taas aiheuttaa niiden sisällä olevan komennon suorittamisen ja komennon tuottaman tulosteen tulostamisen tähän ("tulosta tähän"):
Tulosta tällaista:
KomentotiedostotKun Linux-komentoja kootaan yhteen tiedostoon, tiedostoa kutsutaan komentotiedostoksi (komentojonoksi). Tällainen tiedosto on tekstitiedosto ja se voi sisältää myös komentotulkin ohjausrakenteita. Linuxissa (Unixissa) komentotulkkien komentokieli on yleensä hyvin laaja ja sen avulla voi tehdä usein hyvinkin monimutkaisia operaatioita. Useimmiten pienten operaatioiden tekoon käyttäjä ei oikeastaan tarvitse mitään erillistä ohjelmointikieltä, vaan homman voi hoitaa tyylikkäästi aivan komentotulkin ohjelmointikielellä. Näitä tällaisia kieliä kutsutaan usein yhteisnimityksellä "pienet ohjelmointikielet". Koska komentotiedosto on tekstitiedosto, niitä voi tehdä millä tahansa editorilla. Komentotiedostot kannattaa sijoittaa kotihakemistossa olevaan bin-hakemistoon, koska tämä hakemisto on usein jo oletuksena hakupolussa. Näin ollen tänne sijoitettuna suorituskelpoiset ohjelmat käynnistyvät pelkästään kirjoittamalla komentoriville tämän ohjelman nimen. Tekstitiedostona komentotiedosto ei saa automaattisesti suoritusoikeuksia, vaan ne pitää sille erikseen antaa:
joka antaa suoritusoikeuden vain omistajalle. Ensimmäinen antaa sen kaikille. Komentotulkin määrittäminen itse komentotiedostossaKoska komentotulkkien komentokieli poikkeaa toisistaan eikä voida olla varmoja, mikä komentotulkki komentotiedoston käyttäjällä on käytössä, on siis jollain muulla tavalla varmistuttava siitä, että komentotulkki on oikea. Tämä onnistuu liittämällä komentotiedoston alkuun rivi, joka kertoo, missä komentotulkissa nämä käskyt suoritetaan:
kertoo, että komennot suoritetaan sh-komentotulkissa (Bourne). Yleisesti ottaen rivi alkaa merkeillä # ja !, jonka jälkeen
kerrotaan käytettävä komentotulkki. Ne sijaitsevat yleensä Samalla tekniikalla voit myös käyttää muita tulkkeja, esim. Perl-tulkin. KomentoriviargumentitKun komentotiedosto käynnistetään, sille välitetään argumentteina koko komentorivi sanoiksi jaettuna. Nämä argumentit (parametrit) on talletettu muuttujiin $0, $1, ... $9. $0 on ohjelman nimi. Kaikki argumentit on välilyönnillä erotettuna muuttujassa $*. Argumenttien lukumäärä taas on löytyy muuttujasta $#. Jottei tuosta jäisi kuvaa, että argumentteja voi olla vain
9, mainittakoon, että jos niitä on yli 9:n, loput saadaan Esimerkki: (olkoon ohjelman nimi vaikkapa nayta)
Anna tiedostolle suoritusoikeudet ja kirjoita komentoriville:
Mitä havaitsit? Laskutoimituksia expr-apuohjelman avulla
tulostaa yhteenlaskun 1 + 2 tuloksen, eli 3.
Huomaa, ettei koska * on linuxissa erikoismerkki ja sen erikoismerkitys pitää tuossa kohdin peittää. Huomaa lisäksi, että jokaisen parametrin väliin tulee laittaa välilyönti. Parametreinä ajatelleen Esimerkki: Lasketaan kahden komentoriviparametrin summa ja sijoitetaan se summa- nimiseen muuttujaan:
Koodissa on huomattava, että nyt tarvitaan gravis-heittomerkkiä. Operaatio toimii siis seuraavasti:
kertoo lisää, mihin test-ohjelma
Esimerkissä testattiin kahden komentoriviparametrina annetun luvun yhtäsuuruutta. Jos annoit komentoriviparametrinä kaksi samaa lukua, ohjelma kertoo sen. Huomaa, ettei =-merkki käy tässä tapauksessa: sitä käytetään merkkijonojen aakkosjärjestystä tarkasteltaessa. Lukujen tarkasteluun on käytettävissä seuraavat operaattorit:
Kuten mainittu,
antaa (jälleen kerran) täydellisen tiedon siitä, mitä kaikkea
KontrollirakenteetUnix- ja linux-maailmassa komentotulkit hallitsevat tavanomaiset ohjelmointikielten
kontrollirakenteet, kuten ehtolauseen ja toistolauseen. Toistolauseista Bourne-komentotulkissa
on käytössä sekä EhtolauseEhtolause, kuten arvata saattaa, suorittaa lauseet vain silloin, kun annettu ehto on voimassa. Bournessa ehtolauseen muoto on seuraavanlainen: Anna tiedostolle suoritusoikeudet ja kirjoita komentoriville:
Ehtolauseessa voi olla myös else-haara:
Huomaa, että kirjoitustapa on tarkka: esimerkiksi
for-toistolause
Arvojoukon määrittäminen ei ole pakollista. Jos arvojoukkoa ei määritellä, otetaan
Jos otetaan arvojoukko pois, saadaan seuraavanlainen esimerkki:
Testaa itse, mitä koodinpätkä tekee. (Vihje: anna pari lukua komentoriviparametreiksi)
Mitä mahtaakaan yllä oleva koodi tehdä? while-toistolause
Esimerkki selventänee asiaa. Mitä seuraava ohjelma tekee?
Tapausrakenne caseEhtolauseella
Viimeinen vaihtoehto ( * ) on eräänlainen oletusarvo: jos mikään aikaisemmista ei pätenyt, suoritetaan tämän takana olevat lauseet. *-haara ei ole pakollinen. Huomaa tapaushaarojen päättyminen kahteen puolipisteeseen! Pieni esimerkki selventää asiaa. Kun kokeilet esimerkkiä, anna komentoriville erilainen määrä parametrejä:
Lukeminen päätteeltäJoskus tulee tilanteita, joissa pitäisi saada luku käyttäjältä. Tähän tarkoitukseen on Bournessa olemassa
|