LINUX. ja UNIX. pikaopas



Samankaltaiset tiedostot
Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 3. Timo Savola. 7. huhtikuuta 2006

Komentotulkki. Kysymyksiä

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Luento 2. Timo Savola. 31. maaliskuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006

Julkaiseminen verkossa

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Korpusten käsittely clt131, P Luento 4

Komentotulkki (SHELL) C- "perhe" - csh, alkup. C shell. Komentokieli. kieltä. - tcsh - edellisen laajennettu versio

Unix-perusteet. Tiedosto-oikeudet

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

Metropolia Ammattikorkeakoulu

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Sisällys. Johdatus Linux/Unixiin: Osa 2. Prosessin tilat. Prosessien hallinta. Prosessien monitorointi

Unix. Markus Norrena

Linux-virtuaalipalvelimen ylläpito

Korpusten käsittely clt131, P Luento 5

Kieliteknologian ATK-ympäristö Toinen luento

Simulaattorin asennus- ja käyttöohje

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 2: Linux

Unix-perusteet. Varmistaminen, tiedon pakkaaminen ja tiivistäminen

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Päivitys käyttäen USB-tikkua

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Ohjelmoinnin perusteet Y Python

Linux - käyttöoikeudet

Unix-kurssi, harjoitustehtävät

Ubuntu - tiedostohallinta

Hakemistojen sisällöt säilötään linkitetyille listalle.

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

Julkaiseminen verkossa, esitysgrafiikkaa (laitteistosta, tietotekniikka ja tulevaisuus) H9T1: Tiedostojen vienti internetiin

Unix-perusteet. Tulostaminen

Tiedostojen siirto ja FTP - 1

Unix-kurssi, harjoitustehtävät

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kieliteknologian ATK-ympäristö Neljäs luento

DOORSin Spreadsheet export/import

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

SSH Secure Shell & SSH File Transfer

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

Asteri Vuokrankanto (Dos) Vuosipäivitys

Johdatus Ohjelmointiin

UCOT-Sovellusprojekti. Asennusohje

Sisällys. Johdatus Linuxiin/Unixiin: Osa 4. Arkistointi ja pakkaus. Hakemistojen ja tiedostojen arkistointi ja pakkaus.

Varmuuskopiointi: image

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

Sekalaisia selvennyksiä

Asennusohjeet HIITed palvelun asentamiseen

Jäsenrekisteri (dos) Kirjuri tekstinkäsittely Vuosipäivitys

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

2 Konekieli, aliohjelmat, keskeytykset

Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta.

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Kortinhaltijat joilla on maksukeskeytys Maksuryhmään liitettyjen kortinhaltijoiden lukumäärä, joiden maksut ovat tilapäisesti keskeytetty.

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

linux: Ympäristömuuttujat

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna.

KAAVAT. Sisällysluettelo

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

erasmartcardkortinlukijaohjelmiston

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Komentorivin perusteet

Ohjelmoinnin perusteet Y Python

Tiedostonhallinta. Yleistä

Lyseopaneeli 2.0. Käyttäjän opas

Asteri Ostoreskontra (Dos)

Invalidiliiton Järvenpään koulutuskeskus. KOMENTORIVI JA KOMENNOT Windows- ja Linux-ympäristöissä

OpenOffice toimisto-ohjelma

LINUX-HARJOITUS, MYSQL

Tehtävä: FIL Tiedostopolut

PERUSTEET. by Juhani Merilinna

Elisa Puheratkaisu Vakio Pääkäyttäjän ohjeet

MITÄ JAVASCRIPT ON?...3

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

4. Lausekielinen ohjelmointi 4.1

VERKKOVELHO-YLLÄPITOTYÖKALUN KÄYTTÖOHJE

Tikon tilaustenkäsittely ja Laskutus

YHTEYDEN OTTAMINEN CSC:N KONEELLE HIPPU

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa)

Ohjelmoinnin perusteet Y Python

MixW ja Dx-vihjeet (ohje) oh3htu

Harjoitus 5 (viikko 41)

Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen.

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Asteri Ostoreskontra (Dos)

Octave-opas. Mikä on Octave ja miksi? Asennus

Perusohje vi-editorin käyttöön

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Transkriptio:

LINUX ja UNIX pikaopas

i 2004 Jukka Keto. Tätä dokumenttia saa vapaasti jakaa ja kopioida sähköisessä muodossa vastikkeetta. Kaupalliset julkaisuoikeudet pidätän itselläni. LINUX on Linus Torvaldsin rekisteröity tavaramerkki. UNIX on The Open Groupin rekisteröity tavaramerkki. LINUX pingviini on Larry Ewingin, lewing@isc.tamu.edu, tekemä.

ii Sisältö 1 Johdanto... 1 2 Historiaa... 2 3 Yleistietoutta... 3 3.1 hakemistorakenne... 3 3.2 levyt ja partitiointi... 4 3.3 inode... 5 3.4 verkkomääritys... 6 3.5 nimipalvelimet... 7 4 Asetukset... 8 4.1 Konekohtaiset... 8 4.1.1 /etc/issue -tervetuloa ilmoitus... 8 4.1.2 /etc/motd - tänään tapahtuu... 8 4.1.3 /etc/profile - sh,bash asetukset... 8 4.1.4 /etc/skel - uusien käyttäjien hakemistopohja... 9 4.2 Käyttäjäkohtaiset... 9 4.2.1.profile - sh,ksh,bash asetustiedosto... 9 4.2.2.bashrc,.kshrc - asetustiedostot... 10 4.3 Muuttujat... 12 4.3.1 LANG - locale kieliasetus... 12 4.3.2 PATH - suorituspolku... 13 4.3.3 TZ - aikavyöhykeasetus, kesäaika... 14 4.3.4 Erikoismuuttujat $?, $$, $1, $#, $0 ja $*... 14 5Peruskomennot...17 5.1 komentojen anatomia... 17 5.2 ; - komentoerotin... 18 5.3 ( ) - komentojen ryhmittely... 18 5.4 \ - merkityksen kumoaminen... 18 5.5 - putkitus... 19 5.6 0,1,2 - tiedostot... 19 5.7 > ja >> - tulostus tiedostoon... 20 5.8 < ja << - syöte tiedostosta... 20 5.9 # - kommentti... 21 5.10 : - polkuerotin... 21 5.11 `komento` ja $(komento) - muuttujanasetukset... 22 5.12& - taustalle käynnistys ja hallinta... 22 5.13 alias - komennon aliasiointi... 23 5.14 awk - tekstinkäsittelykieli... 23 5.15 basename - polusta tiedoston nimi... 24

