GNU/Linux Aloittelijan Opas

1. Johdanto

Linux on Unix(tm):in kaltainen käyttöjärjestelmä, jossa molemmat nykyisin vallassa olevat Unix(tm) laajennukset SYSV ja BSD ovat mielenkiintoisesti sekoittuneet toisiinsa. Linux on vapaassa levityksessä, kuka tahansa voi Internetistä imuroida Linuxin kokonaisuudessaan lähdekoodien kera. Linuxia levitetään GPL-lisenssin alaisuudessa, mikä sallii mm. Linuxin muutetun version levittämisen eteenpäin.

Linux toimii normaalissa IBM PC yhteensopivassa tietokoneessa, eikä edes vaadi koneelta kovin ihmeellisiä tehoja. Jo pelkkä 386-prosessori ja neljä megatavua muistia riittää mainiosti itse Linuxille, sovellusohjelmat tietysti voivat vaatia paljonkin enemmän. Nykyään Linuxista löytyy myös erikoisversioita muille koneille, mukaanlukien PowerMac, Alpha , Acorn, MIPS .

Linuxin tekemisen aloitti alunperin suomenruotsalainen Helsingin Yliopiston opiskelija Linus Torvalds, joka vieläkin on aktiivisesti mukana kernelin eli käyttöjärjestelmän ytimen kehittämisessä. Varsinainen Linux koostuu kuitenkin isosta kokoelmasta erilaisia pieniä ohjelmia ja ajureita, joiden tekijät löytyvät eri puolelta Internettiä. Suuri osa Linuxin kehitystyöstä on tapahtunut niin että joku tietokonenörtti suuttuu kun hänen koneessaan olevalle oheislaitteelle ei ole ajuria, hän kirjoittaa itse laiteajurin muiden Linux-nörttien avustuksella ja seuraavassa Linux-versiossa se ajuri onkin jo sitten mukana kaikkien käytössä. Kun lähdekoodi on koko ajan saatavilla, muut voivat parannella kyseistä ajuria ja käyttää sitä apuna muiden samankaltaisten asioiden kehittämiseen.

Linuxin voi asentaa keräilemällä Internetistä itse haluamansa osat tai ottaa valmiin kokonaisuuden jota kutsutaan distribuutioksi. Valmis distribuutio on kokonaisuus, missä on Linuxin lisäksi iso kasa ohjelmia ja lopputuloksena on kokonainen käyttöjärjestelmä tarpeellisten apuohjelmien kanssa sekä distribuution tekijän erilaiset apuohjelmat järjestelmän asennukseen ja ylläpitoon.

Suosituimpia distibuutioita ovat tällä hetkellä Slackware , Red Hat ja Debian . Näitä kaikkia saa lähimmästä hyvinvarustetusta kirjakaupasta CD-ROM levyillä. Mikäli omistat nopeat Internet-yhteydet, ftp.funet.fi/pub/Linux alihakemistoista löydät kaikki kolme distribuutiota kokonaisuudessaan. Tiedostoja on paljon ja ovat suuria, joten modeemeja käyttävien ihmisten tuskin kannattaa niitä sieltä hakea.

Jos välttämättä haluat kuitenkin kokeilla Linuxia ennen sen ostamista rompulla, Slackwaren A-sarjan levykkeet, boottilevyke ja roottilevyke riittävät siihen eivätkä ne vie kuin n. 16 megatavua tilaa. Lue Slackwaren hakemistossa olevat dokumentit lisätietojen saamiseksi.

Linux on käyttöjärjestelmä siinä missä muutkin käyttöjärjestelmät ja oikein käytettynä pystyy siihen mihin muutkin. Suurin ero muihin käyttöjärjestelmiin on Linuxin Unixin kaltaisuus . Eli Linux vaatii käyttäjältään ammattitaitoa ja tietoa hiukan enemmän kuin Microsoft Windows , eikä varmastikaan ole yhtä käyttäjäystävällinen kuin Apple MacIntosh. Mutta oikein käytettynä Linux varmasti pesee monessa asiassa joustavuudellaan muut käyttöjärjestelmät, voithan vaikka muuttaa käyttöjärjestelmää lähdekoodista käsin tasan tarkkaan sellaiseksi kuin haluat.

Linux ei ole pelkästään moniajava käyttöjärjestelmä, se on monen käyttäjän käyttöjärjestelmä. Samaa tietokonetta voi käyttää useat ihmiset lähiverkon tai Internetin välityksellä, aivan kuin he olisivat itse koneen äärellä paikalla. Linux itsessään on tekstipohjainen ja varustettu samantyylisellä komentorivikehoitteella kuin MS-DOS, mutta Linuxiin on saatavissa graafisia käyttöliittymiä kuten X Window System joka on "Unix-koneiden Microsoft Windows" . X Window System:ille löytyy paljon ilmaisia graafisia ohjelmia Internetistä sekä lähimmästä hyvinvarustetusta tietokonekaupasta myös kaupallisia ohjelmia. Kaupallisten ohjelmien tarjonta Linuxille on vielä heikkoa, mutta X Window System sovellusohjelmat jotka ovat alunperin muille koneille suunniteltuja toimivat myös hyvin usein Linuxissa. Linuxille löytyy ilmainen X Window System sekä siihen paljon ilmaisia erilaisia käyttöliittymiä .

