PERUSTEET by Juhani Merilinna
Sisällysluettelo Yleistä... 5 Rakenne...7 Käyttö...10 Sisäänkirjoittautuminen...10 Järjestelmästä poistuminen...11 Käyttäjät... 12 Hakemistot... 13 Levyasemat...15 Tiedostot ja hakemistot... 16 Nimet... 16 Tiedoston käyttöoikeudet... 16 Hakemistojen oikeudet... 18 Käyttöoikeusmaski...19 Omistajan määräytyminen... 19 Hakemistojen luonti ja poistaminen... 19 Tiedostojen luonti ja poistaminen... 19 Linkit... 20 Laitetiedostot... 21 Komennot...23 argumentit...23 Toiminnan keskeyttäminen...24 Komentojen muuttaminen ja toistaminen...24 Korvausmerkit ( wild card )...25 Standardivirrat... 26 Uudelleenohjaus... 26 Putket...27 Ajastettu ohjelman suoritus... 28 at...28 crontab... 29 Yleisimmät komennot... 31 alias... 31 at...31 bg... 31 cat...31 cd...32 chmod...32 clear...33 cp...33 crontab... 33 date...33 df... 33 diff...33 du... 33 exit... 34 find...34 grep... 34 gunzip...34 gzip...34 UNIX:n perusteet Juhani Merilinna 2
head...34 id... 35 last...35 less... 35 locate...35 logout, exit, bye tai Ctrl-D... 35 lpr...35 lpq... 35 lprm...36 ls...36 man...36 make...37 mkdir...37 more... 37 mv... 37 nice...38 passwd...38 ps...38 renice...38 rmdir...38 rm...38 sort... 39 su...39 tail... 39 tar (tape archive )... 39 tee...40 touch...41 tr...41 uname...41 wc...41 whoami...41 prosessit...42 PID...42 Omistaja...42 Prioriteetti...42 Signaalit...42 Taustaprosessit... 43 daemon-prosessit... 44 Käynnistyssekvenssi ja asetustiedostot...44 rc -tiedostot... 45 sisäänkirjautuminen... 45 Ympäristömuuttujat... 46 Shell script:t... 47 Muuttujat...48 Komennon tulosteen käyttö...48 Ehtolause...49 Silmukka... 52 Vaihtoehdot...53 Komentoriviargumentit...53 Verkot...55 NFS (Network File System)... 55 Telnet, rlogin ja ssh... 56 ftp (File Transfer Protocol)...56 UNIX:n perusteet Juhani Merilinna 3
Sähköposti... 57 pine...57 elm... 58 Tekstieditorit... 59 vi...59 jed (ja useimmat emacs-kopiot)...60 X-Window...61 Window manager...62 UNIX:n perusteet Juhani Merilinna 4
Yleistä UNIX on yli 30 vuotta vanha käyttöjärjestelmä. Jotkin perusominaisuudet ovat säilyneet koko ajan, mutta muuten UNIX on kehittynyt huomattavasti eliaikanaan. UNIX poikkeaa muista käyttöjärjestelmistä siinä, että se on sovitettu moniin hyvin erilaisiin laiteympäristöihin. Tämä vaikuttaa moniin ominaisuuksiin. Esimerkiksi UNIX:ssa ei yleensä käytetä mitään erikoisnäppäimiä, kuten PC:n funktionäppäimet. Eri pääteiden ja tietokoneiden näppäimistöt poikkeavat huomattavasti toisistaan. Siksi ei voi luottaa, että kaikissa näppäimistöissa on muuta yhteistä kuin perusmerkit. Monien sovellutusohjelmien käyttämät näppäinyhdistelmät ovat siksi hankalan tuntuisia ( esim. Ctrl-X Ctrl-C ). UNIX:a käytetään: keskikokoisissa tietokoneissa. Monet tietokantapalvelimet käyttävät UNIX:a. Lisäksi super-tietokoneiden edustakoneet ovat yleensä UNIX-koneita. tehokkaissa työasemissa. CAD- ja erikoissovellutukset. Esim. piirisuunnittelu ja tieteellinen laskenta. ohjelmien kehitystyössä. Useimmat uudet ohjelmat, erityisesti verkkosovellutukset, kehitetään UNIXympäristössä, josta ne kehitystyön jälkeen siirretään muihin käyttöjärjestelmiin. Internet:ssä. Vaikka Internet ei ole UNIX-verkko, käytännössä Internet-sovellutuksia kehitetään UNIX:ssa ja suurin osa Internet:n palvelimista on UNIX-koneita. UNIX:n suosio on kasvanut tasaisesti mutta hitaasti. Se ei koskaan ole ollut suurien käyttäjäkuntien käyttöjärjestelmä. Tämä johtuu osittain UNIX:n maineesta vaikeaselkoisena käyttöjärjestelmänä, osittain siitä, että mikrotietokoneiden teho ei ole aiemmin riittänyt UNIX:n tehokkaaseen käyttöön. UNIX:n maine vaikeaselkoisena johtuu lähinnä eri vaihtoehtojen suuresta määrästä. Jos UNIX:lla tehdään samat asiat kuin MS- DOS:lla, käyttö on hyvin samankaltaista. UNIX:n perusteet Juhani Merilinna 5
UNIX on: Moniajokäyttöjärjestelmä. useita ohjelmia ( prosesseja ) voi toimia yhtäaikaa. aikajakoinen moniajo ohjelmat on suojattu niin, että ne eivät häiritse toistensa toimintaa. tiedostoja voi lukita niin, että kaksi ohjelmaa ei voi samanaikaisesti muuttaa samaa tiedostoa. Monen käyttäjän käyttöjärjestelmä useita käyttäjiä voi käyttää samaa konetta yhtäaikaa. käyttäjillä on käyttäjätunnus ja salasana. Niiden avulla käyttäjät erotetaan toisistaan. käyttäjille voi määritellä erilaisia käyttöoikeuksia. Omia tiedostoja voi suojata muilta käyttäjiltä. käyttäjäkohtaisia asetuksia jokaisella käyttäjällä on oma pääte vain pääkäyttäjä ( root ) voi muuttaa järjestelmän asetuksia ja ajaa käyttöjärjestelmän alas. Perinteisesti UNIX:a on käytetty merkkipohjaisella käyttöliittymällä. UNIX ei itseasiassa ole graafinen eikä merkkipohjainen, vaan käytettävä pääte määrää käyttöliittymän tyypin. Monet perusohjelmat ja komennot ovat kuitenkin merkkipohjaisia. Siksi merkkipohjaisella liittymällä on suurempi merkitys kuin Windows:ssa. UNIX on rekisteröity tavaramerkki. Siksi vain muutamalla valmistajalla on oikeus käyttää nimeä. Muut valmistavat UNIXyhteensopivia käyttöjärjestelmiä. Tällaisia ovat mm.: AIX, Solaris, Next Step, HP UX, Xenix ja Linux. UNIX:n perusteet Juhani Merilinna 6
Rakenne ydin ( kernel ) ohjaa moniajoa hallitsee laitteistoa. Sisältää perusajurit eri oheislaitteille. valvoo käyttöoikeuksia kernel on nimensä mukaisesti toiminnan ydin. Se varsinaisesti tekee käyttöjärjestelmästä Laitteisto UNIX-yhteensopivan. Kaupallisia ytimiä on käytössä oikeasta vain BSD ( Berckley:n yliopisto ) ja SVR ( AT&T ). Linux käyttää omaa ydintään, joka on hyvin pitkälle yhteensopiva kaupallisten ytimien kanssa. shell merkkipohjainen komentotulkki eli ohjelma, jota käyttäjät käyttävät silloin, kun he eivät käytä jotakin sovellutusohjelmaa ( vrt. COMMAND.COM MS-DOS:ssa ). Komentotulkki käynnistetään, kun käyttäjä kirjautuu järjestelmään. Komentotulkki ei siis ole osa ydintä. käynnistää muut ohjelmat shell:ejä on valittavana useita käyttäjän tottumusten mukaan. bourne shell ( tai sh ) vanha csh (C-shell) tcsh, csh:n kehitelmä bash ( Bourne Again Shell ) bourne shell:n kehittynyt versio rsh ( restricted shell ) Komentotulkki (shell) Sovellukset Ydin UNIX:n perusteet Juhani Merilinna 7
komentotulkit sisältävät ohjelmointimahdollisuuden ( shell script ), joka vastaa MS-DOS:n komentojonoja, mutta on useimmissa komentotulkeissa huomattavasti laajempia. varusohjelmat UNIX:n mukana tulee suuri joukko erilaisia ohjelmia, erityisesti tiedostojen käsittelyyn Sovellutusohjelmat Tyypillisesti UNIX:iin on paljon erikoisohjelmia tekniseen suunnitteluun, tieteelliseen laskentaan ym. Sen sijaan muissa ympäristöissä suosittuja sovellutuksia, kuten tekstinkäsittelyohjelmia ja pelejä, on melko vähän. Päätteet Koska käyttäjiä voi olla useita yhtäaikaa, jokaisella pitää olla oma näyttö ja näppäimistö. Pääte on laite, joka sisältää näytön, näppäimistön ja jonkin liitännän tietokoneeseen. Perinteisesti liitäntänä on ollut sarjaliitäntä ( RS-232C ). Nykyisin käytetään yleisesti paikallisverkkoa päätteiden liittämiseen. Keskusyksikkö Pääte Pääte Pääte Vaikka Linuxia käyttää yleensä vain yksi käyttäjä, siinäkin käytetään päätettä. Linuxin mukana tulee virtuaalipääteohjelma, jolla työaseman näyttö ja näppäimistö saadaan UNIX:n perusteet Juhani Merilinna 8
näkymään Linuxille päätteenä. Itseasiassa Linuxissa on käytössä useita virtuaalipäätteitä. Päätettä voi vaihtaa näppäinyhdistelmällä Alt ja jokin funktionäppäin. Yleensä käytössä on funktionäppäimet F1-F6 eli kuusi virtuaalipäätettä. Jos X-Window on käynnissä, virtuaalipäätteeseen pääsee näppäinyhdistelmällä Alt-Ctrl ja funktionäppäin. Takaisin X-Window:hun pääsee sen jälkeen Alt-F7. UNIX:n perusteet Juhani Merilinna 9
Käyttö Sisäänkirjoittautuminen Käyttö aloitetaan kirjoittautumalla sisään (login) ja käyttö lopetetaan uloskirjoittautumalla (logout). UNIX kysyy aluksi käyttäjätunnusta login: Sen jälkeen käyttäjätunnusta vastaavaa salasanaa password: Ilman käyttäjätunnusta ei UNIX:a voi käyttää lainkaan. Käyttäjä voi muuttaa oman salasanansa passwd -komennolla. Pääkäyttäjä voi muuttaa kaikkien käyttäjien salasanoja. Jos käyttäjätunnuksen ja salasanan kirjoittaa isoilla kirjaimilla, UNIX siirtyy automaattisesti käyttämään pelkästää isoja kirjaimia. Tämä johtuu historiallisista syistä. Vielä joitakin vuosia sitten käytössä oli useita päätteitä, jotka eivät tunteneet lainkaan pieniä kirjaimia. Sisäänkirjautumisen yhteydessä näytölle voi tulla erilaisia viestejä. Yleensä tässä vaiheessa tulostetaan näytölle tiedoston /etc/motd sisältö. (motd=message of the day). Tämän avulla voi pääkäyttäjä lähettää kaikille käyttäjille haluamansa viestin. Lisäksi yleensä kerrotaan, onko käyttäjälle tullut sähköpostiviestejä. Myös erilaisia päivänmietelause-ohjelmia on kehitetty käyttäjien viihdyttämiseksi. (esim. fortune). Sisäänkirjautumisen jälkeen näytölle tulee kehoite (promt). Kehoitteen muotoa voi muuttaa. Yleensä kehoite on myös erilainen eri komentotulkeilla. Lisäksi usein pääkäyttäjällä on UNIX:n perusteet Juhani Merilinna 10
erilainen kehoite. Järjestelmästä poistuminen Kun käyttäjä lopettaa käytön, hän kirjoittautuu ulos (logout ). Uloskirjoittautuminen tapahtuu eri järjestelmissä vähän eri tavoin. Yleensä komentona on logout, exit tai bye. Joissakin järjestelmissä käytetään myös Ctrl-D näppäinyhdistelmää. Järjestelmästä poistuminen yleensä lopettaa myös käyttäjän käynnistämät prosessit. Tosin järjestelmä ei hyväksy uloskirjautumista, jos käyttäjällä on tausta-ajossa olevia ohjelmia. Uloskirjautumisen jälkeen näytölle tulee login: -kehote, jolloin järjestelmä on valmis seuraavaan sisäänkirjautumiseen. Uloskirjautuminen on helppo toimenpide, joten se kannattaa suorittaa aina kun koneen ääreltä poistuu joksikin aikaa. Pääkäyttäjä, joka kirjautuu järjestelmään ja lähtee kahville, on paljon suurempi turvallisuusriski kuin kukaan Internetin kautta hyökkäävä hakkeri. UNIX:n perusteet Juhani Merilinna 11
Käyttäjät Jokaisella käyttäjällä on käyttäjätunnus, joka on julkinen. Siten kuka tahansa saa selville, mitä käyttäjätunnuksia järjestelmässä on määritelty. Sen sijaan käyttäjätunnukseen liittyvä salasana on tallennettu salakoodattuna, joten sitä ei pystyy edes pääkäyttäjä selvittämään. Pääkäyttäjä on ainoa erikoisasemassa oleva käyttäjä. Pääkäyttäjän tunnus on root. Vain pääkäyttäjä voi luoda uusia käyttäjätunnuksia. Salasana on yleensä vaikeasti keksittävä, koska pääkäyttäjällä ei UNIX:ssa ole käytännössä mitään rajoituksia. Käyttäjä kuuluu lisäksi aina vähintäin yhteen käyttäjäryhmään. Ryhmittelyn tarkoitus on, että esim. joku työryhmä voi jakaa tiedostoja keskenään ilman, että muihin ryhmiin kuuluvat pääsisivät käsiksi tiedostoihin. Nykyisissä UNIX-versioissa käyttäjä voi yleensä kuulua useampaan ryhmään. Yksi ryhmä on aina käyttäjän varsinainen ryhmä, muissa hän on liitännäisjäsen. Ero näkyy, kun käyttäjä luo uuden tiedoston. Käyttäjätunnuksia käytetään selvyyden vuoksi. Sisäisesti UNIX käyttää tunnuslukuja (UID). /etc/passwd -tiedostossa on määritelty jokaista käyttäjätunnusta vastaava luku. Vastaavasti ryhmänimen sijasta UNIX käyttää sisäisesti ryhmätunnuslukua (GID). /etc/group -tiedostossa määritellään järjestelmän tuntemat ryhmät ja niiden tunnusluvut. UNIX:n perusteet Juhani Merilinna 12
Hakemistot MS-DOS:n hakemistojen käyttö on kopioitu UNIX:sta, joten useimmat komennot ovat samoja. Koska UNIX on monenkäyttäjän käyttöjärjestelmä, hakemistorakenne on tarkemmin määritelty kuin MS-DOS:ssa. Windows:n komentorivi toimii pääosin samalla tavalla kuin MS-DOS. Huomaa, että UNIX:ssa ei käytetä levyasematunnuksia kuten MS- DOS:ssa. Hakemiston nimissä käytetään erottimena kauttaviivaa (/) ei kenoviivaa (\) kuten MS-DOS:ssa tai Windows:ssa. Kenoviivaa käytetään joidenkin erikoismerkkien antamiseen, joten sen käyttö hakemistojen yhteydessä voi aiheuttaa virhetoimintoja. Systeemitiedostot ovat eri hakemistoissa kuin käyttäjien omat tiedostot. Tavallinen käyttäjä ei voi muuttaa kuin oman hakemistonsa tiedostoja. Siten uusia ohjelmia voi asentaa vain pääkäyttäjä. Tavallinen käyttäjä voi asentaa ohjemia omaan kotihakemistoonsa, mutta silloin ne ovat vain hänen käytössään. Hakemistorakenne on yleensä alla kuvatun tapainen / etc asetustiedostoja bin systeemin perusohjelmia sbin pääkäyttäjän ohjelmia dev laitetiedostot lib dynaamiset kirjastot tmp tilapäistiedostot usr sovellutusohjelmat opt home käyttäjien kotihakemistot etc sisältää käyttöjärjestelmän ja joidenkin perusohjelmien asetustiedostoja. Asetukset koskevat koko UNIX:n perusteet Juhani Merilinna 13
käyttöjärjestelmää ja kaikkia käyttäjiä, joten vain pääkäyttäjällä on mahdollisuus muuttaa etchakemiston tiedostoja. Moniin asetuksiin voi tehdä käyttäjäkohtaisia muutoksia käyttäjän kotihakemistossa olevilla tiedostoilla. bin sisältää perusohjelmat, joiden on oltava käytössä heti käyttöjärjestelmän käynnistyessä. sbin pääkäyttäjän tarvitsemia perusohjelmia. dev sisältää laitetiedostot. UNIX:ssa useimpia laitteita ja liitäntöjä käsitellään tiedostomaisesti. Nämä tiedostot eivät ole normaaleja tiedostoja, joten niitä ei voi muuttaa, kopioida ym. lib useimmat ohjelmat käyttävät dynaamisesti linkitettäviä kirjastoja muistitilan säästämiseksi. tmp kaikki tilapäistiedostot talletetaan samaan hakemistoon, jolloin niiden poistaminen on helppoa. tmphakemisto tyhjennetään yleensä automaattisesti järjestelmän käynnistyksen yhteydessä. Monet ohjelmat tallettavat ajon aikana tilapäistiedostoja tmp-hakemistoon. Siksi hakemistoa ei ole syytä tyhjentää käytön aikana. usr sisältää suurimman osan ohjelmista ja niiden asetustiedostoista. usr-hakemisto alihakemistoineen vie yleensä suurimman osan levytilasta. usr-hakemisto voi olla toisesta koneesta liitetty verkon kautta. Siksi jotkin perusohjelmat on siirretty /bin ja /sbin -hakemistoihin. opt lisäohjelmia. Tähän laitetaan yleensä ohjelmat, jotka eivät kuulu perusasennuspakettiin kuten OpenOffice. home jokaista käyttäjätunnusta varten on alihakemisto home-hakemistossa. Tavallisella käyttäjällä on UNIX:n perusteet Juhani Merilinna 14
oikeus luoda uusia tiedostoja ja alihakemistoja ja muuttaa olemassa olevia vain omassa kotihakemistossaan. Tarkemmat kuvaukset eri hakemistojen merkityksestä löytyvät Linux filesystem standard -määrittelystä (FSSTND). Eri asennuspakettien välillä on jonkin verran eroavaisuuksia. UNIX:n perusteet Juhani Merilinna 15
Levyasemat UNIX:ssa ei käytetä levyasematunnuksia. Eri levyasemat näkyvät hakemistoina. Yksi levyasema on päälevyasema (root disk). Se sisältää päähakemiston ja yleensä ainakin hakemistot /etc ja /bin. Muut levyasemat on liitetty samaan hakemistorakenteeseen omiksi hakemistoikseen. Siten tavallinen käyttäjä ei yleensä edes tiedä, mitä levyasemaa käyttää. Pääkäyttäjä voi tarvittaessa liittää uusia levyasemia järjestelmään. Levykeasema ei yleensä ole mukana hakemistorakenteessa, joten levykettä ei normaalisti voi käyttää kopiointi ym. komennoilla. Muista, että UNIX on monenkäyttäjän järjestelmä. Jos jokainen käyttäjä voisi vaihtaa levykettä, siitä seuraisi sekaannusta. Liittäminen (mounttaaminen) tapahtuu mount -komennolla. mount /dev/hda2 /uusi liittää PC:ssä ensimmäisen kiintolevyn (/dev/hda) toisen partition /uusi -hakemistoon. Huomaa, että levyasemia käsitellään laitetiedostojen avulla /dev/hda ensimmäinen IDE-liitäntäinen kiintolevy /dev/hdb /dev/sa jne. toinen IDE-liitäntäinen kiintolevy ensimmäinen SCSI-liitäntäinen kiintolevy Laitetiedostojen nimet vaihtelevat eri järjestelmissä. Ylläolevat ovat Linux:n käyttämiä laitetiedoston nimiä. UNIX:n perusteet Juhani Merilinna 16
Tiedostot ja hakemistot Nimet Tiedoston nimet voivat yleensä olla pitkiä. Suurin pituus riippuu UNIX-versiosta, mutta nykyisin 128-256 merkkiä pitkät tiedoston nimet ovat mahdollisia. Nimessä voi olla kirjaimia, numeroita ja joitakin välimerkkejä. Nimi voi myös sisältää pisteitä. Esim. ftape-2.0.3.tar.gz on mahdollinen nimi. Huom. pisteet ovat osa nimeä, kuten muutkin merkit, päin vastoin kuin MS- DOS:ssa. Jos piste on nimen ensimmäinen merkki, tiedosto on piilotiedosto, joka ei näy normaalisti tiedostolistauksessa. Yleensä piilotiedostoja ovat käyttäjäkohtaiset asetustiedostot käyttäjän kotihakemistossa. Isot ja pienet kirjaimet ovat eri asia. Siten KOE.TEKSTI, koe.teksti ja Koe.teksti ovat eri tiedoston nimiä. Kuten muissakin käyttöjärjestelmissä, samassa hakemistossa ei saa olla kahta samannimistä tiedostoa. Tiedoston käyttöoikeudet Tiedostolle voidaan antaa luku, kirjoitus ja suoritusoikeudet. Suoritusoikeuksia tarvitaan vain ohjelmatiedostoille ja shell scripteille. Oikeudet määritellään erikseen tiedoston omistajalle, joka on tiedoston luonut käyttäjä, samaan ryhmään kuuluville käyttäjille ja muille käyttäjille. Käyttöoikeudet eivät rajoita pääkäyttäjän toimintaa. Jokaisella tiedostolla on omistaja ja omistajaryhmä. Omistaja on tavallisesti tiedoston luonut tai kopioinut käyttäjä. Omistajaryhmä on käyttäjän ensisijainen käyttäjäryhmä. UNIX:n perusteet Juhani Merilinna 17
Käyttöjärjestelmätiedostot omistaa yleensä pääkäyttäjä. Tiedoston käyttöoikeuksia kuvataan yhdeksän kirjaimen yhdistelmällä: rwxrwxrwx Ensimmäiset kolme ovat omistajan oikeudet, seuraavat samaan ryhmään kuuluvien käyttäjien oikeudet ja viimeisenä muiden käyttäjien oikeudet. r lukuoikeus w kirjoitus- tai muutosoikeus x suoritusoikeus jos tiedosto on ohjelma. Muilla tiedostoille ei pitäisi olla x-oikeutta. esim. rwxr-xr-x tarkoittaa, että muilla kuin omistajalla on luku- ja suoritusoikeudet, mutta ei kirjoitusoikeuksia rw-r--r-- tarkoittaa, että omistajalla on oikeus lukea ja muuttaa tiedostoa, muilla vain lukuoikeus rw-rw---- omistajalla ja samaan ryhmään kuuluvilla on lukuja kirjoitusoikeus, mutta muilla käyttäjillä ei ole mitään oikeuksia. Näiden oikeuksien lisäksi tiedostolla voi olla myös seuraavat harvemmin käytetyt oikeudet: t SUID Sticky bit, virallisemmalta nimeltään save text mode. Ei käytetä enää tiedostojen oikeutena. Käyttöjärjestelmä pyrkii pitämään ohjelmatiedoston muistissa, vaikka ohjelma pysäytetään. Tätä piirrettä käytettiin aiemmin yleisesti käytettyjen ohjelmien käynnistysviiveen pienentämiseksi. Nopeutuneet levyasemat ja ennenkaikkea levyasemavälimuistien käyttö on tehnyt t- bitin tarpeettomaksi tiedostojen oikeutena. Käytetään ohjelmatiedostoilla. Normaalisti ohjelma toimii ohjelman käyttäjän oikeuksilla. Jos ohjelmatiedostoon laitetaan SUID-oikeus, ohjelma toimii tiedoston omistajan oikeuksilla. Siten, jos ohjelmatiedoston omistaa pääkäyttäjä, ohjelma toimii pääkäyttäjän oikeuksilla riippumatta siitä, kuka ohjelman käynnistää. SUID-OIKEUS ON HYVIN VAARALLINEN. Jos esimerkiksi rm-ohjelmalle annetaan SUID-oikeus, kuka tahansa voi poistaa minkä tahansa tiedoston! SGID Kuten SUID, mutta ohjelma saa käyttäjästä UNIX:n perusteet Juhani Merilinna 18
riippumatta ohjelman omistajaryhmän oikeudet. Harvoin käytetty, mutta lähes yhtä vaarallinen kuin SUID-oikeus. Käyttöoikeuksia voi muuttaa chmod-komennolla. Käyttöoikeuksia voi muuttaa vain tiedoston ( tai hakemiston ) omistaja tai pääkäyttäjä. Tiedoston omistajaa ja ryhmää voi muuttaa chown-komennolla, mutta vain pääkäyttäjä. Jos käyttäjä luo tai kopioi tiedoston, hänestä tulee tiedoston omistaja. Omistajaryhmäksi tulee käyttäjän pääasiallinen ryhmä. Hakemistojen oikeudet Hakemistoille voi antaa samalla tavalla oikeuksia. Oikeuksien merkitys on silloin jonkin verran eri kuin tiedostoilla. r hakemiston sisällön voi listata w hakemistossa olevia tiedostoja voi poistaa ja hakemistoon voi luoda uusia tiedostoja x hakemistoon voi siirtyä cd -komennolla. t t-oikeudella on erikoinen merkitys hakemistojen yhteydessä. Kun hakemistolla on t-oikeus, käyttäjä voi poistaa hakemistosta vain omistamiaan tiedostoja tai tiedostoja, joihin hänellä on kirjoitusoikeus. Käyttäjällä on kuitenkin oltava kirjoitusoikeus hakemistoon. Tätä käytetään yhteiskäyttöisissä hakemistoissa, kuten /tmp, johon jokainen voi tehdä tiedostoja, mutta ei voi tuhota toisen käyttäjän tiedostoja. SUID ei ole merkitystä hakemistoissa. SGID jos hakemistolla on SGID-oikeus, sinne luotavan tiedoston omistajaryhmäksi tulee hakemiston omistajaryhmä, eikä käyttäjän omistajaryhmä kuten normaalisti. Tätä voi käyttää esim. jonkin työryhmän yhteisessä hakemistossa. Käyttöoikeusmaski Kun käyttäjä luo uuden tiedoston, tämän käyttöoikeudet määräytyvät ns. käyttöoikeusmaskin avulla. Käyttöoikeusmaski on UNIX:n perusteet Juhani Merilinna 19
ympäristömuuttuja, jota voi muuttaa umask-komennolla. umask 227 Käyttöoikeusmaski on käänteinen eli siinä määritellään ne oikeudet, joita uusi tiedosto ei saa! Siten 227 tarkoittaa, että tiedoston oikeuksiksi tulee r-xr-x---. 000 UMASK:n arvona tarkoittaisi, että kaikki saisivat kaikki oikeudet. 777 UMASK:n arvona tarkoittaisi, että kukaan ei saisi mitään oikeuksia Omistajan määräytyminen Tiedoston omistajaa ja ryhmää voi muuttaa chown-komennolla, mutta vain pääkäyttäjä voi tehdä muutoksen. Jos käyttäjä luo tai kopioi tiedoston, hänestä tulee tiedoston omistaja. Omistajaryhmäksi tulee ryhmä, johon käyttäjä kuluu. Hakemistojen luonti ja poistaminen Hakemistoja luodaan mkdir-komennolla. Huom. md ei ole Unix:n komento. Joissakin komentotulkeissa voi olla alias-määrittely, jonka avulla myös md toimii. Hakemistoja poistetaan rmdir-komennolla. Hakemiston on tällöin oltava tyhjä eli siinä ei saa olla tiedostoja eikä alihakemistoja. Hakemiston voi poistaa myös rm komennolla, jos käytetään r valitsinta. Tällöin hakemiston ei tarvitse olla tyhjä. rm r on kuitenkin vaarallinen komento, koska se poistaa kaikki hakemiston tiedostot ja alihakemistot kysymättä vahvistusta. Tiedostojen luonti ja poistaminen Tiedostoja luodaan yleensä jollakin sovellusohjelmalla. Jos haluaa luoda tyhjän tiedoston, touch komento on kätevin tapa. Pienen tekstitiedoston voi luoda myös cat komennolla. cat > tiedosto UNIX:n perusteet Juhani Merilinna 20
Linkit cat komento lopetetaan Cntl-Z:lla. Tiedostoja poistetaan rm-komennolla. Tiedoston saa näkymään toisessa hakemistossa tai toisen nimisenä luomalla siihen linkin. Linkki näkyy hakemistolistauksessa aivan kuten oikea tiedosto. Jos linkkiä käsittelee esim. tekstieditorilla käsitellään tiedostoa, johon linkki viittaa. Hakemistoihin voi tehdä linkkejä samalla tavalla, kuin tiedostoihin. Tiedoston voisi myös kopioida toiseen hakemistoon. Erona on: levytila säästyy, koska varsinainen tiedosto on vain kerran levyllä. jos käsittelee tiedostoa alkuperäisellä nimellä tai linkillä, käsitellään samaa tiedostoa. Linkkejä on kahdenlaisia, soft link (symbolic link) ja hard link. Ero johtuu lähinnä tavasta jolla ne on käyttöjärjestelmän sisällä toteutettu. Käytännössä linkeillä on seuraavat erot: hard link on oltava samalla levyasemalla kuin alkuperäinen tiedosto. Soft link voi olla eri levyasemalla. Jos poistetaan alkuperäinen tiedoston nimi, varsinainen tieto levyasemalta ei katoa, jos tiedostoon on hard link. Tieto katoaa vasta, kun alkuperäinen tiedoston nimi ja kaikki linkit on poistettu. Jos tiedostoon on vain soft link, tiedoston sisältö katoaa, kun alkuperäinen tiedosto poistetaan. Linkistä tulee tällöin tyhjä linkki, joka viittaa olemattomaan tiedostoon. Symbolinen linkki on suositeltavampi, koska se toimii useimmissa tilanteissa. Linkkejä luodaan ln -komennolla. UNIX:n perusteet Juhani Merilinna 21
ln /usr/bin/jed edit Tekee oletushakemistoon linkin nimeltä edit. Linkki viittaa / usr/bin/jed -tiedostoon. Linkki on kovalinkki. ln -s /usr/bin/jed edit Kuten edellinen, mutta tekee symbolisen linkin Linkkien käyttö voi johtaa myös virheisiin. Linkit voivat aiheuttaa ristiinviittauksia. Esim. seuraavan kaltainen hakemistorakenne. Siinä on koe hakemisto, joka alihakemistona on koe, joka sisältää koe-nimisen linkin ylimpään koe-hakemistoon. Mitä tapahtuu, jos käyttäjä kirjoittaa useita kertoja cd koe?? Laitetiedostot /dev hakemistossa on ns. laitetiedostoja. Ne eivät ole normaaleja tiedostoja, vaan niiden avulla voi käyttää ytimen laiteajureita. esim. /dev/lp tarkoittaa kirjoitinliitäntää. Kopioimalla jokin tiedosto /dev/lp:hen kopioidaan se itse asiassa kirjoitinliitäntään ja sitä kautta kirjoittimelle. Laitetiedostoja on kahdenlaisia, lohko- ja merkkilaitteita (block ja character device). Levyasema on tyypillinen lohkolaite, koska tietoa käsitellään levyasemissa sektoreina. Päätteissä tietoa käsitellään merkki kerrallaan, joten ne ovat tyypillisiä merkkilaitteita. Tiedostolistauksessa laitetiedostojen käyttöoikeuksien kohdalla ensimmäinen merkki on b (block device) tai c (character device). Laitetiedostojen nimet vaihtelevat eri järjestelmissä. Tiedoston nimi ei ytimen kannalla ole olennainen. Olennaisia ovat UNIX:n perusteet Juhani Merilinna 22
laitetiedoston luonnin yhteydessä annettavat ns. major ja minor luvut. Sovellusohjelmien kannalta nimillä voi olla merkitystä. Esimerkiksi modeemiohjelma voi olettaa sarjaliitännän laitetiedoston nimeksi jonkun tietyn. Laitetiedostoja ei voi luoda samalla tavalla kuin tavallisia tiedostoja. Ne luodaan mknod-komennolla. mknod komennolle annetaan parametriksi mm. major ja minor numerot, jotka kertovat ytimelle, mitä laitetta tiedostolla tarkoitetaan. Laitetiedoston luonnissa on olennaista tietää oikeat major ja minor numerot, siksi laitetiedostoja luodaan harvoin itse uusia. Laitetiedoston voi poistaa ja siihen voi tehdä linkin aivan kuin tavalliseen tiedostoon. UNIX:n perusteet Juhani Merilinna 23
Komennot argumentit Useimmilla komennoilla on argumentteja. Esim. ls -l /etc ls on komento, joka listaa hakemiston sisällön. Ensimmäinen argumentti -l on valitsin. Valitsimet ovat heti komennon jälkeen ennen muita argumentteja. Valitsimien tarkoitus on muuttaa komennon toimintaa. -l tarkoittaa, että listataan hakemiston sisältö pitkässä muodossa. Valitsimet alkavat tavuviivalla. Vanhantyyppiset valitsimet ovat lyhyitä yksi- tai kaksikirjaimisia kuten -l. Monet komennot tuntevat myös uudentyyppiset valitsimet, jotka alkavat kahdella tavuviivalla (--), kuten esimerkiksi: --help UNIX:lle on tyypillistä komentojen yhdistäminen ja suuri joukko erilaisia valitsimia. Tämä tekee komentoriveistä usein kryptisen näköisiä. Esim. zcat -dc ftape-2.0.3.tar.gz tar -tvf - grep.c less Perusohjelmat ovat hakemistossa /usr/bin tai /bin. Huomaa, että yleensä UNIX etsii ohjelmia vain määrätyistä hakemistoista. Siten väärässä hakemistossa olevaa ohjelmaa ei voi käynnistää vain siirtymällä hakemistoon cd-komennolla. Jos haluat käynnistää ohjelman hakemistosta, johon olet siirtynyt cd:llä, pitää ohjelman nimen eteen laittaa./ tai kirjoittaa koko hakemistopolku. Ohjelmia etsitään PATH-muuttujassa määritellyistä hakemistoista. PATH-muuttujan arvon näet komennolla: UNIX:n perusteet Juhani Merilinna 24
echo $PATH Toiminnan keskeyttäminen Useimmat toiminnat keskeytyvät näppäinyhdistelmällä Cntl-C. Tiedoston loppumerkin voi antaa joissakin tapauksissa näppäinyhdistelmällä Cntl-D. Huom! joissakin järjestelmissä Cntl- D aiheuttaa uloskirjautumisen! Cntl-S lukitsee päätteen. Sen jälkeen näppäimistö ei vastaa ennen kuin painetaan Cntl-Q. Komentojen muuttaminen ja toistaminen Komennot suoritetaan sen jälkeen, kun käyttäjä on painanut return- (enter-) näppäintä. Sitä ennen komentoriviä voi korjata. Korjausmahdollisuudet vaihtelevat komentotulkista ja päätteestä riippuen. Linux:n bash-komentotulkissa on seuraavia mahdollisuuksia: Backspace poistaa kursoria edellisen merkin Cntl-A siirtää kursorin rivin alkuun Cntl-E siirtää kursorin rivin loppuun Cntl-D poistaa kursorin kohdalla olevan merkin Tab täydentää rivin. Komennosta voi kirjoittaa vain osan, jonka jälkeen Tab-näppäimellä pyydetään komentotulkkia täydentämään rivin. Nuolinäppäimillä vasempaan ja oikeaan voi siirtyä rivillä edestakaisin. Linuxissa saattaa myös Delete-näppäin toimia asetuksista riippuen. Huomaa, että Delete-näppäimen alkuperäinen toiminta on sama kuin Backspace-näppäimen, joten joissakin järjestelmissä Delete toimii oudosti Windows:iin tottuneelle. Nuolinäppäimillä ylös ja alas voi selata komentohistoriaa. Komentotulkki tallettaa viimeisimmät komennot muistiin. Muistissa olevien komentojen määrää voi muuttaa HISTSIZEympäristömuuttujalla. UNIX:n perusteet Juhani Merilinna 25
Korvausmerkit ( wild card ) Tiedoston nimissä voi käyttää korvausmerkkejä komentojen yhteydessä. Esim. ls *.c listaa kaikki.c -loppuiset tiedostot. Korvausmerkkejä on: * mitä tahansa merkkejä kuinka monta tahansa? mikä tahansa yksi merkki [a-k] mikä tahansa merkki välillä a-k [acet] mikä tahansa merkeistä a, c, e, t Korvausmerkkejä voi käyttää huomattavasti monipuolisemmin kuin MS-DOS:ssa. Esim [AaBb]?te* tarkoittaa nimiä, joiden alussa on jokin merkeistä A, a, B tai b, sen jälkeen mikä tahansa yksi merkki, kirjaimet te ja lopussa mitä tahansa merkkejä. Korvausmerkit toimivat myös hakemistojen nimissä ja ohjelman käynnistyksessä. Siten cd do* siirrytään hakemistoon, jonka nimi alkaa kirjaimilla do. Edellytyksenä on, että löytynyt do-alkuinen nimi on hakemisto. Jos ensin löytyy do-alkuinen tiedosto, komento aiheuttaa virheen. ema* käynnistää ohjelman, jonka nimi alkaa kirjaimilla ema. Huom. Linuxissa on usein kätevämpi käyttää komentorivin täydennystoimintaa korvausmerkkien sijasta. Esim. Kirjoita ensin ema ja paina sitten sarkainta. Jos järjestelmä löytää vain yhden ema alkuisen tiedoston, komentoriville täydentyy löytynyt nimi. Jos tiedostoja löytyy useita, järjestelmä tulostaa listan vaihtoehdoista. Täydennystoiminta toimii sekä ohjelmien, että tiedostojen nimillä. UNIX:n perusteet Juhani Merilinna 26
Standardivirrat Merkkipohjaisissa käyttöliittymissä käytetään yleensä standardivirta-käsitettä. Ohjelmat lukevat tietoa standardisyöttövirrasta (stdin)ja tulostavat standarditulostusvirtaan (stdout). Yleensä nämä tarkoittavat näyttöä ja näppäimistöä. Käytännössä nämä tarkoittavat, että ohjelma lukee käyttöjärjestelmältä ja tulostaa käyttöjärjestelmälle. Siten käyttöjärjestelmän tehtäväksi jää valita, mihin tulostus menee ja tietoa ohjelmalle annetaan. Keskuskoneessa, johon on liitetty useita päätteitä, standardivirta on luonnollinen ratkaisu. Muuten jokaisen ohjelman pitäisi olla tietoinen, mistä päättestä käyttäjä on käynnistänyt ohjelman. Standardivirta-malli mahdollistaa myös uudelleenohjaus- ja putkitoiminnat. Yleensä käyttöjärjestelmässä on kolme standardivirtaa: standardisyöttövirta (stdin), josta ohjelma lukee tietoa. Käyttöjärjestelmä on normaalisti liittänyt tämän näppäimistöön. standarditulostusvirta, johon ohjelman normaalitulostus tapahtuu. Käyttöjärjestelmä liittää tämän oletusarvona näyttöön. standardivirhevirta, johon ohjelma yleensä lähettää virheilmoitukset. Käyttöjärjestelmä oletusarvona yleensä liittää tämän näyttöön. Virheiden tulostukseen käytetään erillistä virtaa, jotta uudelleenohjaus ei vaikuttaisi virheilmoituksiin. Huom! kaikki ohjelmat eivät tulosta virheitä virhevirtaan. Uudelleenohjaus Komentojen normaalisti näytölle tulostaman tekstin voi ohjata näytön sijasta tiedostoon. ls -l > koe.listaus ls -l >> koe.listaus Uudelleenohjauksen merkkinä on > tai >>. Yksi nuoli tarkoittaa, UNIX:n perusteet Juhani Merilinna 27
Putket että tiedostossa on vain sinne ohjattu teksti. Kaksi nuolta aiheuttaa sen, että uudelleenohjaus tapahtuu tiedostossa aiemmin olleen tekstin perään. Molemmissa tapauksissa luodaan uusi tiedosto, jos sitä ei ennestään ole. Uudelleenohjauksen sijasta voidaan tehdä haaroitus. Tällöin teksti tulostetaan sekä näytölle että tiedostoon. Haaroitus tehdään teekomennolla. Uudelleenohjaus toimii myös toisinpäin eli tiedostosta komennolle. Tällä ei ole yhtä usein käyttöä, kuin tiedostoonohjauksella. Uudelleenohjaus näin käytettynä ohjaa vain standarditulostusvirtaa. Jos halutaan ohjata virhevirtaa tarvitaan merkintää 2>. Jos halutaan ohjata sekä standarditulostus- että virhevirta yhtäaikaa, ohjataan tulostusvirta tiedostoon ja virhevirta tulostusvirtaan. Esim. ls -komennon tulostuksen ohjaus tiedostoon koe.txt: ls > koe.txt 2> &1 Ohjelman tai komennon tulostus voidaan ohjata myös toiselle ohjelmalle tai komennolle -merkillä. ls -l more tiedostolistaus menee näytön sijasta more -ohjelmalle (joka edelleen tulostaa näytölle sivu kerrallaan). Huom! ls -komennossa ei itsessään ole valitsinta, jolla sivuttain näyttö voitaisiin toteuttaa, joten putki on ainoa mahdollisuus. Samalla rivillä voi olla useita putkia. Tämä tekee käskyjen käytön monipuoliseksi, mutta toisaalta vaikeaselkoiseksi. zcat -dc pakkaus.tar.gz tar tvf - lpr tulostaa kirjoittimelle listan pakatun tiedoston sisältämistä tiedostoista. UNIX:n perusteet Juhani Merilinna 28
Ajastettu ohjelman suoritus at Joskus on tarpeellista suorittaa ohjelmia haluttuna ajankohtana. Tällaisia tilanteita on esim. paljon aikaa vievien ohjelmien suoritus yöllä, kun tietokoneen kuormitus on vähäistä varmuuskopioinnin suorittaminen säännöllisin väliajoin. at-komennolla voidaan suorittaa jokin komento haluttuna aikana. Komento suoritetaan vain kerran. at-komennon syntaksi on: at aikamääritys komento komento komento<cntl-d> Suoritettavia komentoja voi siis olla useita. Jokainen komento on omalla rivillään tai samalla rivillä puolipisteellä erotettuna. Komennot voivat olla mitä tahansa UNIX:n tuntemia komentoja tai ohjelmia. Aikamäärittely voidaan antaa monilla eri tavoilla: at now + 2 minutes kahden minuutin kuluttua at 13:05 kello 13:05 at noon keskipäivällä at 12.07.97 14:57 12. heinäkuuta 1997 klo 14:57 Määrittelyssä voi olla: sanat: now, noon midnight, teatime (klo 16:00), today, tomorrow kellonaika:hh:mm tai hhmm päiväys: pp.kk.vv tai kkppvv tai kk/pp/vv aikaviive: luku ja yksikkönä minutes, days weeks tai months at-komennon tarkkuus riippuu järjestelmän crontab-tiedoston asetuksista. Yleensä tarkkuus on 5 minuuttia. Kun tehtävä on ajallaan suoritettu, määrittelyt poistuvat ja yleensä toiminnasta lähetetään käyttäjälle sähköpostiviesti. atq-komennolla saa listan at-komennolla määritellyistä tehtävistä, jotka odottavat suoritusvuoroa. UNIX:n perusteet Juhani Merilinna 29
crontab atrm-komennolla voi poistaa tehtäviä, jos niitä ei ole ehditty suorittaa. atq-komennolla katsotaan ensin haluttu tehtävän numero ja annetaan tämä numero atrm-komennon parametrina. crontab-tiedostojen avulla voi suorittaa jonkin toiminnan säännöllisesti haluttuna aikana. Jokaisella käyttäjällä on oma crontab-tiedosto. Käyttäjä voi käsitellä vain omaa tiedostoaan. Pääkäyttäjän tiedosto on samalla koko järjestelmän crontabtiedosto. crontab tiedostoja voi muokata komennolla crontab e. Tällöin käynnistyy vi-editori, jolla muutokset tehdään. Tiedostoa voi muokata myös muilla editoreilla. Tällöin täytyy tietää tiedoston hakupolku. Esim. Linux:ssa crontab tiedostot ovat hakemistossa /var/spool/cron/crontabs. Tiedoston nimenä on käyttäjätunnus. crontab-tiedostossa on rivejä, joiden muoto on minuutit tunnit päivät kuukaudet viikonpäivät toiminta aika annetaan viitenä kenttänä, jotka erotetaan välilyönnillä. Toimintana voi olla yksi käsky. Jos halutaan monimutkaisia toimintoja on viisainta kirjoittaa shell script ja käynnistää tämä crontab:ssa. Syntaksia selventäviä esimerkkejä: 0 * * * * komento komento suoritetaan tasatunnein 5 10 4 jan * komento komento suoritetaan tammikuun 4. päivä kello 10:05 0,15,30,45 * * * * komento komento suoritetaan 15minuutin välein 0 8-16 * * * komento Komento suoritetaan tasatunnein klo 8 ja 16 välillä 0 10 * jun-aug * komento komento suoritetaan joka päivä kello 10:00 kesäkuusta heinäkuuhun 0 */2 * * * komento komento suoritetaan kahden tunnin välein 0 5 * * sun komento komento suoritetaan kello 5:00 sunnuntaisin 0 8 * jan-aug mon-fri komento UNIX:n perusteet Juhani Merilinna 30
komento suoritetaan klo 8:00 joka arkipäivä tammikuusta elokuuhun. Uusissa Linux-järjestelmissä käytetään hieman erilaista tapaa crontab -e komennon sijasta. /etc -hakemistossa on alihakemistot cron.daily, cron.weekly ja cron.monthly. Järjestelmä suorittaa näihin hakemistoihin laitetut ohjelmat kerran päivässä, viikossa tai kuukaudessa. Yleensä hakemistoon laitetaan shell script, joka suorittaa halutun toiminnan. UNIX:n perusteet Juhani Merilinna 31
Yleisimmät komennot alias at bg cat Seuraava lista ei ole läheskään kattava UNIX:n komentolista. Käytössä olevat komennot vaihtelevat jonkin verran eri UNIXversioilla. Komennot ovat pääosin /usr/bin, /bin, /usr/sbin ja / usr/sbin -hakemistoissa. Kaikilla komennoilla on useita valitsimia. Läheskään kaikkia valitsimia ei ole tässä esitetty. Useimmista komennoista on olemassa man komennolla luettava manuaalisivu. Lisäksi monista komennoista saa lyhyen opasteen valitsimen -h (vanha muoto) tai --help (uusi muoto) avulla. Muista komentoja käyttäessä, että iso ja pienet kirjaimet ovat eri asia. Luo komennolle aliaksen. Esim. alias dir= ls l luo uuden komennon dir, joka toimii samoin kuin ls l Komentojen suorittaminen ajastetusti. Komento suoritetaan vain kerran määrättynä aikana. (Kts. Ajastettu ohjelman suoritus) Käynnistää pysäytetyn ohjelman taustaprosessiksi. bg tarvitsee parametriksi ohjelman työnumeron. Työnumeron saa selville jobskomennolla. Työnumero ei ole sama kuin prosessinumero. Tulostaa näytölle. Yksinkertaisuudestaan huolimatta cat on paljon käytetty komento. cat koe.txt more tulostaa tiedoston näytölle sivu kerrallaan. cat tiedosto1 >> tiedosto2 lisää tiedosto1:n sisällön tiedosto2:n loppuun UNIX:n perusteet Juhani Merilinna 32
cat /dev/null > tiedosto tyhjentää tiedoston cd vaihtaa oletushakemistoa cd siirrytään käyttäjän kotihakemistoon cd /etc siirrytään /etc hakemistoon cd.. siirrytään yksi hakemisto ylöspäin. Huomaa välilyönti cd / siirrytään päähakemistoon chmod Muuttaa tiedoston tai hakemiston käyttöoikeuksia. Vain pääkäyttäjä tai tiedoston omistaja voi muuttaa oikeuksia. chmod-komentoa voi käyttää kahdella tavalla. Käyttöoikeudet annetaan joko lukuna tai kirjamina. Käyttöoikeus lukuna: chmod 754 koe.tiedosto muuttaa käyttöoikeudeksi 754. Luku muodostuu seuraavasti: ensimmäinen numero on omistajan oikeudet toinen samaan ryhmään kuluvien oikeudet kolmas muiden käyttäjien. numero saadaan laskemalla yhteen vastaavat oikeudet: 4 lukuoikeus (r) 2 kirjoitusoikeus (w) 1 suoritusoikeus (x) esim. 754: 7 = 4 + 2 + 1 eli omistajalla on kaikki oikeudet (rwx) 5 = 4 + 1 eli ryhmällä on luku ja suoritusoikeudet (r-x) 4 muilla on vain lukuoikeudet (r--) Käyttöoikeus kirjaimina: chmod g+r koe.txt Lisää lukuoikeuden samaan ryhmään kuuluville. u omistaja g omistajaryhmä o muut a kaikki ( sama kuin ugo ) UNIX:n perusteet Juhani Merilinna 33
r lukuoikeus w kirjoitusoikeus x suoritusoikeus + lisätään oikeus - poistetaan oikeus ylläolevia voi yhdistää: chmod ug+rw koe.txt Huom! Jos käyttöoikeus annetaan kirjaimina, lisätään tai poistetaan jonkun ryhmän käyttöoikeuksia. Jos käyttöoikeus annetaan lukuna, muutetaan tiedoston (tai hakemiston) kaikki käyttöoikeudet samalla kerralla. clear Tyhjentää näytön. cp crontab date df diff du kopioi tiedostoja tai hakemistoja valitsimia: -R kopioi myös alihakemistot -d kopioi symboliset linkit linkkeinä -p säilyttää käyttöoikeudet Suorittaa komentoja toistuvasti määrättyinä aikoina. (Kts. Ajastettu ohjelman suoritus) Näyttää tai asettaa päiväyksen ja kellonajan. Näyttää vapaan levytilan. Vertailee kahta (teksti-) tiedostoa ja tulostaa niiden eroavaisuudet. Näyttää hakemistojen viemän levytilan. du / UNIX:n perusteet Juhani Merilinna 34
näyttää päähakemistosta alkaen kaikkien hakemistojen viemän tilan. Lista on pitkä ja hidas! du -a näyttää myös tiedostot exit Poistuu komentotulkista. Käytännössä aiheuttaa uloskirjautumisen, jos käyttäjä ei ole käynnistänyt toista komentotulkkia. find etsii tiedostoja find /usr -name smb.conf etsii /usr-hakemistosta ja sen alihakemistoista tiedostoa jonka nimi on smb.conf. Tiedostoja voi nimen lisäksi hakea päiväyksen, omistaja ym. perusteella. find /home -user matti etsii kaikki tiedostot, joiden omistaja on matti. grep gunzip gzip head Etsii annettua merkkijonoa tiedostoista esim. grep passwd /etc/rc.d/* etsii merkkijonoa passwd kaikista /etc/rc.d-hakemiston tiedostoista. purkaa pakatun tiedoston. pakkaa tiedoston. Pakatun tiedoston nimi on alkuperäinen nimi jonka loppuun lisätään.gz gzip ei pakkaa useita tiedostoja yhteen vaan tiedostot pitää yhdistää ensin tar -komennolla. Näyttää (teksti-) tiedoston ensimmäiset kymmenen riviä UNIX:n perusteet Juhani Merilinna 35
id Tulostaa näytölle käyttäjätunnuksen, ryhmät, johon käyttäjä kuuluu, ja tunnuksia vastaavat luvut (UID- ja GID-luvut) last Näyttää viimeiset kirjautumiset. less locate Näyttää tekstitiedoston sisällön sivu kerrallaan. Huomattavasti monipuolisempi kuin more. Hyödyllisiä toimintoja: q poistuu less-ohjelmasta space sivu alaspäin return rivi alaspäin b sivu ylöspäin :n seuraava tiedosto, jos tiedoston nimessä on annettu korvausmerkkejä. Esim. less *.txt. :p edellinen tiedosto /merkkejä etsii merkkijonoa tiedostosta Monissa ympäristöissä toimivat myös nuolinäppäimet tiedoston selailussa. Etsii tiedostoa hakemistopuusta. Perustuu tietokantaan, joka luodaan komennolla updatedb. updatedb suoritetaan yleensä kerran vuorokaudessa automaattisesti. Siksi locate ei löydä uusia tiedostoja. Käytä find-komentoa etsiessäsi uusia tiedostoja. logout, exit, bye tai Ctrl-D lpr lpq Uloskirjautuminen. UNIX:a ei sammuteta, vaan käyttäjä kirjautuu ulos. Muut käyttäjät voivat jatkaa siten normaalisti. Tulostaa tiedoston kirjoittimelle. Käyttää /etc/printcap tiedoston asetuksia. Näyttää tulostusjonossa olevat tiedostot. UNIX:n perusteet Juhani Merilinna 36
lprm ls Poistaa tiedostoja tulostusjonosta. Parametriksi annetaan tulostettavan työn numero. ls ls ls /etc ls -l näyttää hakemiston sisällön näyttää oletushakemiston sisällön näyttää /etc -hakemiston sisällön näyttää hakemiston sisällön pitkässä muodossa: -rwxr-xr-x 2 root bin 25379 4.1.1994 arp tyyppi: - tavallinen tiedosto tai hard link l symbolic link d hakemisto c laitetiedosto b laitetiedosto Tiedoston nimi Päiväys tai kellonaika Koko (tavuina) Omistajaryhmä Omistaja Linkkien määrä Käyttöoikeudet Tyyppi ls -a näyttää myös piilotiedostot ( pistealkuiset tiedostot ) man Näyttää opastuksen, eli ns manuaalisivun, jostakin ohjelmasta tai komennosta. esimerkkiksi man cp näyttää manuaalisivun cp -komennosta. UNIX:n perusteet Juhani Merilinna 37
make mkdir more mv Manuaalisivut on jaettu ryhmiin. Ryhmiä on kahdeksan tai nykyisin usein yhdeksän. Samasta komennosta voi olla sivu useassa ryhmässä. Siksi käyttäjä voi määritellä, mistä ryhmästä hän haluaa sivu. man 1 cp näyttää cp-komennon manuaalisivun ryhmästä 1. Jos ryhmän numeroa ei määritellä man-komento näyttää ensin löytämänsä sivun. Manuaalisivun alussa kerrotaan aina, mistä ryhmästä sivu on. Valitsimella -k voidaan etsiä manuaalisivuja, joissa on viitattu johonkin aiheeseen. man -k iptables listaa manuaalisivut, joissa puhutaan iptables:iin. make on apuohjelma, jolla suoritetaan muita komentoja. make tarvitsee toimiakseen ohjaustiedoston. Tässä tiedostossa määritellään toiminnat, jotka make suorittaa. Tiedoston nimi on yleensä Makefile tai makefile. make-ohjelmaa käytetään pääasiassa ohjelmien kääntämiseen. Monet UNIX:lle tarkoitetut sovellusohjelmat toimitetaan C- kielisenä lähdekoodin. Lähdekoodin mukana toimitetaan Makefile, jonka avulla ohjelma voidaan kääntää. tekee uuden hakemiston Näyttää tekstitiedoston sisällön sivu kerrallaan. siirtää tiedoston (tai muuttaa tiedoston nimeä) mv koe.txt /home/matti/tekstit siirtää koe.txt tiedoston hakemistoon /home/matti/tekstit mv koe.txt uusi.txt muuttaa koe.txt -tiedoston nimeksi uusi.txt Useita tiedostoja voi siirtää yhtäaikaa, mutta tällöin kohteen on UNIX:n perusteet Juhani Merilinna 38
oltava hakemisto eli usean tiedoston uudelleen nimeäminen ei onnistu. Kokonaisia hakemistoja voi siirtää samalla tavalla. Tällöin kohteen täytyy olla samalla levyasemalla. nice passwd ps renice rmdir rm Muuttaa prosessin prioriteettia. Käytetään ohjelman käynnistyksessä. Ei muuta jo käynnissä olevan prosessin prioriteettia. Tavallinen käyttäjä voi vain pienentää prioriteettia. Muuttaa käyttäjän salasanaa. Pääkäyttäjä voi muuttaa kaikkien salasanoja. Muut käyttäjät voivat muuttaa vain omaa salasanaansa Näyttää käynnissä olevat ohjelmat (prosessit) ps -aux näyttää kaikki prosessit. Pelkka ps näyttää vain käyttäjän käynnistämät prosessit. Pienentää käynnissä olevan prosessin prioriteettia. poistaa tyhjän hakemiston Poistaa tiedostoja. rm *.txt poistaa kaikki tiedostot, joiden nimi loppuu.txt rm-komennolla voi poistaa myös hakemistoja -r valitsimen avulla. rm -r tekstit/* poistaa tekstit -hakemistosta kaiken. rm -r tekstit UNIX:n perusteet Juhani Merilinna 39
poistaa tekstit-hakemiston sisältöineen. rm -r / poistaa kaikki tiedostot järjestelmästä, jos sen antaa pääkäyttäjä sort Tulostaa rivit aakkosjärjestyksessä. su Vaihdetaan tilapäisesti käyttäjätunnusta. su matti vaihtaa käyttäjätunnukseksi matti, jolloin käyttöoikeuksiksi tulee matti-käyttäjätunnuksen käyttöoikeudet. Pelkkä su muuttaa käyttäjätunnukseksi root. tail Näyttää tekstitiedoston viimeiset kymmenen riviä tar (tape archive ) Yhdistää useita tiedostoja yhdeksi arkistointi-tiedostoksi. Tarkoitettu alunperin nauhavarmistuksia varten. tar-komennolla on useita valitsimia. Ensimmäisenä valitsimena on aina toiminto. Toimintoja voi olla mm: t c x r listaa arkiston sisältämät tiedostot luo uusi arkisto lue arkistosta tiedostoja lisää olemassa olevaan arkistoon Toiminnon lisäksi voi valitsimena olla mm: o tulostaa standardivirtaan z käyttää gzip-ohjelmaa pakkaamiseen v tulostaa näytölle tietoja ohjelman toiminnasta f tiedosto määrittelee arkiston nimen (oletusarvona on /dev/mt0 eli nauha-asema) M jos nauhalla tai levykkeellä ei ole tarpeeksi tilaa, jatkaa seuraavalle nauhalle tai levykkeelle. UNIX:n perusteet Juhani Merilinna 40
Esimerkkejä: gunzip -dc tiedosto.tar.gz tar xvvof tai tar xzf tiedosto.tar.gz purkaa pakatun tiedoston, joka sisältää useita tar-ohjelmalla yhdistettyjä tiedostoja..tar.gz tai.tgz tiedoston nimen lopussa tarkoittaa, että tiedosto on ensin tar -ohjelmalla yhdistetty ja sen jälkeen gzip:llä pakattu. gunzip -dc tiedosto.tar.gz tvf - listaa pakkauksen sisältämien tiedostojen nimet. tar cf paketti /etc kopioi kaikki /etc hakemiston tiedostot ja alihakemistot tiedostoineen paketti-nimiseen arkistotiedostoon. tar czf paketti.tar.gz /etc kuten edellinen, mutta pakkaa arkiston. tar c /etc tallettaa arkiston oletusnauha-asemalle. tar cmf /dev/fd0 /etc tallettaa arkiston ensimmäisessä levykeasemassa olevalle levykkeelle. Jos yksi levyke ei riitä, pyytää uusia levykkeitä tar czmf /dev/fd0 /etc kuten edellinen, mutta pakkaa arkiston tar tf arkisto listaa arkiston tiedostot tar xf arkisto palauttaa tiedostot arkistosta tar xmzf /dev/fd0 palauttaa usealle levykkeelle talletetun pakatun arkiston UNIX:n perusteet Juhani Merilinna 41
tiedostot tee touch tr uname wc whoami Käytetään uudelleenohjauksen sijasta. Ohjaa tulostuksen tiedoston lisäksi standarditulostusvirtaan. tee itsessään on komento, joten sille täytyy välittää data putken avulla. ls l tee lista ls-komento lähettää hakemistolistauksen putken avulla teekomennolle, joka ohjaa tulostuksen yhtä aikaa näytölle ja listanimiseen tiedostoon. touch-komennon alkuperäinen tarkoitus on muuttaa tiedoston päiväystä. touch tiedosto muuttaa tiedoston päiväykseksi ja kellonajaksi tämän hetkisen ajan. Jos tiedostoa ei ole, touch luo uuden tiedoston. Siten touch komentoa voi käyttää uuden tyhjän tiedoston luomiseen. Korvaa merkkejä. Esim: tr a A Korvaa kaikki pienet a-kirjaimet isoilla tr [a-z] [A-Z] Korvaa pienet kirjaimet isoilla Kertoo käyttöjärjestelmän nimen. uname -a kertoo enemmän tietoja, kuten käyttöjärjestelmän version. Kertoo tiedoston merkkien, sanojen ja rivien määrän. Tulostaa näytölle käyttäjätunnuksen, jolla on kirjauduttu järjestelmään. Katso myös id. UNIX:n perusteet Juhani Merilinna 42
prosessit PID Omistaja Prosessi on käynnissä oleva ohjelma. Huom! sama ohjelma voi olla käynnissä useita kertoja esimerkiksi, kun usea käyttäjä käyttää yhtä aikaa samaa ohjelmaa. Jokainen käynnistyskerta on oma prosessinsa. prosessilistan saa näkyviin ps-komennolla. Jokaisella prosessilla on numero PID, jonka avulla käyttöjärjestelmä erottelee prosessit toisistaan. PID-numeroa tarvitaan, jos prosessi halutaan lopettaa tai lähettää sille jokin signaali. Prosessinumeron saa selville ps-komennolla. Jokaisella prosessilla on omistaja. Yleensä omistaja on prosessin käynnistänyt käyttäjä. Normaalikäyttäjä voi käsitellä vain omia prosessejaan. Prioriteetti Signaalit Prosessilla on prioriteetti. Yleensä prioriteettia ei määrätä eikä muuteta. Jonkin kauan kestävän ohjelman prioriteettia voi muuttaa pienemmäksi, jotta ne eivät haittaisi muita prosesseja. Esim. kauan kestävä kopiointi voidaan laittaa toimimaan taustalla pienellä prioriteetilla. Prioriteettia voi pienentää käynnistyksen yhteydessä nicekomennolla tai käynnissä olevan prosessin prioriteettia renicekomennolla. Prosessille voi lähettää signaaleja kill-komenolla. Eri signaalien vaikutus riippuu ohjelmasta. Kaikkien prosessien pitäisi loppua SIGSTOP ja SIGKILL UNIX:n perusteet Juhani Merilinna 43
-signaaleilla. SIGSTOP-signaali aiheuttaa hallitun prosessin loppumisen. Toisaalta, jos prosessi on seonnut, SIGSTOP ei aina riitä. SIGKILL -signaali aiheuttaa varmemmin prosessin loppumisen kuin SIGSTOP. Toisaalta loppuminen ei aina ole yhtä hallittua. Muiden signaalien vaikutus riippuu ohjelmasta, joka on käynnistetty prosessiksi. Monet ohjelmat lukevat asetustiedostonsa tai aloittavat toimintansa alusta, kun niille lähetetään SIGHUPsignaali. kill -HUP 2345 lähettää signaalin SIGHUP prosessille, jonka PID on 2345. Taustaprosessit Prosessi voi toimia taustalla tai edustalla. Yleensä vain yksi prosessi kerrallaan voi toimia edustalla yhdessä merkkipohjaisessa päätteessä. Edustalla oleva prosessi kuuntelee näppäimistöä. Taustalla oleva prosessi ei vastaa näppäimistöön. Graafisessa (tai oikeammin ikkunoidussa) käyttöliittymässä voi olla useita prosesseja edustalla. Sielläkin kuitenkin vain yksi prosessi kerrallaan voi kuunnella näppäimistöä. Ohjelman saa toimimaan taustaprosessina, kun käynnistettäessä kirjoitetaan rivin loppuun &-merkki. Esim. cp -R * /mnt & aiheuttaa, että kopiointi tapahtuu taustalla. Monet ohjelmat voi pysäyttää Cntl-Z -näppäilyllä. Sen jälkeen ne voi käynnistää taustalle bg-komennolla. Taustalla olevan prosessin saa edustalle fg (fore ground) -komennolla. UNIX:n perusteet Juhani Merilinna 44
Esim. jed -tekstieditorin voi pysäyttää painamalla Cntl-Z. Tällöin palataan komentotulkiin. Takaisin editoriin pääsee fg-komennolla. Huom! jos ohjelmasta on poistunut tilapäisesti ja shell:n komentorivillä käynnistää ohjelman nimellä (esim. jed), sama ohjelma on käynnissä kaksi kertaa eli kahtena eri prosessina. Katso välillä ps-komennolla, ettei näin ole käynyt. Käyttöjärjestelmästä uloskirjautuminen ei onnistu, jos käyttäjällä on prosesseja toimimassa taustalla. Taustalla olevat prosessit voi listata jobs-komennolla. jobs näyttää myös taustaprosessin järjestysnumeron (eri kuin prosessin PID). Jos käyttäjä on siirtänyt useita ohjelmia taustalle, niistä saa halutun edustalle komennolla fg <järjestysnumero> daemon-prosessit Daemon on prosessi, jolla ei ole varsinaista omistajaa, eikä se käytä mitään päätettä. Tälläisiä ovat esimerkiksi verkkoliitäntää kuuntelevat ohjelmat. Käynnistyssekvenssi ja asetustiedostot Ensimmäisenä käynnistyy UNIX:n ydin (kernel). Monet asetukset on määritelty ytimen luonnin yhteydessä. Siten asetusten muuttaminen vaatii koko ytimen kääntämistä uudelleen. Esimerkiksi verkkokortin ohjain ja eri verkkoprotokollat ovat usein tälläisiä asetuksia. Ytimen uudelleen kääntämiseen tarvitaan sen lähdekoodi ja C-kääntäjä. Uusissa UNIX-versioissa voi joitakin ohjaimia asentaa myös moduleina. Tällöin ydintä ei tarvitse kääntää uudelleen. UNIX:n perusteet Juhani Merilinna 45