iii 5.16 bc - tekstipohjainen laskin... 25 5.17 chmod - tiedoston oikeuksien vaihto... 25 5.18 chown - tiedoston omistus... 27 5.19 cut - tekstirivin viipalointi... 28 5.20 dd - tiedoston muunnos ja kopiointityökalu... 29 5.21 dirname - polusta hakemiston nimi... 30 5.22 du - levykäytön laskenta... 30 5.23 df - levykäytön laskenta... 31 5.24 diff - tiedostoerojen tulostus... 32 5.25 dig, host ja nslookup - IP selvittelytyökalut...32 5.26 env, set, export, unset - muuttujien käsittelyt... 32 5.27 exec - suoritus... 34 5.28 fsck - tiedostojärjestelmän korjaus... 34 5.29 file - tiedoston tyypin selvitys... 35 5.30 find - etsintätyökalu... 35 5.31 fmt - tekstin muotoilu työkalu... 37 5.32 grep - rivihaku... 37 5.33 head - tiedoston alun tulostus... 38 5.34 history - komentohistoria... 39 5.35 hostname - koneen nimen selvitys... 39 5.36 id - kuka olet... 39 5.37 kill - signalointikomento... 41 5.38 less - tiedoston selaaja... 42 5.39 ln - tiedostojen linkitys... 42 5.40 locale - kielisyysasetukset... 43 5.41 ls - tiedostolistaus... 44 5.42 man - ohjeiden tulostus... 45 5.43 mkdir - hakemiston teko... 47 5.44 more - tiedoston selaa... 48 5.45 mtools - levykekomentoja... 48 5.46 mount ja umount - levykomennot... 48 5.47 mv - uudelleenimentä... 50 5.48 netstat - mitä verkkopalveluja käynnissä?... 51 5.49 nice ja renice - priorisoinnit... 52 5.50 nohup - tee ohjelmasta immuuni... 52 5.51 od - dumppaaja... 53 5.52 passwd - salasanan vaihto... 54 5.53 ps - prosessilistaus... 54 5.54 perl - pieni ohjelmointi kieli... 55 5.55 rm - tiedoston poisto... 56 5.56 rmdir - hakemiston poisto... 57 5.57 sed - putkieditori... 57

iv 5.58 sh - komentotulkki... 58 5.59 shutdown - koneen sammutus... 59 5.60 stat - tiedoston tiedot... 61 5.61strings - merkkien tulostus... 61 5.62 sort - järjestykseen panija... 62 5.63 split - tiedoston halkoja... 63 5.64 sleep - nukkuja... 64 5.65 su - henkilönvaihtaja... 64 5.66 tail - lopun tulostaja... 65 5.67 tar - nauhavarmistusohjelma... 65 5.68 time - komennon suoritusajan mittaus... 67 5.69 tee - putken haaroittaja... 67 5.70 top - prosessorin kuorman esittäjä... 67 5.71 tr - merkkien kääntäjä... 68 5.72 type, which - komennon selvittäjät... 69 5.73 unzip - zip lukija... 69 5.74 unset - muuttujan poisto... 70 5.75 uptime - käyttöaika... 70 5.76 uname - perustietojen tulostus... 71 5.77 umask - oletus oikeudet... 72 5.78 vi - editoreista paras... 73 5.79 vmstat - muistinkäytön selvittelijä... 76 5.80 wc - rivimäärän laskin... 76 5.81 xargs - argumenttien kasvattaja... 77 5.82 yacc - yet another compiler compiler...77 5.83 zip - pakkaaja... 78 6 X asetustiedostot... 79 6.1 Konekohtaiset... 79 6.1.1 /usr/lib/x11/xinit/xinitrc - aloituskomennot... 80 6.1.2 /usr/lib/x11/app-defaults/xterm - asetustiedosto... 80 6.2 Käyttäjäkohtaiset... 82 6.2.1.xinitrc - käynnistyskomennot... 82 6.2.2.Xdefaults - käyttäjän asetukset... 82 6.3 DISPLAY - asetus... 84 7 X komentoja...85 7.1 xev - X eventit... 85 7.2 xhost - oikeuksien käsittely... 85 7.3 xlsfonts - fonttiluettelo... 86 7.4 xmodmap - näppäinten asetuskomento... 86 7.5 xprop - asetusten tulostus... 87 7.6 xterm - pääteikkuna... 87 8 Loppusanat... 89

v