Linuxin tuki erilaiselle laitteistolle alkaa nykyään olla jo melko kattavalla tasolla, kiitos tietokonenörttien eri puolilla Internettiä. Erilaisten oheislaitteiden mukana ei paljoa Linux-ajureita näe, mutta Linuxiin ne on kuitenkin saatu itse tekemällä ilman laitteistonvalmistajien apua. Kaikkia laitteita ei kuitenkaan ole vielä tuettuna ja joidenkin kanssa suorituskyky kärsii pahasti. Linux osaa myös paljon asioita muiden käyttöjärjestelmien suhteen, esimerkiksi lähiverkossa Windows NT:n kanssa toimiminen tai VFAT/FAT32/HPFS/NTFS kovalevyjen lukeminen ei ole mikään ongelma.

Parhaimmillaan Linux on Internetissä palvelimena, kehitettiinhän koko Internet alunperin Unix-koneiden ehdoilla. Suomessakin Linuxia näkee paljon pienien Internet-palveluntarjoajien ja pk-yritysten servereinä, lähinnä edullisen hintansa (0 euroa) ansiosta. Myös koulut, kunnat ja oppilaitokset ovat ottaneet Linuxin ilolla vastaan, akateeminen maailma Suomessa tuntuu olevan kietoutunut Linuxin pikkusormen ympärille.

Ideaalinen käyttöjärjestelmä Linux on kuitenkin satunnaiselle tietokonenörtille, joka viettää 20 tuntia päivästään tietokoneiden äärellä. Linux ei maksa mitään, lähdekoodi on mukana ja sille saa tyypillisen tietokonenörtin kaiken tarvitseman softan ilmaiseksi. Nörtti voi käyttää onnellisesti 72 tuntia putkeen käyttöjärjestelmän muuttamiseen haluamakseen, mikäli joku siinä häntä alkoi ärsyttämään. Lisäksi Linux tekee tasan tarkkaan sen mitä nörtti haluaa ja tarjoaa mahdollisuudet tehdä asiat juuri niillä tavoin kuin hän sen haluaa tehdä, tämä saa nörtin onnelliseksi.

Huonoiten Linux sopii ihmiselle joka "vihaa tietokoneita", mutta on pakotettu Microsoft Word:illa kirjoittamaan kirjeitä. Linux vaatii kuitenkin suhteellisen paljon innostusta tietokoneisiin ennenkuin Linux alkaa tuntua hyvältä käyttöjärjestelmältä, lisäksi Linux/Unix sovellusohjelmat useimmiten painostavat tehokkuuteen eikä käyttäjäystävällisyyteen. Suomenkielisten ohjelmistoversioiden etsiminen on myös melko tuhoontuomittu yritys. Viime aikoina jotain on alkanut tulla.

Tämä oli vain pieni kirjoittamani esittely siitä mikä Linux on, lisäksi tässä on jonkun verran henkilökohtaisia mielipiteitäni Linuxista löhes kymmenen vuoden naputtelun perusteella mukana vääristämässä maailmankuvaasi. :-) http://www.linux.org osoittesta löytyy Linuxin kotisivut ja sitä kautta lisätietoja löytyy niin paljon kuin vain jaksat lukea. Linkkilistastani löytyy myös paljon Linux-aiheisia linkkejä.

2. Ohjetiedostot

Hakemistossa /usr/doc ja sen alihakemistoissa on paljon teksti- tiedostoja mitkä sisältävät hyödyllistä luettavaa. Sieltä löydät myös ns. HOWTO dokumentit jotka kertovat miten eri asioita tehdään Linuxilla. Slackware-jakelupaketissa nämä tekstitiedostot ovat F-levykesarjalla , joten muista asentaa myös se.

Nuo /usr/doc hakemistossa olevat tiedostot ovat usein pakattuja GZip nimisellä ohjelmalla, joten ne pitää ensin purkaa. Purkaminen tapahtuu gzip -d tiedostonnimi -komennolla. Voit myös käyttää komentoa gzip -d * joka purkaa kaikki hakemiston tiedostot. Pakkaaminen tapahtuu samalla komennolla, mutta ilman -d parametria.

Kätevin tapa lukea teksti-tiedostoja Linux-järjestelmässä on less -komento. Eli kirjoita less tiedostonimi ja sitten voit nuolinäppäimillä liikkuen lukea tekstitiedostoa ja painamalla Q-kirjainta lopettaa lukemisen. Ohjeita Less-ohjelman käytöstä saat koska tahansa ohjelmassa ollessasi painamalla "H".

Joissakin uudemmissa järjestelmissä on zless -komento, jolla voit lukea suoraan GZip-pakattuja tekstitiedostoja ilman niiden purkamista. Uusimmat less komennon versiot osaavat suoraan lukea GZip-pakattuja tiedostoja.

Hakemistossa /usr/man ja sen alihakemistoissa on ns. MAN-sivut eli manuaalisivut . Siellä on Linuxin kaikkien komentojen ohjeet, sekä myös eri sovellusohjelmat lisäävät tuonne omat ohjesivunsa. Manuaalisivut ovat omassa formaatissaan, niiden lukeminen tapahtuu man -komennolla. Kokeile ensin komentoa man man joka näyttää man-ohjelman ohjesivun, eli miten manuaalisivuja voi eri tavoin lukea. Komento on muodossa man komennonnimi tai sitten man /usr/man/man1/ohjetiedoston.nimi . Vaihtoehtoisesti voit käyttää komentoa man ./tiedosto jos haluamasi ohjetiedosto on kyseisessä hakemistossa (pelkkä "man tiedosto" ei riitä!).