Komennot tehtävän mukaan luokiteltuina vi Apuohjelmat bc - tekstipohjainen laskin... 25 id - kuka olet... 39 less - tiedoston selaaja... 42 man - ohjeiden tulostus... 45 more - tiedoston selaa... 48 wc - rivimäärän laskin... 76 xterm - pääteikkuna... 87 Asetustiedoissa alias - komennon... 23 DISPLAY - asetus... 84 locale - kielisyysasetukse... 43 sh - komentotulkki... 58 unset - muuttujan poisto... 70 Erikoismerkit `komento` ja $(komento) - muuttujanasetukset... 22 ; - komentoerotin... 18 : - polkuerotin... 21 ( ) - komentojen ryhmittely... 18 \ - merkityksen kumoaminen... 18 # - kommentti... 21 > ja >> - tulostus tiedostoon... 20 - putkitus... 19 Koneen hallinta shutdown - koneen sammutus... 59 uname - perustietojen tulostus... 71 uptime - käyttöaika... 70 vmstat - muistinkäytön selvittelijä... 76 xev - X eventit... 85 xhost - oikeuksien käsittely... 85 xmodmap - näppäinten asetuskomento... 86 Käyttäjähallinta passwd - salasanan vaihto... 54 su - henkilönvaihtaja... 64 Levyhallinta df - levykäytön laskenta... 31 du - levykäytön laskenta... 30 fsck - tiedostojärjestelmän korjaus... 34 mount ja umount - levykomennot... 48 Ohjelmointi

vii < ja << - syöte tiedostosta... 20 0,1,2 - tiedostot... 19 awk - tekstinkäsittelykieli... 23 basename - polusta tiedoston nimi... 24 cut - tekstirivin viipalointi... 28 dirname - polusta hakemiston nimi... 30 env, set, export, unset - muuttujien käsittelyt... 32 exec - suoritus... 34 perl - pieni ohjelmointi kieli... 55 tee - putken haaroittaja... 67 yacc - yet another compiler compiler...77 Suorituksen hallinta & - taustalle käynnistys ja hallinta... 22 bg... 23 fg... 23 history - komentohistoria... 39 kill - signalointikomento... 41 nice ja renice - priorisoinnit... 52 nohup - tee ohjelmasta immuuni... 52 ps - prosessilistaus... 54 sleep - nukkuja... 64 time - komennon suoritusajan mittaus... 67 top - prosessorin kuorman esittäjä... 67 type, which - komennon selvittäjät... 69 xargs - argumenttien kasvattaja... 77 xprop - asetusten tulostus... 87 Tiedoston muokkaus dd - tiedoston muunnos ja kopiointityökalu... 29 diff - tiedostoerojen tulostus... 32 fmt - tekstin muotoilu työkalu... 37 grep - rivihaku... 37 head - tiedoston alun tulostus... 38 od - dumppaaja... 53 sed - putkieditori... 57 sort - järjestykseen panija... 62 split - tiedoston halkoja... 63 strings - merkkien tulostus... 61 tail - lopun tulostaja... 65 tr - merkkien kääntäjä... 68 vi - editoreista paras... 73 Tiedostonkäsittelyt chmod - tiedoston oikeuksien vaihto... 25

viii chown - tiedoston omistus... 27 file - tiedoston tyypin selvitys... 35 find - etsintätyökalu... 35 ln - tiedostojen linkitys... 42 mkdir - hakemiston teko... 47 mtools - levykekomentoja... 48 mv - uudelleenimentä... 50 rm - tiedoston poisto... 56 rmdir - hakemiston poist... 57 s - tiedostolistaus... 44 stat - tiedoston tiedot... 61 tar - nauhavarmistusohjelma... 65 umask - oletus oikeudet... 72 unzip - zip lukija... 69 zip - pakkaaja... 78 Verkkotyökalut dig, host ja nslookup - IP selvittelytyökalut...32 hostname - koneen nimen selvitys... 39 netstat - mitä verkkopalveluja käynnissä?... 51

ix

1 1 Johdanto Tämä opas esittelee joukon päivittäisessä käytössä käyttämiäni UNIX- ja LINUX -järjestelmien asetustiedostoja, komentoja ja jonkin verran yleistietoutta. Olen ottanut mukaan eniten käyttämäni komennot, kuitenkin ilman LINUX painotusta. Suurin osa ohjeista soveltuukin useisiin UNIX ympäristöihin.

2 2 Historiaa Miksi UNIX järjestelmästä tuli sellainen kuin se on? Vuonna 1969 UNIX järjestelmä koodattiin erään Multics -järjestelmässä toimineen avaruuspelin vaihtoehtoiseksi pelialustaksi. Alkuperäinen järjestelmä koodattiin assembler -kielellä DEC:n PDP-7 koneeseen. Vuonna 1970 Dennis Richie ehdotti syntyneelle käyttöjärjestelmälle UNIX nimeä eräänlaisena Multics -projektin sanaleikkinä. Unix oli syntynyt! Lähde: Dennis M. Richie, 1979, The Evolution of the Unix Time-sharing System, http://cm.belllabs.com/cm/cs/who/dmr/hist.html. Ensimmäinen LINUX järjestelmän versio numeroltaan 0.01 julkaistiin 1.8.1991 (Éric Lévénez, 2004, http://www.levenez.com/ unix/).

3 Yleistietoutta 3 UNIX järjestelmien rakenteessa ja sisällössä on muutamia yhteneväisiä perusperiaatteita. Tässä luvussa on lueteltu niistä mielestäni tärkeimmät. 3.1 hakemistorakenne UNIX järjestelmissä on aina sama hakemistorakenne. Tässä lueteltuna muutama tärkeimmistä hakemistoista: /etc # Konfiguroinnit /dev # Kaikki laitteet! Jees, laitteet # ovat tiedostoja /home # Käyttäjien kotihakemistot /var/log # Kaikki automaattisesti kasvavat # LOG tiedostot /lib # Kirjastot /usr /usr/bin /usr/sbin # Asennetut käyttöjärjestelmän # ohjelmat /opt /usr/local # Asennetut lisäohjelmat, # kaupalliset tai muut. Vinkit Levyillä ja/tai partitioilla olevat tiedostojärjestelmät mountataan kiinni hakemistopuuhun. Mihin kohtaan? Sen näkee df ja mount komennoilla.

4 Käynnistymisen yhteydessä liitettävät levyt ja niiden paikat hakemistopuussa talletetaan /etc/fstab tiedostoon. 3.2 levyt ja partitiointi LINUX ja UNIX järjestelmissä levyjä voidaan käyttää kahdella tavalla: perinteisellä ja loogisen levykäsittelyn kautta. Kuvassa 1 esitetään perinteisen levyjen partitiointikäytännön mukainen levykäyttö. Ensin levy partitioidaan normaalisti, asennuksen yhteydessä tai parted ohjelmalla. Partitioinnin jälkeen levyn osat /dev/hda1 ja /dev/hda2 alustetaan mkfs komennolla eli partitiolle tehdään tiedostojärjestelmä, joka liitetään osaksi hakemistohierarkiaa mount komennolla..profile /home /opt /dev/hda1 /dev/hda2 levy /dev/hda Kuva 1 Perinteinen partitiointi Kuva 2 esittää saman rakenteen kun käytetään loogista levykäsittelyä. Looginen levykäsittely (lvm - Linux Logical Volume Manager) on saatu LINUX järjestelmiin mukaan kaupallisista UNIX järjestelmistä..profile /home /opt /dev/vg00/lv01 /dev/vg00/lv02 levyryhmä /dev/vg00 levy /dev/hda levy /dev/hdb Kuva 2 Loogiset levyt

5 Loogisen levynkäsittelyn ansioista looginen partitio voi olla suurempi kuin fyysinen levy ja voi sijaita fyysisesti yhdellä tai useammalla levyryhmään kuuluvalla levyllä. Levyt liitetään levyryhmään alustamalla ne lvm käyttöä varten pvcreate komennolla. Alustetuista levyistä muodostetaan levyryhmä vgcreate komennolla. Levyryhmä viipaloidaan loogisiksi partitioiksi lvcreate komennolla jonka jälkeen loogiseen partitioon tehdään tiedostojärjestelmä kuten normaalisti. Tiedostot ovat aina tiedostojärjestelmän sisällä. 3.3 inode Kaikkien UNIX tiedostojärjestelmien perusta. Jokaiselle tiedostolle (ja hakemistolle) varataan yksi inode -tieto tiedostojärjestelmän sisäisestä rakenteesta. inode sisältää tiedoston oikeudet, koon, osoitteen levyllä olevaan tiedoston sisältöön ja tiedoston aikaleimat. Tiedostojärjestelmän sisällä inodet ovat numeroitu yksilöivästi. Samoja numeroita löytyy kuitenkin eri tiedostojärjestelmistä. Tiedostolle varatun inode numeron saat selville ls -komennon -i -tarkenteella tai stat komennolla. Esimerkit touch testi.txt # Tehdään ensin tyhjä testitiedosto ls -li testi.txt # Otetaan pitkä listaus. Ensimmäinen # sarake on inode numero. Tulostuu: 449541 -rw-rw-r-- 1 jketo...jne... stat testi.txt

6 Vinkki inode alkio ei sisällä tiedoston nimeä. Tiedoston nimi on talletettu hakemistotiedostoon joka sisältää vain tiedoston nimen ja inode numeron. 3.4 verkkomääritys Verkkomäärityksiin käytettävät tiedostot vaihtelevat vähän LINUX järjestelmästä toiseen. Yleensä koneen IP numerona on /etc/hosts tiedostoon määritetty koneen nimen kohdalle talletettu IP numero. Esimerkki Tiedostossa oltava FQDN (Fully Qualified Domain Name) ensimmäisenä ja lyhyt nimi sitten: 127.0.0.1 localhost 192.168.0.3 muuli.keto.jns muuli Vinkit Jotkin järjestelmät toimivat asennusvaiheessa täysin väärin joten tämä tiedosto on syytä aina tarkistaa asennuksen jälkeen. Kotiverkoille varatut IP osoiteavaruudet ovat (RFC 1918): 10.0.0.0-10.255.255.255 (10.0.0.0/8) 192.168.0.0-192.168.255.255 (192.168.0.0 / 16) 172.16.0.0-172.31.255.255.255 (172.16.0.0 / 12) Näitä IP osoitteita ei saa olla julkisessa verkossa.

3.5 nimipalvelimet 7 Koneiden nimet selvitetään /etc/resolv.conf tiedostoon määriteltyjen nimipalvelimien ja /etc/hosts tiedoston kautta: Esimerkki cat /etc/resolv.conf # Kotikoneen määritykset domain keto.jns # Kotiverkko nameserver 192.168.0.1 # NS 1 nameserver 192.168.0.20 # NS 2 Vinkit Selvitysjärjestys nimipalvelu, hosts tai ensin hosts, sitten nimipalvelu määrätään /etc/nsswitch.conf tiedostossa.