Linux ohjelmat näyttävät yleensä pienet lyhyet ohjeet komennolla ohjelmannimi --help, mutta nuo ovat yleensä erittäin lyhyet ohjeet ja manuaalisivuilta löytyy paremmat ohjeet.

Komennolla apropos hakusana voit etsiä oikeaa komentoa jonkun asian tekemiseen, kokeile esimerkiksi apropos password niin saat listan kaikista salasanaan liittyvistä komennoista. Samalla tavalla voit käyttää komentoa whatis kysyäksesi mitä joku komento tekee, esimerkiksi whatis ls.

Nuo ohjetiedostot hakemistossa /usr/doc ja manuaalisivut eivät ole siellä turhaan, opettele käyttämään niitä! Esimerkiksi tässä dokumentissa kun selitetään eri komentoja ja niiden toimivuutta, kaikkia kyseisen komennon ominaisuuksia ei ole selitetty. Ole hyvä tutki asiaan liittyvä manuaalisivu lisätietojen hankkimiseksi. Muista myös katsoa manuaalisivun loppuosa, jossa kerrotaan että mitkä muut tiedostot ja komennot liittyvät kyseessä olevaan komentoon, etsi myös niiden tiedot man-komennolla.

3. Sisäänkirjoittautuminen

Järjestelmään kirjoittaudutaan sisään kirjoittamalla käyttäjätunnus ja salasana. Käyttämällä ALT+F1, ALT+F2, ALT+F3 jne . näppäimiä voit vaihdella eri konsoleiden välillä ja olla samallakin tunnuksella useampaan kertaan järjestelmässä sisällä. Suosittelen, että aloittelijana käytät kahta konsolia joista toisella luet manuaalisivuja ja toisella kokeilet eri komentoja.

Komennolla exit voit poistua käyttäjänä järjestelmästä, jos haluat sammuttaa koneen niin muista aina ensin sulkea Linux komennolla shutdown ja odottaa kunnes saat luvan sammutaa koneen! Linux käyttää kehittynyttä "kovalevyn välimuistia ja ajastettua kirjoitusta", joten äkillinen virran katkaisu saa todella pahaa jälkeä aikaan. Jos haluat käynnistää koneen uudelleen, esimerkiksi Windows käyttöjärjestelmään, kirjoita reboot tai paina CTRL+ALT+DELETE joka tekee saman asian. Nämä ovat useimpien distribuutioiden oletusasetuksia, luonnollisesti ne voi asettaa myös erilaisiksi.