4 Asetukset 8 UNIX järjestelmissä asetustiedostoilla määrätään koko järjestelmän ja ohjelmien peruskäyttäytyminen. Asetukset ovat yleensä konekohtaisia tai käyttäjäkohtaisia ympäristömuuttujia. 4.1 Konekohtaiset Konekohtaiset asetukset löytyvät kaikista UNIX järjestelmistä /etc hakemistosta tai sen alihakemistoista. Jos asetustiedosto ei historiallisista syistä ole /etc hakemistossa suurin osa nykyjärjestelmistä tekee tänne kuitenkin hakemistolinkin oikeaan paikkaan. 4.1.1 /etc/issue -tervetuloa ilmoitus issue tiedosto tulostetaan aina kun kirjaudut UNIX koneelle tekstipohjaisella liittymällä, telnet, ssh tai konsoli. Yleensä tiedosto sisältää yksirivisen lyhyen tervetuloviestin, järjestelmän nimen, versionumeron ja koneen tyypin. 4.1.2 /etc/motd - tänään tapahtuu motd tiedosto sisältää root käyttäjän tekemän lyhyen päiväkohtaisen viestin käyttäjille. Tulostus tapahtuu samoin kuin issue tiedoston osalta. 4.1.3 /etc/profile - sh,bash asetukset Tästä löydät konekohtaiset kaikille käyttäjille yhteiset ympäristömuuttujien asetukset ja muut perusasetukset. Jotkin LINUX järjestelmät päällekirjoittavat tämän tiedoston järjestelmän päivityksessä ja suosittelevat profile.local tiedoston käyttöä omia konekohtaisia määrityksiä varten. Normaalisti kosken tähän tiedostoon vain palvelinkoneilla. Työasemakonetta käyttäessäni

9 teen muutokset aina käyttäjäkohtaisiin asetustiedostoihin. Tyypilliset asetukset: 1. Päätetyypin määrittäminen ja päätteen koon asetukset. 2. Perusympäristömuuttujien asetukset: HOSTNAME,LOGNAME, USER, UID jne. 3. Tiedostonkäsittelyn rajoitusten asettaminen ulimit komennolla. 4. Komentojen suorituspolun PATH perusasetus. 5. Manuaalisivujen hakupolun MANPATH perusasetus. 6. Tekstikomennoille aikavyöhykeasetus TZ (katso TZ). Kannattaa asettaa tämä profile.local tiedostoon. 4.1.4 /etc/skel - uusien käyttäjien hakemistopohja. Tämän hakemiston sisältö kopioidaan aina sellaisenaan uusille järjestelmään lisättäville käyttäjille. skel -hakemisto toimii siis mallipohjana käyttäjiä lisättäessä. Hakemisto sisältää aina joukon. -alkuisia piilotiedostoja jotka myöskin kopioidaan käyttäjälle 4.2 Käyttäjäkohtaiset Käyttäjäkohtaiset asetustiedostot ovat aina käyttäjän kotihakemistossa piilotiedostoina. Käyttäjän asetustiedostojen nimet siis aloitetaan pisteellä, joka piilottaa ne normaalista ls - hakemistolistauksesta. Lisäparametrilla -a saat piilotiedostot esille: ls -a. 4.2.1.profile - sh,ksh,bash asetustiedosto Tämä asetustiedosto on käytössä silloin kun

10 komentotulkki käynnistetään kirjautumisen yhteydessä tai login -tilassa komentoriviltä. Tyypilliset asetukset: 1. LANG muuttujalla asetetaan peruskieleksi Suomi. 2. PATH lisähakemistot. Yleisimmin käyttäjän omia komentoja varten kotihakemistoon tekemä bin hakemisto. 3. Sovelluskohtaiset käyttäjän asetukset: export JAVA_HOME=/opt/j2sdk_1.4.1 bash -komentotulkille on oma.bash_profile tiedosto joka toimii samalla tavalla kuin.profile -tiedosto. Suosittelen kuitenkin vain.profile -tiedoston muokkaamista. 4.2.2.bashrc,.kshrc - asetustiedostot Nämä komentotulkkikohtaiset tiedostojen asetukset läpikäydään aina silloin kun komentotulkki käynnistetään ilman login -tilaa ja aina ennen jokaisen komennon suoritusta! Kaikki UNIX komentotulkit ajavat komentoja siten että, ensin alkuperäinen komentotulkki kloonataan fork järjestelmäkutsulla, sitten kloonattu kopio korvataan exec järjestelmäkutsulla uudella komentotulkilla. Uusi komentotulkki suorittaa käynnistyessään ensin kaikki.bashrc tiedoston asetukset ja komennot, sitten vasta suoritettavan komennon. Jos haluat muttaa suoritettavan tiedoston nimeä oletuksesta onnistuu se esittämällä tiedoston nimi ENV ympäristömuuttujana:

11 ENV= $HOME/oma_systeemi export ENV Vinkki Voit testata toiminnan laittamalla tiedostoon komennon : echo taas tehtiin

4.3 Muuttujat 12 Muuttujilla ohjataan UNIX järjestelmien käyttäytymistä. Muuttujia on kahta tyyppiä: tavallisia ja ympäristömuuttujia. Ympäristömuuttujat periytyvät kaikille ohjelman lapsille. Tavallisiin muuttujiin voi viitata vain samassa komentotulkissa (komennossa). Muuttujasta tehdään ympäristömuuttuja export komennolla. Ympäristömuuttujaa ei voi palauttaa tavalliseksi muuttujaksi. Tässä kohdassa esittelen muutaman komentotulkkia ja komentojen suoritusta eniten ohjaavan ympäristömuuttujan. 4.3.1 LANG - locale kieliasetus LANG muuttujalla ohjataan komentojen tulostamien päivämäärien, kellonaikojen muotoiluja ja mm. käytettävää aakkostusta nk. locale tuen puitteissa. Esimerkit LANG=fi_FI.iso885915@euro # Määritellään Suomen kielen asetus # päälle se. komentotulkki hyväksyy # ISO-8895-15 merkistön lisättynä # euro merkillä. date # tuloksena su maalis 7 11:55:26 EET 2004 Vinkki Käytettävissä olevat asetukset listataan locale -a komennolla. Valitettavasti kaikkia ohjelmistoja ei ole rakennettu locale tuen mukaisesti joten ne eivät välttämättä tottele LANG asetusta. Joskus LANG asetus tuottaa suoritusongelmia

13 ohjelmissa jotka eivät tue LANG -kieliympäristöä. Silloin kannattaa laittaa väliaikaisesti C -kieli päälle. varm= $LANG ; LANG=C ; ohjelmasi ; LANG= $varm 4.3.2 PATH - suorituspolku Sisältää komentotulkkien komentojen hakupolut. Hakupolut läpikäydään tämän muuttujan määräämänä vasemmalta oikealle. Komentotulkki hakee jokaisesta muuttujaan kirjoitetusta hakemistosta suoritettavaa komentoa ja suorittaa ensimmäisen suorituskelpoisen ohjelman jonka löytää. Polkujen erottimena käytetään UNIX ympäristöissä kaksoispistettä :. root - pääkäyttäjän komentopolussa oleva piste. muodostaa tietoturvariskin troijalaisen hevosen muodossa. Piste viittaa tämänhetkiseen sijaintiin jolloin murtautuja kirjoittaa yhteiseen /tmp hakemistoon korvaavan komennon mille tahansa yleisesti käytettävälle komennolle, esim.: ls, jonka pääkäyttäjä todennäköisesti suorittaa joskus tulevaisuudessa tuossa hakemistossa. Pääkäyttäjä kuvittelee suorittavansa tavallisen ls -komennon mutta suorittaakin, skriptin jolla murtautuja saa itselleen helposti pääkäyttäjän oikeudet.

14 4.3.3 TZ - aikavyöhykeasetus, kesäaika Kesäajan eurooppalainen EU asetus kuuluu: Kesäaika alkaa maaliskuun viimeisenä sunnuntaina ja päättyy lokakuun viimeisenä sunnuntaina. Kesäaikaan siirrytään klo. 03:00, jolloin siirretään kelloa tunnilla eteenpäin. Talviaikaan siirryttäessä klo. 04:00 siirretään kelloa tunnilla taaksepäin. Talviaika on normaalia aikaa. Esimerkki TZ=EET-2EET,M3.5.0/03:00:00,M10.5.0/04:00:00 # Kaikki samalla rivillä # M3.5.0 = maalikuu (3), # kuukauden viikkonumero (5), # sunnuntai (0=su). Vinkit Yleensä LINUX järjestelmissä kello on asetettu käymään paikallista aikaa ja järjestelmän asennusvaiheessa on luotu /etc/localtime tiedosto Helsingin aikaan. Tällöin TZ aikavyöhykeasetusta ei tarvitse käyttää. Jos kuitenkin asennus on vanhempaa mallia, EU määräystä ei ole huomioitu, niin siirtyminen tapahtuu todennäköisesti väärään aikaan. HUOM! Jos käytät UNIX -järjestelmää prosessiohjaukseen, niin älä käytä kesä/talviaika asetuksia järjestelmässäsi. 4.3.4 Erikoismuuttujat $?, $$, $1, $#, $0 ja $* Erikoismuuttujia käytetään pääasiassa skriptiohjelmoinnissa. Muuttujien merkitys on sama kaikissa komentotulkeissa. $? - komennon lopetustila

15 Jokainen UNIX ohjelman suoritus palauttaa jonkin tilakoodin suorituksen loputtua. Komennon tilakoodin saa tulostettua käyttämällä $? -muuttujaa. Tilakoodi on aina numero 0,1,2,3... Tilakoodi 0 tarkoittaa aina että ohjelman suoritus eteni virheettä ja ohjelma lopetettiin ilman virheitä. Muut tilakoodit ovat komentokohtaisia ja löytyvät komennon manuaalisivulta. $$ - prosessinumero Suoritettavan komentotulkin prosessinumero. Tätä voi huoleti käyttää väliaikaistiedostojen nimien muodostamiseen erilaisissa skripteissä. Toinen käyttökohde on tausta-ajettavien skriptien osalta tallettaa prosessinumero tiedostoon erillistä komentojonon lopetusskriptiä varten. Lopetusskripti lukee tiedostosta prosessinumeron ja lähettää prosessille signaaliin kill -komennon avulla. $! - taustaprosessin prosessinumero Sisältää viimeksi taustalle käynnistetyn prosessinumeron. $1 - parametrit Komennon argumentit on numeroitu 1..N. Jokaiseen argumenttiin voi viitata skriptissä erikseen. Argumentteja syödään shift komennolla. $# - argumenttien lukumäärä Tämänhetkinen argumenttien lukumäärä (muuttuu shift -komennon vaikutuksesta). $0 - komennon nimi Aina suoritettavan komennon tai skriptitiedoston nimi.

16 Osa komennoista on rakennettu siten että niillä on useita nimiä ja komennon suoritus muuttuu hieman sen perusteella millä nimellä komento on käynnistetty. $* - kaikki argumentit Kaikki argumentit yhtenä listana.