Linuxin asennuksen jälkeen on vain root-käyttäjä olemassa ja sillekään ei aina ole edes salasanaa asetettuna. Kirjaudu sisään järjestelmään ja kirjoita passwd niin voit asettaa (tai vaihtaa) salasanan root-käyttäjälle. Se näyttää seuraavalta:

 linux:/# passwd

 Changing password for root

 Enter the new password (minimum of 5, maximum of 8 characters)

 Please use a combination of upper and lower case letters and numbers.

 New password:

 Re-enter new password:

 May 25 12:17:26 passwd[356]: password for `root' changed by root

 Password changed.

 linux:/#

Turvallisuussyistä ruudulla ei näy kirjoittamaasi salasanaa ja on järkevää valita salasana missä on sekä numeroita että kirjaimia sekaisin, että järjestelmään murtautuminen ei olisi kovin helppoa. Jos kirjoitat liian helposti arvattavan salasanan, ainakin uudemmat versiot Linuxista oletusasetuksilla varoittavat asiasta.

Root-käyttäjällä on oikeudet tuhota kaikki tiedostot kovalevyllä vain muutamalla näppäimenpainalluksella. Aloittelijalta se tapahtuu erittäin helposti vahingossa, Linux kun on Unix-tyylinen käyttöjärjestelmä joka olettaa että käyttäjä tietää mitä tekee. Esimerkiksi komento rm -rf / poistaa kaikki kovaleyvn tiedostot, kysymättä varoituksia ja lopulta kone kaatuaa...

Ei ole muutenkaan järkevää käyttää konetta jatkuvasti root- tunnuksella, vaikka osaisitkin kaikki temput. Root-tunnus on vain ylläpitotehtäviä ja uusien ohjelmien asentamista varten.

Lisää itsesi käyttäjäksi järstelmään omalla nimelläsi. Se tapahtuu komennolla adduser . Järjestelmä tarjoaa erilaisia oletusarvoja, ne ovat yleensä sopivat ja voit edeta enteriä painamalla, sinun tarvii vain "Login name" kohtaan kirjoittaa käyttäjän nimi sekä sitten lopussa antaa käyttäjälle salasana. Käyttäjän salasanan voi vaihtaa myös passwd komennolla.

Itseasiassa adduser on vain käyttöliittymä useradd komennolle, joten jos haluat perehtyä asiaan tarkemmin ja tehdä asian komentoriviltä, tutustu useradd -komentoon ja sen manuaalisivuun.

Kirjoita kehoitteessa exit ja kirjaudu järjestelmään sisään uudella käyttäjälläsi. Nyt et voi vahingossa tuhota kaikkia tiedostoja järjestelmässä, uudella käyttäjälläsi ei ole sellaisia oikeuksia.

Jokaisella Linux-käyttäjällä on oma kotihakemisto , johon käyttäjällä on kirjoitusoikeudet ja missä käyttäjä voi pitää omia tiedostojaan. Hakemisto on yleensä /home/käyttäjänimi , eli jos käyttäjänimesi on matti niin kotihakemistosi on silloin /home/matti . Suorita testit eri komennolla tuossa hakemistossa. Toinen vaihtoehto on /tmp hakemisto, joka on varattu väliaikaisia tiedostoja varten. Huomaa että järjestelmä automaattisesti siivoaa /tmp hakemistoa, sitä ei kannata säilyttää kuin väliaikaisiin tiedostoihin!

Kotihakemistosi on ~ merkillä korvattavissa komentorivillä, myös osa Linux/Unix-sovellusohjelmista osaa tukea ~ merkin viittausta kotihakemistoon. Eli jos sinun oma kotihakemistosi on /home/matti niin silloin tiedostonimi ~/teksti tarkoittaa tiedostoa /home/matti/teksti .

Root-käyttäjän kotihakemisto on poikkeuksellisesti /root , mutta root-tunnusta ei kannata käyttää muuhun kuin järjestelmän ylläpitoon ja esimerkiksi uusien ohjelmien asentamiseen. Erilaiset ohjelmien asennukset joskus (yleensä) vaativat että olet root-käyttäjä . Myöhemmin tässä oppaassa kerrotaan miten voit antaa normaalikäyttäjälle suurempia oikeuksia.

4. Hakemistot ja tiedostot

Komento ls näyttää hakemiston sisällön, mutta se on lyhyessä muodossa. Jos haluat nähdä pidemmän version hakemistolistauksesta, käytä komentoa ls -l . Jossain järjestelmissä on valmiina komento v tai vdir mikä näyttää hakemistolistauksen pidemmässä muodossa.

Komento ls ei näytä tiedostoja jotka alkavat pisteellä, ellet käytä parametria -a . Pisteellä alkavat tiedostot ovat Linuxissa erikoisia asetustiedostoja, joita löytyy paljon erityisesti käyttäjän kotihakemistosta missä erilaisten ohjelmien asetuksia pidetään käyttäjälle.

Voit myös antaa hakemistonimen tai tiedostonimen ls-komennolle, esimerkiksi ls -la /root joka näyttäisi siis pitkässä muodossa tiedostolistauksen hakemistosta /root ja sisältäisi mukaan myös pisteellä alkavat tiedostonimet. Mutta jos olet seurannut tämän oppaan ohjeita (suosittelen!) niin Linuxin suojaukset iskevät sormensa peliin ja näet ruudulla vain:

fw-gw:/$ ls -la /root

/bin/ls: /root/: Permission denied

fw-gw:/$

Eli sinulla ei ole oikeutta kyseisen hakemiston lukemiseen. Ennenkuin jatkat tämän oppaan lukemista, suosittelen että et käytä root-käyttäjää harjoittelussa - näin et voi vahingossa tuhota mitään tärkeitä tiedostoja.

Huomaa, miten voit yhdistää parametreja. Sinun ei tarvitse kirjoittaa ls -l -a vaan voit lyhentää sen muostoon ls -la. Tämä pätee yleensä kaikkiin Linux ohjelmiin. Muista myös, että niin tiedostonimissä kuin komentojen parametreissa, pienet ja isot kirjaimet tarkoittavat eri asioita!

Komento rm poistaa tiedoston, huomaa että oletuksena rm ei kysy mitään varoituksia ja poistaa vaikka kaikki kovalevyn tiedostot, jos niin sen käsket tehdä. Linuxissa ei tule mitään "Oletko varma?" kysymyksiä yleensäkään, Linux olettaa että tiedät mitä olet tekemässä. Onneksi, vain root käyttäjällä on yleensä kirjoitusoikeus kaikkiin tiedostoihin, normaali käyttäjä pääsee yleensä vain kotihakemistonsa tiedostoja poistamaan. Eli rm-komento toimii muodossa rm tiedostonimi, MS-DOS:ista tuttu "*" ja "?" sekä tuon laajempi versio (Regular Expression) on käytettävissä. Huomaa kuitenkin että "*.*" ei tarkoita kaikkia tiedostoja, tuohan ilmiselvästi tarkoittaa tiedostoja missä mitä tahansa tekstiä ja piste jossain välissä. Kaikkia tiedostoja tarkoittaa pelkkä "*".

Komento "mv" siirtää tiedoston tai hakemiston paikasta toiseen, toimien yksinkertaisella periaatteella "mv mistä mihin". Samalla komennolla siirtyy myös hakemistotkin.

Komento "cd" toimii myös samoin tavoin kun MS-DOS:ssa, vaihtaa toiseen hakemistoon. Esimerkiksi "cd /" siirtyy juurihakemistoon ja "cd .." siirtyy yhden hakemiston ylöspäin (esim. hakemistosta /home/matti hakemistoon /home). Muistathan myös että kaikki komennot ymmärtävät "~" merkin viittaavan kotihakemistoosi, eli komento "cd ~" siirtyisi kotihakemistoosi ja "cd ~/tekstit" siirtyisi kotihakemistosi alla olevaan hakemistoon tekstit, esim. /home/matti/tekstit.

Komento "cp" kopioi tiedostoja, periaatteella "cp mistä mihin".

Komento "df" näyttää vapaan tilan kovalevyillä.

Komento "rmdir hakemisto" poistaa hakemiston.

Komento "mkdir hakemisto" tekee hakemiston.

Putkitus toimii myös tutulla tavalla, ainakin osittain. Eli esimerkiksi ls >~/koe tekee tekstitiedoston "koe" sinun kotihakemistoosi jossa on hakemistolistaus. Voit myös käyttää komentoa tyyliin ls >>~/koe jolloin mahdollisesti olemassaolevaa tiedostoa "koe" ei tuhota vaan tiedostolistaus liitetään sen loppuun.

Komennolla "cat > filenimi" voit tehdä pieniä tekstitiedostoja, paina CTRL+D lopettaaksesi kirjoittamisen (CTRL+D vastaa MS-DOS:sta tuttua merkkiä CTRL+Z). Voit myös käyttää cat-komentoa tiedostojen katsomiseen, kirjoittamalla "cat filenimi". Jos tiedosto on pidempi kuin yhden ruudun verran, se vain vilahtaa nopeasti silmiesi ohi. Eli kannattaa käyttää MS-DOS:sta tuttua tekniikkaa, "cat filenimi | more" ja silloin ohjelma pysähtyy odottamaan näppäimenpainallusta jokaisen ruudun jälkeen.

Parempi on kuitenkin käyttää komentoa "cat filenimi | less", koska tuolla less:llä lukeminen on paljon mielekkäämpää. Voit selailla ylös ja alas nuolinäppäimillä vapaasti jne. Tarkista komennolla "man less" monipuolisen less-komennon käyttäminen! Itseasiassa, pelkkä "less filenimi" riittää, ei tarvitse käyttää tuota erillistä cat-komentoa.

Voit myös käyttää cat-komentoa tekstitiedostojen yhdistelyyn, komennolla "cat teksti1.txt teksti2.txt >testit.txt". Eli cat- komento huolii enemmän kuin yhden parametrin.

Komento "ln" tekee sellaista mikä ei MS-DOS:sta ole tuttua, sillä voit tehdä tiedostoista linkkejä. Et kopioi varsinaista tiedostoa tai kokonaista hakemistoa, ainoastaan teet linkin siihen. Esim:

 linux:/home/leikki# ln -s /root/koe /home/leikki/testi

 linux:/home/leikki# ls -l

 total 2

 lrwxrwxrwx  1 root   root  9 May 25 17:27 testi -> /root/koe

 linux:/home/leikki#

Tiedostoa "/home/leikki/testi" ei todellisuudessa ole olemassa, se on vain viittaus tiedostoon "/root/koe". Voit käyttää tiedostoa "/home/leikki/testi" normaaleilla komennoilla, mutta todellisuudessa järjestelmä lukee ja kirjoittaakin tiedostoon "/root/koe".

Tämän "ln" komennon järkevyys on levytilan käyttämisessä, symbolinen linkki ei vie tilaa levyltä kuin muutaman tavun vaikka kyseessä olisikin iso tiedosto tai hakemisto. Merkeistä "file -> toinenfile" huomaat "ls -l" komennolla symboliset linkit, noita on Linuxissakin asennuksen jälkeen paljon.

5. Tiedostojen oikeudet

Linuxissa kaikissa tiedostoilla ja hakemistoilla on käyttöoikeudet. Hakemistolistauksen pitkässä muodossa ("ls -l" tai "v") näet ne:

 linux:/testi# ls -l

 total 2

 -rwxr-xr-x  1 root   users      4 May 25 17:34 koeteksti*

 linux:/testi#

 --cut--

Eli tuossa näet oikeudet, "-rwxr-xr-x", missä:

r = lukuoikeudet tiedostoon (voi lukea tiedoston sisällön)
w = kirjoitusoikeudet tiedostoon (voi muuttaa tiedostoa)
x = ajo-oikeudet tiedostoon (voi käynnistää ohjelman)

Noita on kymmenen eri merkkiä peräkkäin. Ensimmäinen merkki tarkoittaa sitä onko kyseessä hakemisto (arvo 'd') vai normaali tiedosto (arvo '-'). Sen jälkeen ylläolevat kolme eri asetusta "rwx" ovat kolme kertaa eri käyttäjäryhmille, "-" tarkoittaa että kyseistä oikeutta ei ole. Eli:

 -rwxr-xr-x  1 root   users      4 May 25 17:34 koeteksti*

 0123456789   XXXX   YYYY

0 = Kyseessä on normaali tiedosto, ei hakemisto.
1 = "XXXX" ryhmällä on oikeus lukea tiedostoa
2 = "XXXX" ryhmällä on oikeus muuttaa tiedostoa
3 = "XXXX" ryhmällä on oikeus ajaa tiedosto
4 = "YYYY" ryhmällä on oikeus lukea tiedostoa
5 = "YYYY" ryhmällä ei ole oikeutta muuttaa tiedostoa
6 = "YYYY" ryhmällä on oikeus ajaa tiedosto
7 = Kenellä tahansa on oikeus lukea tiedosto
8 = Kenellä tahansa ei ole oikeus muuttaa tiedostoa
9 = Kenellä tahansa on oikeus ajaa tiedosto

Idea tässä on se, että järjestelmässä voidaan valita kenellä oikeus tehdä mitäkin. Joku voi vaan ajaa tiedostoja, toisilla on oikeus muuttaa niitä jne. Käyttäjä voi myös kuulua eri "XXXX" ja "YYYY" ryhmiin, root-tunnuksella voidaan käyttäjän tietoja muokata niin että hän kuuluu eri ryhmiin.

Oletuksena kaikki käyttäjät kuuluvat ryhmään "users" ja tiedostojen muokkausoikeus on vain ylläpidolla, eli "root" ryhmällä johon käyttäjä "root" kuuluu automaattisesti. Root-käyttäjällä on aina oikeus lukea ja muuttaa kaikkia tiedostoja sekä muuttaa tiedostojen oikeuksia.

Komennolla "chmod" voi muuttaa tiedoston oikeuksia. Tuossa komennossa eri käyttäjäryhmät ovat lyhennetty kirjaimilla "ugoa", jossa:

"u" eli user tarkoittaa käyttäjää itseään (1-3 esimerkissä)
"g" eli group tarkoittaa ryhmää (4-6 esimerkissä)
"o" eli others tarkoittaa muita käyttäjiä (7-9 esimerkissä)
"a" eli all tarkoittaa kaikkia (1-9 esimerkissä)

Eli esimerkissämme:

 -rwxr-xr-x  1 root   users      4 May 25 17:34 koeteksti*

 0123456789   XXXX   YYYY

Käyttäjäryhmään "u" kuuluu XXXX-kohdassa listattu ryhmä, "root".
Käyttäjäryhmään "g" kuuluu YYYY-kohdassa listattu ryhmä, "users".
Käyttäjäryhmään "o" kuuluu kaikki muut käyttäjät.
Käyttäjäryhmä "a" tarkoittaa _kaikkia_ edelläolevia.

Komennon muoto on "chmod ryhmä+oikeudet tiedostonnimi" tai "chmod ryhmä-oikeudet tiedostonnimi". Ryhmät ovat siis "ugoa" ja mahdolliset oikeudet "rwx". Komennossa "+" lisää oikeuksia ja "-" poistaa oikeuksia. Esimerkiksi:

 chmod a+rwx tiedosto   Lisää kaikille kaikki oikeudet

 chmod a-rwx tiedosto   Poistaa kaikilta kaikki oikeudet

 chmod u+r tiedosto    Lisää XXXX-käyttäjälle lukuoikeudet

 chmod g+x tiedosto    Lisää YYYY-käyttäjälle oikeudet ajaa ohjelmaa

Voit myös yhdistää parametreja pilkulla erotettuna, esim:

chmod a-rwx,u+rwx,g+rx tiedosto

Ensin poistaa kaikilta kaikki oikeudet tiedostoon (a-rwx), sitten antaa XXXX-käyttäjälle luku/kirjoitus/ajamisoikeudet (u+rwx), ja YYYY-käyttäjälle pelkät luku- ja ajamisoikeudet. Ryhmässä "o" ei annettu mitään, joten he eivät voi koskea tiedostoon ollenkaan.

Eri "XXXX" ja "YYYY" ryhmät löytyvät tiedostosta /etc/groups. Uuden ryhmän voit lisätä järjestelmään komennolla "groupadd ryhmännimi". Ryhmien poisto tapahtuu komennolla "groupdel ryhmänimi". Käyttäjän voi lisätä ryhmään komennolla "gpasswd -a käyttäjä ryhmänimi" ja poistaa ryhmästä komennolla "gpasswd -d käyttäjä ryhmänimi".

Itse tiedostojen ja hakemistojen YYYY ryhmä voi muokata komennolla "chgrp", esimerkiksi:

 linux:/testi# ls -l

 total 2

 -rwxr-xr-x  1 root   root      4 May 25 17:34 koeteksti*

 linux:/testi# chgrp users koeteksti

 linux:/testi# ls -l

 total 2

 -rwxr-xr-x  1 root   users      4 May 25 17:34 koeteksti*

 linux:/testi#

Ryhmää "XXXX" voi muokata komennolla "chown", esimerkiksi:

 linux:/testi# ls -l

 total 2

 -rwxr-xr-x  1 root   users      4 May 25 17:34 koeteksti*

 linux:/testi# chown adm koeteksti

 linux:/testi# ls -l

 total 2

 -rwxr-xr-x  1 adm   users      4 May 25 17:34 koeteksti*

 linux:/testi#

Samat oikeudet pätevät luonnollisesti myös hakemistoihin, jos hakemistoon ei ole oikeuksia niin esimerkiksi "ls" komennolla sen katsominen ei onnistu. Myös erilaisia laitteita hallitaan samanlaisilla oikeuksilla, esimerkiksi /dev/fd0 hakemisto kuvastaa A: levykeasemaa ja tuolle hakemistolle annetut oikeudet määräävät kuka voi käyttää levykeasemaa (suoraan hakemistoa /dev/fd0 ei voi käyttää järkevästi, mutta oikeudet näkyvät eri sovellusohjelmien kautta).

Tutki tarkkaan kaikkien yllä mainittujen komentojen manuaalisivut! Siellä on paljon asiaa selitetty tarkemmin sekä annettu ohjeita miten käytännössä voi asian toteuttaa järkevästi jne.

6. Perusasioita käytöstä

Linuxin käyttäminen lopetetaan painamalla "CTRL+ALT+DELETE" joka ajaa tarpeelliset toimenpiteet ja lopuksi kertoo että järjestelmän voi sulkea. Komentoriviltä sama asia toimii "reboot" komennolla. Myös komentojen "halt" ja "shutdown" merkistystä kannattaa tutkia manuaalisivuilta käsin.

Voit olla samanaikaisesti useana eri tai samana käyttäjänä sisällä järjestelmässä. Painamalla ALT+F1, ALT+F2 jne. voit vaihtaa eri konsoleja. Komennolla "exit" voit lopettaa yhden konsolin käytön ja kirjautua sisään toisena käyttänä.

Komennolla "su käyttäjänimi" voit kirjautua toisena käyttäjänä sisään, ilman että lopetat edellisen käyttäjän. Oletuksena pelkkä komento "su" siirtyy root-käyttäjäksi ellet anna sille jotain muuta käyttäjänimeä. Takaisin edelliseen käyttäjään ennen "su"- komentoa voit palata komennolla "exit". Komennolla "whoami" voit aina tarkastaa että millä nimellä olet järjestelmässä sisällä. Sinun tarvitsee tietää kyseisen käyttäjän salasana käyttäessäsi "su"-komentoa. Komennolla "who" voit tarkastaa ketä järjestelmässä on eri konsoleilla kirjautuneena. Konsoli "tty1" on se minkä näet ALT+F1 näppäimellä, konsoli "tty2" näkyy ALT+F2 näppäimellä jne.

Linuxissa on sisäänrakennettu moniajo. Käynnissä olevat ohjelmat näet komennolla "ps" (tarkista komennon manuaalisivu, eri parametreilla saat eri tietoja näkyviin):

 linux:/# ps

  PID TTY STAT TIME COMMAND

   58 0401 SW  0:02 (bash)

   59 0402 S  0:04 -bash

   60 0403 S  0:10 -bash

   61 0404 SW  0:00 (agetty)

   71 0401 S  7:45 emacs /root/www/linux.html

  192 0403 R  0:00 ps

 linux:/#

Tärkeä tieto tuossa on "PID" numero, se on kyseisen ohjelman numero. Ohjelman voit lopettaa kirjoittamalla "kill pid-numero" komennolla, käyttämällä "kill -9 pid-numero" komentoa kill-komento toimii tehokkaammin. Joskus kun ohjelmat sekoavat tai jäävät jumiin, tämä voi osoittautua tarpeelliseksi. Huomaa, että oletuksena "ps" komento näyttää lyhyen listan. Esimerkiksi komento "ps -lx" näyttää paljon pidemmän ja informatiivisemman listan, jossa näkyy mm. järjestelmän osia mitkä eivät normaalilla "ps" komennolla näy.

Ohjelman voi ajaa taustalla kirjoittamalla komentorivillä sen perään "&" merkin. Esimerkiksi komento "ls -R / >~/koe &" tekee kotihakemistoosi tiedoston "koe" jossa on lista kovalevyn kaikista tiedostoista. Ruudulla näet vain:

 linux:/# ls -R / >/~koe &

 [1] 194

 linux:/#

Tuossa näkyvä numero 194 on kyseisen ohjelman pid-numero. Voit jatkaa työskentelyä kehoitteessa normaalisti kun listaa tehdään taustalla. Lopulta kun ohjelma on suoritettu, ruudulle tulee sinulle tieto siitä:

 linux:/#

 [1]+ Done          /bin/ls $LS_OPTIONS -R / >/~koe

 linux:/#

Joidenkin (lähes kaikkien) ohjelmien ajon voit keskeyttää painamalla CTRL+Z näppäimiä. Silloin ruudulle tulee tieto:

 [1]+ Stopped         /bin/ls $LS_OPTIONS

 linux:/#

Kirjoittamalla "fg" pääset jatkamaan ohjelman käyttöä. Kuten ylläolevasta tekstistä näkyy, ohjelma ei pyöri automaattisesti taustalla CTRL+Z näppäimillä sen pysäyttämisen jälkeen, komento jolla saat keskeytetyn ohjelman jatkamaan ajoa taustalla on "bg".

Tuossa yllä näet [1] -merkin komennon edessä. Se tarkoittaa sitä että kyseessä on taustalla ajettava ohjelma numero 1. Jos sinulla on useampia ohjelmia, voit käyttää "jobs" komentoa listataksesi erilaiset taustalla käynnissä olevat ohjelmat ja "fg %1" komento palaa taustalla olevaan ohjelmaan numero 1. Voit myös antaa fg-komennolle ohjelman nimen, esimerkiksi:

linux:/# jobs

[1]- Stopped         man sex

[2]+ Stopped         emacs /root/www/linux.html

linux:/# fg %emacs

Eli komennolla "fg %emacs" pystyt palaamaan ohjelmaan Emacs. Voit myös lyhentää ohjelman nimeä, esimerkiksi "fg %e" olisi riittänyt tuossa tapauksessa. Jos lyhennyksesi sopii enemmän kuin yhteen ohjelmaan, BASH kertoo sinulle siitä virheilmoituksella.

Moniajoa harrastettaessa joskus voi ongelmaksi kehittyä se että taustalla ajettavat ohjelmat yrittävät kirjoittaa näytölle. Tähän voi apuna käyttää tulosteiden ohjaamista käyttöjärjestelmän mustaan aukkoon, laitteeseen nimeltä "/dev/null". Tämä tarkoittaa samaa kuin MS-DOS käyttöjärjestelmässä "dir >nul", eli mitään ei näy näytöllä. Eli käytännössä vaikkapa näin:

"komento >/dev/null 2>~/virheet.txt &"

Tuossa esimerkissa ">/dev/null" pitää huolen siitä että mitään tulosteita ei näytölle tule. Jälkimmäinen osa "2>" on erikseen, se tarkoittaa virheilmoituksia. Tarvittaessa voit myös ohjata ne "/dev/null" -osoitteeseen, mutta järkevämpää on tehdä tekstitiedosto missä tarvittaessa näet virheen, kuten tuossa esimerkissa ne menevät kotihakemistoosi tiedostoon virheet.txt. Oletuksena virheet tulostetaan näytölle, vaikka olisit kirjoittanut ">/dev/null".

7. Komentotulkki BASH

Linux tarjoaa käyttäjälleen kaikki yleisimmät Unix-komentotulkit. Komentotulkki MS-DOS:issa on COMMAND.COM, Linuxissa se useimmiten on Bourne Again SHell eli lyhyemmin BASH. Valinta on helppo, koska BASH tarjoaa eniten ominaisuuksia ja se voidaan konfiguroida käyttäjän mieleiseksi. Oman komentotulkkisi voit vaihtaa "chsh" komennolla, kirjoita siihen "/bin/bash" jos oletusarvona lukee jotain muuta.

BASH käyttää useita eri tiedostoja asetuksiensa tallentamiseen, niistä kotihakemistossa olevat ".bash_profile", ".bash_login" ja ".profile" ovat jokaisen käyttäjän omia asetuksia - kaikille käyttäjille oletusasetukset tarjoaa "/etc/profile". Riittää kun käytät yhtä noista tiedostoista ja muistathan, että pisteellä alkavia tiedostoja "ls" komento ei näytä ilman "-a" parametria.

Jos haluat että skandinaaviset merkit (öäåÖ) toimivat oikein BASH-komentotulkissa, siihen tarvitaan seuraavat kolme riviä kotihakemistossasi olevaan tiedostoon ".inputrc" mikä säätelee erilaisia näppäimistöasetuksia:

set meta-flag on

set convert-meta off

set output-meta on

Näiden lisäksi useissa järjestelmissä oletusmerkistö on 7-bittinen, joten sinun tarvitsee komentaa järjestelmä tottelemaan myös 8-bittisiä merkkejä kuten (öäåÖ). Tämä tapahtuu komennolla "stty pass8" ja sen voi sijoittaa esimerkiksi tiedostoon "/etc/rc.d/rc.local" viimeiseksi riviksi (oletusasetus kaikille käyttäjille).

Lisäksi voi olla mieleistä lisätä ".inputrc" tiedostoon myös nämä rivit:

"\e[1~": beginning-of-line

"\e[3~": delete-char

"\e[4~": end-of-line

Ylläolevat kolme riviä muuttamat HOME, END ja DELETE -näppäimien toiminnan samanlaiseksi mihin ehkä olet tottunut.

BASH osaa oletusasetuksilla kaikki edellisessä kappaleessa olleen "moniajon komentorivillä", tarkoitaen "fg" ja "bg" -komentojen käyttöä sekä "&" merkillä ohjelman suorittamista taustalla.

Voit antaa myös useampia komentoja samalla rivillä tyyliin "cd / && ls", joka siis siirtyy juurihakemistoon (cd /) ja samalla tulostaa sen hakemiston sisällön (ls). Voit toki myös käyttää useampia "&&" merkkejä samanaikaisesti.

BASH osaa nimienlaajennuksen, kokeile tätä kirjoittamalla "a" tyhjälle komentoriville ja painamalla sen jälkeen tabulaattorinäppäintä kaksi kertaa. Saat listalle kaikki a-kirjaimella alkavat komennot. Voit myös käyttää tätä työtiedostojen kohdalla, esimerkiksi "emacs budj" rivin jälkeen kun painat TAB näppäintä niin BASH täydentää tuon esimerkiksi "budjetti_1.1.1997.teksti" -muotoon, jos sinulla sattuu tuollainen tiedosto olemaan. Pitkien tiedostonimien kanssa tästä ominaisuudesta on hyötyä. Muistathan, että isot ja samat kirjaimet eivät ole sama asia Linuxissa. Sinulla voi olla tiedosto "foo" ja "FOO", ne ovat kaksi täysin erillistä tiedostoa.

Nuolinäppäimillä "ylös" ja "alas" voit selata vanhoja komentoja, komentorivillä voit liikkua oikealle ja vasemmalle myös nuolinäppäimillä. Useimmat Emacsista tutut näppäinkomennot toimivat. Tässä alla on muutama hyödyllinen näppäinkomento, huomaa että "C-" tarkoittaa näppäimen painamista CTRL-näppäimen kanssa ja "M-" tarkoittaa että sinun pitää painaa ensin ESC-näppäintä ennen kirjainta:

C-a   Siirry rivin alkuun

C-e   Siirry rivin loppuun

M-f   Siirry sana eteenpäin

M-b   Siirry sana taaksepäin

C-k   Tuhoa rivi kursorista eteenpäun

C-y   Palauta viimeinen "C-k":lla tuhoamasi rivi

C-l   Puhdista ruutu

Tässä ei ollut kuin muutama BASH:in monista ominaisuuksista, muista tutkia /usr/doc suunnalla olevat dokumentit sekä "man bash" komennolla tuleva pitkä manuaalisivu!

Tämä opas on vielä pahasti kesken, parantelen ja teen tästä oppaasta monipuolisemman kunhan vaan jaksan taas paneutua tähän oppaaseen. Kaikenlaista rakentavaa palautetta saa lähettää e-mailitse . Minä en kuitenkaan ole mikään yleinen mikrotukihenkilö joka auttaa Linux ongelmissasi, mikäli sinulla on jotain Linuxiin liittyvää kysyttävää niin sfnet.atk.linux -uutisryhmä on siihen oikea paikka.

Takaisin etusivulle - Back to index page