5 Peruskomennot 17 UNIX järjestelmien komentojen suunnitteluperiaatteena on ollut toteuttaa pieni toiminto kerrallaan, mutta hyvin. Nykyään LINUX järjestelmässä voit bash komentotulkin avulla suorittaa tuhansia komentoja. Painamalla kaksi kertaa tabulaattoria saan oman bash tulkin avustamana mahdollisuuden tulostaa 3068 erilaista komentoa tai komennon aloitustapaa (bash skripti lausekkeiden aloituksia). 5.1 komentojen anatomia Suoritettavan ohjelman lisäksi komennossa voi olla tarkenteita ja parametreja. Tarkenteet lisätään komennon perään - merkinnällä ja parametrit ovat yleensä tiedostojen nimiä. LINUX järjestelmissä on lisäksi käytössä -- alkuisia pitkiä tarkenteita joiden avulla saadaan lisää erikoisempia toimintoja. Esimerkit ls -l -h /etc /home # ls = komento # -l = 1. tarkenne. # -h = 2. tarkenne. #/etc ja /home ovat parametreja Normaalisti tarkenteet voi yhdistää saman - merkin alle, paitsi jos tarkenteella on oma lisäparametri. ls -lh /etc /home # Yhdistetyt tarkenteet cut -f6 -d: /etc/passwd # Tarkenteen lisäparametrit # -f6 = 6. kenttä # -d: = Erotinmerkkinä : ps -u jketo -f --forest # -u jketo = nimetyn käyttäjän # prosessit

18 # -f = pitkä listaus # --forest = pitkätarkkenne # LINUX järjestelmissä. 5.2 ; - komentoerotin Puolipistettä käytetään LINUX komentotulkeissa komentoerottimena. Samalle riville voi siis huitaista useita komentoja peräkkäin. Esimerkit ls ; date ; pwd ; date # Esimerkiksi LINUX kernelin kääntö make bzimage; make modules; \ make modules_install # Kaikki samalla rivillä 5.3 ( ) - komentojen ryhmittely Käynnistää erillisen komentotulkin sulkujen sisällä olevia komentoja varten. Yleensä käytetään tilanteessa jossa halutaan suorittaa komennot tietyssä järjestyksessä ryhmänä ja tausta-ajona. Esimerkki ( sleep 10 ; sleep 10 ) & 5.4 \ - merkityksen kumoaminen \ - merkki kumoaa seuraavan merkin merkityksen. Tässäkin pikaohjeessa rivin lopussa oleva \ merkintä tarkoittaa välitöntä rivivaihtoa jolloin voit jatkaa pitkää komentoa vielä seuraavalle riville ilman että komentotulkki suorittaa komennon. Merkki kumoaa myös muiden erikoismerkintöjen kuten mm. # merkin merkityksen.

19 HUOM! Jos kuitenkin rivillä on vielä välilyönti \ -merkin jälkeen niin ei toimi toivotusti. Toivottu toiminta saadaan aikaan vain kun on juuri ennen rivivaihtoa. 5.5 - putkitus Komennon tulostus syötetään seuraavalle komennolle syötteeksi. LINUX:n nerokkuus piilee tuhansissa pienissä komennoissa, jotka tekevät vain yhden asian -- mutta hyvin. Käyttäjän innovaation varassa on sitten yhdistellä LINUX komentoja mahdollisimman luovasti. Esimerkki cat /etc/passwd cut -d: -f1 \ sort tee > nimet.txt 5.6 0,1,2 - tiedostot Komentotulkki avaa kaikille ohjelmille avataan suorituksen yhteydessä kolme tiedostoa. Näitä tiedostoja kutsutaan syöte-, tulostus- ja virhekanaviksi. Kanavilla on omat numerotunnisteensa ja kaikkialla yleisesti käytetyt nimensä: 0 eli stdin (standard input), joka saa normaalisti tietonsa käyttäjän syötteenä. 1eli stdout (standard output), jonne komennon tulostus ohjataan. 2 eli stderr (standard error), jonne komennon virheilmoitukset ohjataan. Kaikkia näitä kanavia voidaan ohjata tiedostoista/tiedostoon. Esimerkit

20 cat /tmp/puppu > tulos 2> virhe # Kanavat omiin tiedostoihinsa cat /tmp/puppu 2> virhetulos 1>&2 # Perustulostuskin virhekanavaan cat /tmp/puppu 1> virhetulos 2>&1 # Virhekanava peruskanavaan cat < /etc/hosts # Perussyöte tiedostosta Vinkki Yleensä kaikki, paitsi graafiset ohjelmat, hyväksyvät syötteen aina myös tiedostosta tai putkesta ja tulostavat tulokset ja virheilmoitukset aina 1 ja 2 kanaviin. 5.7 > ja >> - tulostus tiedostoon Komennon tulostus ohjataan tiedostoon > merkinnällä. >> merkinnällä tulostus lisätään tiedoston loppuun. Esimerkki cat >> tulos.txt # Syöte kirjoittamalla, lopetus # CTRL-D, joka on tiedostonloppu # LINUX järjestelmässä. ls > lista.txt Vinkki ls ohjelma tunnistaa tiedostonohjauksen ja tulostaa putkeen ja tiedostoon nimet aina omilla riveillään. 5.8 < ja << - syöte tiedostosta Ohjataan komennolle syöte tiedostosta. Esimerkki sort < /etc/passwd

21 cat <<PUPPU Eka rivi Toka rivi PUPPU Vinkki << merkinnällä syöte luetaan komentojonosta omalla rivillään olevaan tunnistetekstiin asti. Tätä ominaisuutta voi käyttää suoraan komentoriviltäkin vaikka yleisimmin sen näkee komentoskripteissä. 5.9 # - kommentti Komentotulkeille kehotus unohtaa loput rivistä. Skripteissä hyödyllinen kommenttien kirjoittamista varten. Toimii myös komentoriviltä vaikka hyödyllisyyttä voikin epäillä. Esimerkki ls # loppuosa kommenttia Vinkki Jos haluat tiedoston nimeen # -merkin käytä \ merkintää kommenttimerkin edessä. 5.10 : - polkuerotin Kaksoispistettä : käytetään UNIX polkuerottimena. Esimerkki PATH=/bin:$HOME/bin:/usr/bin järjestelmissä Vinkit LINUX ja UNIX järjestelmissä on useita muuttujia

22 jotka sisältävät polkumäärityksiä. Tärkeimmät näistä ovat PATH ja MANPATH. PATH muuttujaan on lueteltuna komentotulkille ne hakemistot mistä komentotulkki etsii suoritettavaa komentoa kun sellainen riville kirjoitetaan. Hakemistot läpikäydään alusta loppuun. Huomaa että klassinen Troijan hevonen käyttää hyväkseen root -käyttäjän PATH muuttujaan tallettamaa polkua "." MANPATH luettelee ne hakemistot joista UNIX ohjeistus, man komento, ohjeet etsii. 5.11 `komento` ja $(komento) - muuttujanasetukset Muuttujia asetettaessa voidaan komentojen tulostus ohjata näillä merkinnöillä muuttujan sisällöksi. Esimerkit pvm=`date` # Muuttujan sisällöksi päiväys tiedostot=$(ls) # Muuttujan sisällöksi # tiedostolista Vinkki $(komento) muoto toimii bash, ksh ja Posix komentotulkeissa. `komento` merkintä toimii kaikissa komentotulkeissa. 5.12 & - taustalle käynnistys ja hallinta Lisäämällä komennon perään & merkin komento suoritetaan tausta-ajona. Esimerkit sleep 100 & # Alusta lähtien # ohjelma taustalle

23 jobs # Listataan ohjelmat fg %1 # Ohjelma numero 1 # edustalle sleep 100 # Ohjelma edustalle CTRL-Z # Keskeytetään ohjelma jobs # Listataan ohjelmat bg %1 # Ohjelma numero 1 # taustalle Vinkit Komentotulkista saman istunnon aikana taustalle käynnistetyt ohjelmat luetellaan jobs komennolla. Komennon suorituksen saa väliaikaisesti pysäytettyä CTRL-Z näppäilyllä. Pysäytetyn komennon uudelleenkäynnistys taustalle tehdään bg komennolla. Edustalle fg komennolla. 5.13 alias - komennon aliasiointi Tämän avulla voit tehdä "makroja" komennoille bash komentotulkissa. Alias komennot kirjoitetaan.profile asetustiedostoon. Esimerkki alias sl="ls" # Apukomento # kirjoitusvirhettä varten Vinkki Pelkkä alias komento listaa määritellyt alias komennot. 5.14 awk - tekstinkäsittelykieli Awk ohjelmointikieli kuuluu joukkoon "pienet kielet". Awk on yksinkertainen ohjelmointikieli joka perustuu

24 yksittäisten tietueiden (oletuksena yksi rivi) käsittelyyn. Yleisimmät tarkenteet -f komentotiedosto Esimerkki Määrää suoritettavan AWK ohjelmatiedoston nimen. cat > rivitys.awk <<TAWK { print gensub "'","'\n","g",\$0); } TAWK grep -v -e "^'''ED2" -e "^'''EOF" \ tiedosto.edi tr -d "\r\n" \ awk -f rivitys.awk > tulos.txt Perustetaan rivitys.awk ohjelmatiedosto. Ohjelma lisää jokaisen heittomerkin jälkeen rivivaihdon. Esimerkkiä käytän EDI tiedoston sisällön muotoiluun. 5.15 basename - polusta tiedoston nimi basename komento tulostaa parametrinaan saamasta tiedostonimestä pelkän tiedoston nimen. Yleisin skripteissä. Esimerkit basename /testi/tulos/apu.txt # Tulostaa apu.txt Jos tiedät etukäteen tiedoston loppupäätteen niin lisäämällä loppupääte komennon toiseksi parametriksi saadaan tulostus ilman loppupäätettä. basename /testi/tulos/apu.txt.txt # Tulostaa apu

25 Katso myös dirname 5.16 bc - tekstipohjainen laskin Nopeakäyttöinen laskin, josta on kaksi eri versiota. Perinteinen ja uusi (pieni laskentakieli). Tarkenteet -l Esimerkit Mahdollistaa desimaalilukujen käytön. Desimaalierotin määräytyy LANG ympäristön kautta ja on joko. tai,. bc -l # perinteinen 10/100 0.100000 quit bc -l # uusi scale=2 10/100 0.10 quit Vinkki Lopetetaan quit -komennolla. 5.17 chmod - tiedoston oikeuksien vaihto Perinteiset tiedostojen oikeustasot ovat: u (user) eli omistaja, g (group) eli ryhmä, o (others) eli muut.

26 Jokaiselle tasolle asetetaan tiedostoon ja hakemistoon omat oikeutensa: r (read) lukuoikeus, numeroarvona 4 w (write) kirjoitusoikeus, numeroarvona 2 x (execute) suoritusoikeus, numeroarvona 1 joka hakemistojen osalta tarkoittaa oikeutta siirtyä hakemistoon cd komennolla. Tarkenne -R hakemisto, --recursive hakemisto Esimerkit Suorittaa komennon rekursiivisesti kaikille parametrina annetuille hakemistoille ja niiden sisältämille tiedostoille. chmod 640 tiedosto Normaalisti komentoa käytetään oktaalimuodossa laskemalla oikeusnumerot yhteen ja määrittämällä kaikkien tasojen oikeudet samalla kerralla. chmod u=rw,g=r,o= tiedosto Edellinen esimerkki chmod komennon symbolista muotoa käyttäen. Vinkit Kirjoitusoikeus hakemistoon mahdollistaa aina tiedoston poistamisen hakemistosta vaikka oikeutta tiedoston sisällön lukemiseen ei olisi tai tiedosto olisi toisen omistuksessa. Voit siis esimerkiksi poistaa root käyttäjän tiedoston omasta hakemistosta.