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.
27 Oikeuksien muuttamisen voi tehdä vain tiedoston omistaja. On suositeltavaa käyttää muuttamisessa tarveajattelua, yleensä oikeuksia tarvitsee lisätä tai poistaa, jolloin suhteellinen kuvaustapa on parempi/turvallisempi käyttää: chmod g+x tiedosto Katso myös Oletusoikeudet? umask 5.18 chown - tiedoston omistus Tällä komennolla voit antaa tiedoston toiselle käyttäjälle. Tarkenne -R hakemisto Esimerkki omistuksen Suorittaa chmod komennon rekursiivisesti kaikille parametrina annetuille hakemistoille ja niiden sisältämille tiedostoille. chown root tiedosto # Omistus siirretään root # käyttäjälle Omistajan nimeämiseen käytetään /etc/passwd tiedoston sisältämiä UNIX järjestelmän käyttäjien tunnuksia Vinkki Takaisinperintää ei tunneta, jolloin toisen käyttäjän pitää palauttaa omistus tarvittaessa sinulle!
28 5.19 cut - tekstirivin viipalointi Viipaloi tekstitiedoston rivit sarakkeisiin.. Tarkenteet -dx Erotinmerkin X määritys. Oletuksena on tabulointimerkki. -f1,2,3,8,5 Luettelo tulostettavista kentistä erotinmerkkiä käyttäen. Kentät erotetaan toisistaan pilkulla. Tulostusjärjestystä ei voi määritellä vaan kentät tulostetaan aina siinä järjestyksessä kuin ne rivillä ovat. -c10-20,45-50,70- Esimerkit Luettelo tulostettavista sarakkeista merkkien sijaintia käyttäen. Jos sarakevälistä puuttuu toinen arvo tarkoitta se rivin alusta tai rivin loppuun asti tulostamista. cat /etc/passwd cut -d: -f1,6 Tulostetaan käyttäjätunnus ja käyttäjän kotihakemisto / etc/passwd tiedostosta. cat /etc/passwd cut -c6- \ tail -1 Tulostetaan rivit kuudennesta merkistä aina rivin loppuun asti.
29 5.20 dd - tiedoston muunnos ja kopiointityökalu Tämä komento kopioi tiedoston ja tekee tavutasolla muunnoksia tiedoston sisällölle. Tarkenteet if=tiedosto Määrätään luettavan tiedoston nimi. Jos tämä puuttuu lukee stdin kanavaa. of=tiedosto Määrätään talletustiedoston nimi. Jos tämä puuttuu tulostaa stdout kanavaan. conv=konversiokomento Suorittaa halutun muunnoksen: ascii komento muuttaa EBCDIC merkistön ASCII merkistöksi. ebcdic komento muuttaa ASCII merkistön EBCDIC merkistöksi. bs=koko Kerralla muistiin luettavan lohkon koko. Oletus tavuina, mutta lisämääreellä 1M luetaan 1 Megatavu (1024*1024 tavua) ja määreellä 1K luetaan 1 Kilotavu (1024 tavua). count=määrä Rajataan luettavien lohkojen määrä. Luettava kokonaismäärä on bs*count. skip=määrä Esimerkki Aloitetaan lukeminen vasta kun luettavasti tiedostosta on ohitettu tässä kerrottu määrä lohkoja. dd if=/dev/fd0 of=/dev/fd1
30 # Kopioi levykkeen toiselle # levykkeelle dd if=/dev/hda0 of=bootsect \ bs=512 count=1 # Kopioidaan kovalevyn # boottisektori bootsect nimiseen # tiedostoon talteen. Vinkki Jos saat IBM suurkoneympäristöstä tiedoston niin tästä komennosta voi olla hyötyä. FTP palvelut osaavat kuitenkin tehdä sisäisesti saman muunnoksen silloin kun lähtöaineisto tulee IBM suurkoneelta tai lähetetään ASCII:na IBM ympäristöön. 5.21 dirname - polusta hakemiston nimi Tämä komento tulostaa tiedostonimestä hakemiston nimen. Esimerkki dirname /testi/tulos/apu.txt # Tulostaa /testi/tulos Katso basename 5.22 du - levykäytön laskenta du tulostaa tiedostojen levytilan käytön rekursiivisesti käynnistyshakemistosta alaspäin. Tarkenteet -s
-h Esimerkki 31 Tulostaa vain yhteissummat ei jokaisen mahdollisen tiedoston kokoa. Tulostuksen sisältö muotoillaan helpommin ymmärrettäväksi. cd /home du -hs * Tulostaa levykäytöt kaikista käyttäjien kotihakemistoista. Eniten tilaa käyttävälle lähetetään huomautus (tai onnittelut). Vinkki Yleensä du tulostaa UNIX -järjestelmästä riippuen tulokset 512 tavun tai 1024 tavun monikertoina. LINUX järjestelmissä kannattaa aina käyttää -h tarkennetta. 5.23 df - levykäytön laskenta df tulostaa kaikkien hakemistopuuhun liitettyjen tiedostojärjestelmien koot ja jäljellä olevat vapaat sekä käytetyt tilat. Tarkenne -h Esimerkki Tulostuksen sisältö muotoillaan helpommin ymmärrettäväksi df -h Vinkki
32 Perinteisesti tulostus tulee 512 tavun lohkoina laskettuna. LINUX -järjestelmissä -h lipun avulla kilotavuina, megatavuina tai gigatavuina. 5.24 diff - tiedostoerojen tulostus Tulostaa tekstitiedostojen rivien eroavuudet Esimerkki diff eka.txt toka.txt 5.25 dig, host ja nslookup - IP selvittelytyökalut Komennolla selvität nimen perusteella haluamasi kohdekoneen IP osoitteen tai toisinpäin. Esimerkit dig cs.joensuu.fi host cs.joensuu.fi nslookup cs.joensuu.fi host 193.167.42.127 Vinkki Yksinkertaisin tulostus tulee nslookup (poistumassa käytöstä) ja host komennoilla. 5.26 env, set, export, unset - muuttujien käsittelyt env komento tulostaa ympäristömuuttujat. set tulostaa komentotulkin muuttujat. export siirtää muuttujan komentotulkin muuttujasta ympäristömuuttujaksi. unset poistaa kummankin tyyppisen muuttujan komentotulkin muistista. Esimerkki set export MJA env unset MJA # Hävittää muuttujan
33 Vinkki Ympäristömuuttujat periytyvät ohjelman (komentotulkin) lapsille. Muuttujat eivät periydy (näy) lapsille. Yleiskäytäntönä ympäristömuuttujat normaalisti kirjoitetaan isoilla kirjaimilla. Muut muuttujat kirjoitetaan pienillä kirjaimilla. Siirron ympäristömuuttujaksi export komennolla tarvitsee tehdä vain kerran. Muuttuja siis pysyy loputtomasti ympäristömuuttujana kunnes se poistuu ohjelman loppumisen myötä tai unset komennolla. HUOM! Ympäristömuuttujat eivät palaudu lapsilta isille. Jos lapsi tekee ympäristömuuttujan niin se ei palaudu isälle. Palauttamiseen käytetään tavallisesti tulostamista, jonka isä voi ohjata tiedostoon ja sen kautta ottaa ympäristömuuttujaksi: lapsi > tulos.txt MJA=`cat tulos.txt` MJA2=`lapsi` export MJA MJA2 # tai suoraan osassa tulkeista export MJA=$(lapsi) HUOM! Bash -komentotulkissa voit kirjoittaa suoraan: export MJA=`cat tulos.txt` On kuitenkin suositeltavampaa käyttää export komentoa erikseen.
5.27 exec - suoritus 34 Korvaa käynnistävän ohjelman uudella ohjelmalla. Esimerkki exec sh Vinkit Uusi ohjelma käynnistetään UNIX käyttöjärjestelmässä aina siten että komentotulkit ensin kloonaavat itsensä fork funktiolla ja sitten kutsuvat exec komentoa vastaavaa järjestelmäfunktiota. Vain ohjelman koodi korvataan, ohjelman muuttujat eli data säilyy suoritettavalle ohjelmalle. 5.28 fsck - tiedostojärjestelmän korjaus fsck korjaa tiedostojärjestelmän. Komento ajetaan aina automaattisesti seuraavan käynnistyksen yhteydessä jos UNIX tai LINUX järjestelmästä katkaistaan virta ilman järjestelmän normaalia sammutusta. Normaalisti fsck komento ajetaan myös automaattisesti tietyin välein järjestelmän käynnistymisen yhteydessä. Esimerkki umount /dev/hda2 fsck /dev/hda2 mount /dev/hda2 umount /home fsck /home mount /home Vinkit Ennen korjaamista levyjärjestelmä poistaa hakemistopuusta umount komennolla.
35 Root levyjärjestelmä / voidaan korjata vain käynnistämällä kone CD levyltä ja ajamalla fsck komento root levypartitiolle manuaalisesti. Kadonneet tiedostot löytyvät lost+found nimisestä hakemistosta. Korjaaminen on mahdollista vain jos inode alkio on kunnossa ja tiedoston datalohkot löytyvät. Hakemistoon talletetut tiedostot ovat inode numerolla. 5.29 file - tiedoston tyypin selvitys Tulostaa tiedoston tyypin nimen. Esimerkki file /tmp Vinkki Toisin kuin ihmiselle tiedostonpäätteet.txt tai.ps eivät merkitse järjestelmälle mitään. UNIX järjestelmä päättelee tiedoston tyypin tiedoston oikeuksista, tiedoston kahdesta ensimmäisestä tavusta (/etc/magic tiedoston avulla) ja tiedoston sisällöstä. file komento siis arvaa tiedoston tyypin, ja saattaa osua joskus vääräänkin. 5.30 find - etsintätyökalu Ehkäpä monikäyttöisin tiedostojen etsintätyökalu. Hakee rekursiivisesti halutusta hakemistosta tiedostoja nimen, tyypin, ajan jne perusteella. Voidaan määrätä myös komento joka suoritettaan jokaiselle tiedostolle. Tarkenteet -name
36 Tuloksena tiedostojen nimet jotka löytyvät tämän tarkenteen lisäparametrin avulla. Lisäparametrissa voidaan käyttää jokerimerkintöjä. -type X Etsitään X tyyppisiä tiedostoja. Lisäparametrina tyypin kirjain, d=hakemisto, f=tavallinen tiedosto. -exec Esimerkit Suoritetaan kaikille löydetyille tiedostoille lisäparametrina annettu komento. Esimerkissä olevat {} \; on oltava mukana että suoritus toimii. find / -name pass* -print # Haetaan tiedostoja joiden nimi # on pass alkuinen find /home -type d \ -exec chmod 700 {} \; # Haetaan hakemistoja ja # suoritetaan löydetyille chmod # komento. Huomaa tässä aaltosulut # joiden perässä välilyönti ja # ; kenoviivalla (ovat pakollisia) find /home \ -exec grep -li virus {} \; # Haetaan käyttäjien # kotihakemistoista tiedostoa # joka sisältää sanan virus Vinkki LINUX järjestelmässä tulostustarkenne -print on oletuksena päällä. Muissa UNIX järjestelmissä voit joutua kirjoittamaan -print tarkenteen mukaan. Vanhasta lihasmuistista itse käytän -print tarkennetta aina (turhaankin).
37 5.31 fmt - tekstin muotoilu työkalu Yksinkertainen tekstin tasaaja. Käytetään yleisesti vi -editorissa kappaleen muotoiluun. Esimerkki vi tiedosto.txt!fmt} Oletuksena maksimirivipituus on 75 saraketta. Vinkki Kirjoita kotihakemistoosi.vimrc asetustiedostoon komentorivi: map <F7>!}fmt^M # Erikoismerkki ^M saadaan vi # editorissa ^V = CTRL + V JA # ^M = Rivinvaihto näppäilyillä. Tällä vim makrolla määräät funktionäppäimen F7 suorittamaan muotoilun fmt komentoa käyttämällä kohdistimen alla olevalle kappaleelle. 5.32 grep - rivihaku Tulostaa tiedostosta ne rivit jotka sisältävät parametrina annetun merkkijonon. Tarkenteet -i -l -v Isoja ja pieniä kirjaimia ei erotella. Tulosta vain tiedoston nimi jos merkkijono löytyy. Normaalisti tulostaa löydetyn rivin.
-c Esimerkit 38 Tulosta kaikki muut rivit paitsi löydetty rivi. Tulosta löydettyjen rivien lukumäärä. grep teksti tiedosto.txt # Haetaan tekstiä grep -i teksti tiedosto.txt # Haetaan tekstiä isoista/pienistä # kirjaimista välittämättä grep -l teksti tiedosto.txt # Tulostetaan tiedoston nimi # jos se sisältää tekstin. Vinkki Paluuarvo (eli $?) on 0 jos jotakin löytyi, 1 jos ei löytynyt ja 2 jos tapahtui jokin virhe. Arvoa 1 ei siis useista muista komennoista poiketen kannata tulkita virheeksi. 5.33 head - tiedoston alun tulostus Tämä komento tulostaa tiedoston alusta haluamasi määrän rivejä. Tarkenne -1234 Esimerkki Tulostaa 1234 riviä tiedoston alusta. head -100 tiedosto.txt
39 5.34 history - komentohistoria history komennolla saat bash komentotulkissa tulostettua listan suorittamistasi komennoista. Yleensä putkitan tämän grep komennolle. Esimerkki history grep find Vinkki Historian koko määrätään HISTSIZE ympäristömuuttujalla. Oletuksena bash komentotulkki muistaa 1000 viimeistä komentoa. 5.35 hostname - koneen nimen selvitys Tulostaa koneen nimen, tai sen mikä kone ilmoittaa olevansa, jos joku siltä sitä verkon läpi kysyy. Tarkenteet -f Esimerkki Tulostetaan virallisen nimen kokonaisuudessaan verkkotunnusten kanssa. hostname hostname -f 5.36 id - kuka olet Tulostaa käyttäjätunnuksen jota tällä hetkellä käytät. Käyttäjätunnusta voi näppärästi komentotulkissa vaihtaa su komennolla. Esimerkki id su - root id
40 exit Katso myös su
41 5.37 kill - signalointikomento Tällä saat lähetettyä numerosignaalin mille tahansa käynnistämällesi UNIX ohjelmalle. root -käyttäjä voi signaloida kaikkia ohjelmia, normaalikäyttäjä vain omiaan. Parametrina annetaan signalointinumero ja prosessin numero. Tarkenteet -l Pieni L tarkenteena tulostaa listan numeroista ja niiden symbolisista nimistä. Signaalinumeron sijaan voi käyttää signaalin symbolista nimeä. -numeroarvo tai nimi Esimerkit Tarkenne määrää lähetettävän signaalin numeron. kill %1 # Hellä kehotus, TERM signaali 15, # taustalle käynnistetylle # ohjelmalle. Saattaa totella mutta # ehkä ei. Käytä kovempaa muotoa 9, # jos ei toimi. kill -9 %1 # Varmasti sammuu. KILL signaali 9, # ohjelmalle. Ohjelma ei ehdi tehdä # lopetustoimenpiteitä kuten TERM # signaalin kanssa. kill 1234 # Normaalisti prosessin ID numero kill -l # Komennossa l = L tulostaa # signalointinumerot ja nimet. kill -HUP 12345 # Symbolinen muoto jossa # signaloidaan # prosessille HUP signaali.
42 Vinkki HUP signaalilla pakotetaan usein UNIX palvelinprosessit lukemaan uudestaan konfigurointitiedostonsa. 5.38 less - tiedoston selaaja Kuten more komento, mutta takaisinpäinkin selailu onnistuu. Komentonäppäimet q G Lopetat less ohjelman Siirry tiedoston loppuun. välilyöntinäppäin u Esimerkki Sivu eteenpäin. Sivu taaksepäin less /etc/passwd 5.39 ln - tiedostojen linkitys Tiedostojen linkityskomento. Koska UNIX järjestelmissä tiedostot on talletettu inode perusteisesti voidaan hakemistoihin kirjoitella useampia nimiä samalle tiedostolle. Näistä nimistä käytetään nimitystä linkki. Tiedostoon viittaavien linkkien, hakemistonimien, määrä talletetaan inode alkioon.
43 Linkkejä on kahta tyyppiä: kova ja pehmeä. Kovan linkin käyttö vaatii että viitattava inode on samalla tiedostojärjestelmällä. Pehmeä linkki on erikoistiedosto joka sisältää kohteen nimen. Tarkenteet -s Esimerkit Määrätään pehmeän linkin teko. ln tiedosto linkkinimi # Tehdään kova linkki Kova linkki: Kopioidaan toiseen hakemistoon viite samaan tiedostoon ja lisätään tiedoston linkkilaskuria yhdellä. ln -s /hakemisto/syva/polku oikotie # Määritellään oikotie hakemistoon Pehmeää linkkiä käytettäessä UNIX -järjestelmä automatisoi ohjelmille oikean tiedoston tai hakemiston avaamisen. Vinkki Kova linkki poistetaan rm komennolla. Kun tiedoston linkkilaskurin arvoksi tulee nolla, tiedosto poistetaan levyltä. Kovien linkkien määrä tulee ls -l tai stat komentojen tulostuksena. 5.40 locale - kielisyysasetukset Locale asetukset vaikuttavat päivämäärän esittämiseen, järjestämiseen (sort), ajan esittämiseen ja muihin
kielikohtaisiin asioihin. 44 locale komento ilman parametreja tulostaa tämänhetkiset kieliasetukset. Esimerkit locale LANG=fi_FI@euro...jne... locale -a less # Listaa mahdolliset vaihtoehdot LANG=C # on oletus useissa järjestelmissä. # LANG muuttujan asettaminen siis # muuttaa locale asetukset kaikkien # käynnistettyjen ohjelmien osalta. # HUOM! Jos ohjelma tottelee # locale asetuksia. Kaikki eivät. LANG=fi_FI.iso885915@euro # Suomen asetus. 5.41 ls - tiedostolistaus Tulostaa listan tiedostoista. Tarkenteita -l -a -t -r Pitkä listaus, oikeudet, linkkien määrä, omistaja, ryhmä, koko, päiväys, kellonaika ja nimi. Tulostaa myös piilotiedostot, eli tiedostonimet jotka alkavat pisteellä. Järjestää tulostuksen aikajärjestykseen uusin ensin.
45 Kääntää järjestyksen. Esimerkkejä ls # Peruslistaus ls -l # Pitkä lista ls -a # Myös. alkuiset piilotiedostot ls -lrt # Uusin viimeiseksi. Näppärä # kun tiedostoja on paljon. 5.42 man - ohjeiden tulostus LINUX järjestelmien komentojen ohjesivut on järjestetty manual sivuiksi. LINUX -järjestelmissä man -sivut on järjestetty yhdeksään eri aihealueeseen: 1. Suoritettavien komentojen ohjeet: ls, bash. 2. Järjestelmäkutsut: fork(). 3. Funktiokutsut: sin(), cos(). 4. Erikoistiedostojen (laitetiedostojen) kuvaukset: /dev 5. Tiedostojen kuvaukset /etc/passwd 6. Pelien ohjeet 7. Makropakettien ohjeet 8. Ylläpitäjälle varattujen komentojen ohjeet 9. Kernelin rutiinien ohjeet (ei yleisesti UNIX järjestelmissä). Joissakin UNIX järjestelmissä kohta 8 esiintyy kohtana 1a ja muutamia muitakin pienempiä poikkeavuuksia on olemassa.
46 Ohjesivut sisältävät yleensä ainakin seuraavat kohdat: NAME Aiherivi, jolla komennon nimi ja yhden rivin kuvaus komennosta. Tätä voidaan hakea -k tarkenteella. SYNOPSIS Komennon kaikki tarkenteet, parametrit ja niiden ehdollisuudet esitettyinä. Vapaaehtoisuus esitetään kulmasulkeiden [ ja ] avulla. Toistensa poissulkevat vaihtoehdot esitetään pystyviivalla. DESCRIPTION Pidempisanainen komennon kuvaus. OPTIONS FILES Tarkka kuvaus jokaisen tarkenteen vaikutuksesta. Lueteltu ne tiedostot joita komento mahdollisesti käyttää. SEE ALSO Vihjeenä käyttäjälle luettelo muista saman aihealueen komennoista. Manuaalisivujen ahkera lukeminen on päivittäistä UNIX ja LINUX järjestelmissä. Manuaalisivut ovat ainut paikka josta tarkalleen selviää järjestelmäkohtaiset ja versiokohtaiset komentojen erikoistarkenteet ja niiden toiminta puhumattakaan järjestelmäfunktioiden kutsuista. LINUX järjestelmistä löytyy lisäksi info -komento jonka avulla LINUX kehittäjät ovat luoneet hieman
47 joustavamman ohjeistuskäytännön. Infosivujen sisällön laadukkuus kuitenkin vaihtelee suuresti, pidänkin standardoitua manuaalisivukäytäntöä parempana ohjeistuksen muotona. Esimerkit Alueiden merkitys selviää kun halutaan selvitellä / etc/passwd -tiedoston kenttien sisältöä: man passwd # Tuottaa passwd komennon ohjeen man 5 passwd # Tuottaa /etc/passwd tiedoston # sisällön kuvauksen. man -k passwd # Listataan löytyvät ohjesivut # NAME kohdan haun perusteella Vihjeet UNIX ja LINUX järjestelmät siis läpikäyvät manuaaleja aluejärjestyksessä kunnes man komennon parametrina annettu ohjesivu löytyy. Toinen vaikuttava seikka on MANPATH asetus. Jos et tarkalleen tiedä mitä haet niin -k tarkenne auttaa: man -k directory contents # Tuottaa listan niistä # manuaalisivuista joissa komento # tai aiherivillä on etsittävä # merkkijono. Aiherivi on # ohjeen NAME osuuden teksti # komennon nimen perässä. 5.43 mkdir - hakemiston teko Tällä teet hakemiston. Parametrina hakemiston nimi. Tarkenne
-p Esimerkit 48 Tekee koko hakemistorakenteen haaran kerrallaan jos välissä olevat hakemistot puuttuvat. mkdir bin # Tehdään alihakemisto bin nykyisen # alapuolelle. mkdir -p apu/testi/kolmas # Tehdään hakemistopuu kerralla 5.44 more - tiedoston selaa Tämä tulostaa näkyville tiedoston ruutu kerrallaan. Käytä mieluummin less komentoa sillä sen avulla pystyt selailemaan tiedostoa molempiin suuntiin (joissakin UNIX järjestelmissä more ja less toimivat täsmälleen samoin). 5.45 mtools - levykekomentoja Yleensä LINUX järjestelmistä löytyy valmiiksi asennettuna mtools paketti. Paketin ohjelmien avulla voit kopioida levykkeeltä tiedostoja levyllesi ja päinvastoin. Esimerkkejä mcopy tiedosto.txt a: mdir a: mformat a: mcopy a:*.*. 5.46 mount ja umount - levykomennot Kaikissa UNIX järjestelmissä levyillä ja partitioilla
49 olevia tiedostojärjestelmiä ja verkkotiedostojärjestelmiä voidaan käyttää vain jos ne liitetään osaksi järjestelmän hakemistopuuta. Hakemistorakenteeseen liittäminen tehdään mount komennolla. Tarkenteet -a -t Esimerkit Liitä kaikki /etc/fstab tiedostossa määritellyt levyt. Määritä tyyppi. Käytettävä jos /etc/fstab tiedosto ei sisällä käytettävää levyä tai hakemistoa tai järjestelmä ei saa tyyppiä automaattisesti selvitettyä. mount /mnt/cdrom # Käyttää /etc/fstab tiedoston # oletuksia tarkenteita varten. mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom ls # Määrätään laite ja paikka, # siirrytään ja tehdään komentoja cd /mnt umount /mnt/cdrom # Vapautetaan cdrom, jolloin sen # saa koneesta ulos. HUOM!! Tule # aina itse levyltä ensi pois!!! mount /dev/fd0 /mnt/floppy # Otetaan korppu käyttöön umount /mnt/fd0 # Vapautetaan korppu mount -t smbfs -o username=jketo,password=enkerro // palvelin/levyjako /mnt/levyjako # Otetaan käyttöön SAMBA levyjako Vinkit
50 Vastakkainen komento on umount jota on PAKKO KÄYTTÄÄ mm. ennen kuin cd-levy lähtee asemasta pois. Korpun saa valitettavasti mekaanisesti poistettua, mutta järjestelmä voi mennä epävakaaseen tilaan. Ilman parametreja mount tulostaa käytössä olevat partitiot, levyt tai käyttöön otetut CD ja verkkolevyt jotka on liitetty mukaan hakemistopuuta. 5.47 mv - uudelleenimentä mv on tiedoston uudelleennimeämiskomento. Komento myös siirtää tiedostoja tai hakemistoja paikasta toiseen (jos viimeisenä parametrina on hakemisto). Teknisesti tämäkin tarkoittaa tiedoston uudelleennimentää UNIX järjestelmien inode -rakenteen ansiosta. Esimerkit mv tiedosto.txt /tmp mv nimi.txt uusinimi.txt mv hak1 hak2 hak3 /tmp Vinkki Perinteisesti UNIX järjestelmissä mv -komennolla ei voi siirtää tiedostoja inode -rakenteen takia levyjärjestelmästä toiseen. LINUX järjestelmissä mv on kuitenkin ohjelmoitu siten että se tekee kopion alkuperäisestä uudelle levyjärjestelmälle ja sitten poistaa alkuperäiset tiedostot. Tällöin kuitenkin tiedostojen inode numerot aina muuttuvat, joka on syytä muistaa jos käytät ohjelmia jotka ovat syystä tai toisesta riippuvia inode numeroinnista.
51 5.48 netstat - mitä verkkopalveluja käynnissä? netstat -komennolla tutkit mitä verkkoyhteyksiä koneessasi on tällä hetkellä käytössä. Tarkenteet -p -n -a Esimerkki Tulostaa resurssin varanneen prosessin numeron. Tulostaa IP osoitteet numeromuodossa. Joskus nimien selvitys on rikki tai erittäin hidasta, jolloin kannattaa käyttää tätä tarkennetta. Tulostetaan kaikki resurssit. netstat -anp # Tulostetaan # -a = kaikki käytössä olevat # -n = numeromuodossa, ei selvitetä # ip osoitteiden nimiä joka # on joskus hirmuisen hidasta # -p = tulosta prosessien # id numerot Tuloksena ensin luettelo kaikista palveluista, niiden käyttämistä porteista ja palvelujen tiloista ja sitten kaikki muut tällä hetkellä auki olevat socket yhteydet. Vinkki Socket on verkkopohjainen tiedonsiirtoyhteys joka yksilöidään IP -numero ja porttiparilla. Kaikki tietoliikennesovellukset käyttävät socketteja tiedonsiirtoon ohjelman ja tietoverkon välillä.
52 5.49 nice ja renice - priorisoinnit Tällä komennolla pyydetään ohjelmalle oletuksesta, 20, poikkeava prioriteetti. Yleensä UNIX järjestelmissä prioriteetit voivat saada arvoja välillä 0-40. Anna parametrina haluamasi nice arvo väliltä -20 ja 20 sekä suoritettava ohjelma. Esimerkit nice -10 ls # Hidasta komento 10 arvoa nice --10 ls # Nopeuta komentoa 10 arvoa # Vain root oikeuksilla Useissa UNIX järjestelmissä löytyy renice komento jolla voidaan ohjata käynnissä olevia prosesseja. renice 10 1234 # Hidasta prosessia 1234 kymmenellä # arvolla Vinkki Nice arvot eivät ole määrää prioriteettia. Ne vaikuttavat kuitenkin UNIX ytimien prioriteettien laskentaalgoritmiin painottamalla prosessin prioriteetin laskentaa annetulla arvolla. 5.50 nohup - tee ohjelmasta immuuni Tämän komennon voimalla taustalle käynnistetty ohjelma jää varmasti käyntiin taustalle kun poistuessasi komentotulkistasi. Komentotulki lähtettävät taustaprosesseille HANGUP -signaalin kun ne lopetetaan (mm. csh, tcsh). Tämän saa kiellettyä asetuksilla, mutta nohup komennolla
53 varmistat signaalin tulkeissa. Esimerkki hylkäämisen kaikissa UNIX nohup sleep 1000 & exit Vinkki Ilman ohjausta nohup -komennolla käynnistetyn komennon tulostus menee nohup.out nimiseen tiedostoon. 5.51 od - dumppaaja Tulostaa parametrina annetun tiedoston sisällön hexakoodein, merkkeinä, oktaalikoodein, merkkeinä tai muuten haluamassasi numeerisessa muodossa. Tarkenteet -t Esimerkki Muotoilun valinta. Lue man od. od -t c -t x1 outotiedosto # Tulostaa merkkeinä ja # hexakoodattuina tavuina. Vinkki Yleensä selvittelen tällä omituisten binaari- tai tekstitiedostojen sisältöä yhdessä file ja strings komentojen avulla. Joskus myös ääkkösiä sisältävät merkkitiedostojen siirrot muista järjestelmistä Unix järjestelmiin aiheuttavat päänvaivaa. Silloin od komennosta on apua.
54 5.52 passwd - salasanan vaihto Tällä vaihdat salasanaasi. root käyttäjä voi vaihtaa tällä komennolla kenen tahansa salasanan miksi tahansa. Normaalikäyttäjiä estetään antamasta turvattoman huonoa salasanaa. Esimerkit passwd # Vaihda oma salasanasi passwd jketo # Vaihda käyttäjän jketo sana. # Varattu root käyttäjälle. 5.53 ps - prosessilistaus Tällä saat listattua kaikki järjestelmässäsi pyörivät ohjelmat. Kaikista UNIX järjestelmistä löytyvä komento. LINUX versiossa muutamia erikoisen hyödyllisiä tarkenteita. Huonona puolena se, että säikeet näkyvät omana prosessinaan. Tarkenteet -e Listataan kaikki järjestelmässä olevat prosessit -u kjanimi Listataan vain nimetyn käyttäjän prosessit. -f Pitkä listaus jossa näkyy komentoriviparametritkin. --forest LINUX järjestelmien erikoispiirre. Tuottaa puumaisen esityksen lapsi ja isäprosesseista.
Esimerkki 55 ps -ef --forest less # Tulostaa LINUX järjestelmissä # kaikkien prosessit ja # komentorivit. # --forest tarkenne ryhmittelee # isät ja lapset puumaisesti # allekkain. 5.54 perl - pieni ohjelmointi kieli Kuuluu pienten tulkattavien kielten joukkoon vaikka onkin ominaisuuksiltaan suuri. Erittäin käytetty WWW ohjelmoinnissa ja muutenkin UNIX skripteissä. Kielenä perl on kuuluisa LAMP alustan yhtenä osana (Linux, Apache, MySQL, PHP/Python/Perl). Tarkenteet -v -c Esimerkit Tulostaa version. Joskus LINUX jakelupaketeissa hävyttömän vanha versio. Tarkista http://www.perl.org osoitteesta. Tarkistaa parametrina annetun perl ohjelmatiedoston syntaksin mutta ei suorita ohjelmaa. man perl perl -v # Tulostaa versionumeron perl -c ohjelma.pl # Tarkistaa ohjelman syntaksin perl -f ohjelma.pl # Suorittaa perl ohjelman
Vinkki 56 man perl -komento tuottaa ohjesivun jossa viitteitä muihin perl ohjesivuihin: perlrun, perlfunc, perlop jne. Suosittelen kuitenkin Perl kirjan ostamista jos haluat tutustua tähän kieleen. 5.55 rm - tiedoston poisto Poistaa tiedoston tiedostojärjestelmältä vähentämällä tiedoston linkkilaskuria yhdellä. Levytila vapautetaan jos linkkilaskuri saavuttaa arvon 0. Tarkenteet -i -r -f Esimerkit Kysyy ennen poistoa Rekursiivisesti kaikki jos parametrina on hakemisto. Hiljaisesti kysymättä mitään. rm -i tiedosto.txt # Poistaa tiedoston...kysyy ensin rm -r hakemisto # Poistaa hakemiston ja tiedostot # rekursiivisesti rm -rf hakemisto # Tekee poiston ja ei edes ilmoita # jos jotakin menee vikaan (-f) Vinkit Komento ei turhia kysele joten alussa on syytä käyttää
57 -i lippua. 5.56 rmdir - hakemiston poisto Tällä poistat tyhjän hakemiston. Esimerkki rmdir hakemisto Vinkki Huomaa että joistakin muista käyttöjärjestelmistä tunnettua rd muotoa ei UNIX järjestelmissä ole. Allekirjoittanut käyttää pelkästään rm -rf hakemisto komentoa tähän tehtävään. 5.57 sed - putkieditori sed komentoa käytetään tiedostoputkien datan muokkaamiseen säännöllisen lausekkeen (regularexpression) avulla. Komento saa syötteen yleensä putkea pitkin ja tulostaa sisällön parametriensa mukaisesti muokattuna. Tarkenteet -e 'skripti' Suorittaa samalle riville kirjoitetun skriptin. Tämä on oletustoiminta ja -e tarkennetta ei ole pakko käyttää. -f skripti-tiedosto Esimerkki Suorittaa komennot tiedostosta. cat /etc/passwd sed \ 's/home/koti/' # Säännöllinen lauseke jonka # perusteella jokaiselta riviltä # ensimmäiseksi löytyvä home sana
58 # korvataan koti sanalla. Vinkki LINUX järjestelmissä sed komento yleensä toteuttaa suppeamman osajoukon säännöllisistä lausekkeista kuin vi editori tuntee. Usein suoritankin muunnokset vi editorissa. 5.58 sh - komentotulkki Komentotulkista voi käynnistää komentotulkin. sh komentotulkin nimi on Bourne Shell. Nykyään kaikissa LINUX järjestelmissä on sh komentotulkin virkaa toimittamassa bash, Bourne Again Shell, komentotulkki. sh pohjaiset komentotulkit ovat ikäjärjestyksessä seuraavat: 1. sh - ei komentorivieditointia. Kaikki UNIX järjestelmät. 2. ksh - komentorivieditointi. Kaikissa UNIX järjestelmissä. 3. bash - lisäpiirteitä skriptaukseen. Kaikissa LINUX järjestelmissä. 4. Posix shell - standardi, suppeampi kuin bash. Nykyään kaikissa UNIX järjestelmissä. Toinen perinteinen komentotulkki on csh - C Shell ja sen modernimmat variaatiot tcsh, zcsh jne. Oletuksena kuitenkin LINUX asennuksissa yleensä on bash komentotulkki. csh ja bash komentotulkkien käyttäminen ja varsinkin niiden ohjelmointimahdollisuudet, skriptaaminen, poikkeavat toisistaan (kaikki tämän oppaan esimerkit ovat
59 bash komentotulkin esimerkkejä). sh -perheen sisälläkin komentotulkkien, skriptit ovat myös molempiin suuntiin hieman epäyhteensopivia. Esimerkki Jos kirjoitat pitkiä komentotulkkiohjelmia niin hieman helpotusta tulkkauksen selvittämiseen saat bash komentotulkin -x tarkenteesta: sh skriptit # Suoritetaan skripti bash -x skripti # Tulostaa interaktiivisesti # komennot ja lavennetut parametrit. skripti # Suoritetaan skripti tämän tulkin # komentoina eikä käynnistetä # uutta tulkkia skriptin suoritusta # varten. Vinkit MUISTA AINA että komentotulkki laventaa puolestasi jokerimerkit * ja? ennen komennon käynnistämistä. Jos välttämättä haluat viedä ohjelmalle jokerimerkintöjä niin kirjoita ne heittomerkkien sisään. HUOM! sh perheen komentotulkit käyttävät kirjautumisen yhteydessä.profile nimistä tiedostoa asetustiedostona..profile löytyy kotihakemistostasi ls -a komennon avulla. 5.59 shutdown - koneen sammutus UNIX ja LINUX järjestelmä tulee aina sammuttaa shutdown komennolla. Tätä komentoa käyttämällä varmistat että
60 käyttöjärjestelmäsi kirjoittaa kaikki puskuroidut tiedostojen muutokset levylle, ennen järjestelmän sammuttamista. Jos sammutat koneen asianmukaisesti niin jokaiseen paikalliseen tiedostojärjestelmään asetetaan OK lippu päälle (filesystem clean flag). Seuraavassa käynnistyksessä tiedostojärjestelmä voidaan ottaa käyttöön ilman tarkistuksia. Jos lippu ei kuitenkaan ole päällä, järjestelmä pakottaa käynnistyksen yhteydessä tiedostojärjestelmän tarkistuksen. Tarkenteet -h -t 60 -r Esimerkit Sammuta koneen CPU lopuksi. LINUX järjestelmissä sammuttaa yleensä koneesta virratkin. Odota 60 sekuntia ennen sammutuksen aloitusta. Suorita sammutuksen sijaan uudelleenkäynnistys. shutdown -h 0 # Aloita sammuttaminen heti shutdown 0 # Laita järjestelmä yhden # käyttäjän tilaan ja sammuta # kaikki palvelut shutdown -r 0 # Suorita uudelleenkäynnistys, # aloita heti. Vinkit Jos haluat sammuttaa koneesi olematta root käyttäjä lisää tunnuksesi UNIX järjestelmissä
61 /etc/shutdown.allow tiedostoon. LINUX järjestelmissä CTRL-ALT-DEL suorittaa shutdown komennon. Näppäinyhdistelmän toimintaa tarkkailee init ohjelma /etc/inittab tiedoston ohjeen mukaisesti: cat /etc/inittab grep ctrl ca::ctrlaltdel:/sbin/shutdown -r -t 4 now Vaihtamalla tiedostoon -h argumentin saat näppäinkomennolla sammutettua koneesi. 5.60 stat - tiedoston tiedot stat -komento tulostaa tiedoston tarkat perustiedot kuten joskus tarpeelliset aikaleimat. Esimerkki stat.profile # Tulostuu File: `.profile' Size: 992 Blocks: 8 IO Block: 131072 regular file Device: 303h/771d Inode: 444801 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/ jketo) Gid: ( 100/ users) Access: 2004-04-18 02:13:21.000000000 +0300 Modify: 2004-03-17 11:10:55.000000000 +0200 Change: 2004-03-17 11:10:55.000000000 +0200 5.61 strings - merkkien tulostus Tulostaa tiedostosta kaikki tulostettavissa olevat merkkijonot. Tätä käytetään binaaritiedostojen tutkimisessa silloin kun etsitään jotakin tiedostossa olevaa vakiota.
62 Esimerkki strings /bin/ls Katso myös file, od 5.62 sort - järjestykseen panija Tällä järjestelet tekstitiedoston rivit haluamaasi järjestykseen. Tarkenteet -n -r Järjestä numeroarvon mukaan. Käännä järjestys päinvastaiseksi. -k1,1 -k3,3 -tx Esimerkit Valitse järjestämiseen käytettävät kentät. Määrää kenttäerottimena käytettävä merkki X. sort /etc/passwd # ASCII järjestys sort -t: -k3,3 -n /etc/passwd # Numerojärjestys pienimmästä # suurimpaan kolmannen kentän # mukaa järjestettynä. Vinkki Tunteeko ääkköset vai ei, riippuu LANG muuttujan määrittelystä. Katso myös
63 locale 5.63 split - tiedoston halkoja Tällä voit halkaista tiedostoja pienempiin osiin vaikkapa levykkeelle tallettamista varten. Tarkenteet -b Esimerkit Määrää osan maksimikoko tavuina, kiloina k (1024 tavua) tai megatavuina (1024*1024 tavua) m. cat iso.dat gzip split -b1440k \ - iso_ # Syötetään iso.dat tiedosto # pakattuna pätkittäväksi. HUOMAA # yksinäinen - merkki # jolla monen komennon # osalta tarkoitetaan stdin # kanavaa. dd if=iso_aa of=/dev/fdh1440 # Tuikataan pakattu pätkä # korpulle. dd if=iso_ab of=/dev/fdh1440 # Seuraava pätkä... jne dd if=/dev/fdh1440 of=iso_aa.gz # Luetaan korppu iso_aa.gz nimelle cat iso_*.gz gunzip > iso.dat # Palautetaan iso.dat Vinkki Pätkityt tiedostot yhdistetään UNIX ympäristöissä cat komennolla.
5.64 sleep - nukkuja 64 Tällä teet skripteihisi odotusta. Käytettävä jos teet ikuisesti suoritettavia silmukoita etteivät koneesi kaikki resurssit kulu skriptisi suorittamiseen. Parametrina annetaan nukuttava sekuntimäärä. Esimerkki while true ; do date sleep 10 done Vinkki Esimerkin komentosarjaa käytän usein estämään ssh ikkunoiden ja putkien aikakatkaisun. Voit kirjoittaa komentosarjan suoraan komentotulkkiin. 5.65 su - henkilönvaihtaja su -komennolla vaihdat henkilöllisyyttäsi käyttöjärjestelmän näkökulmasta :-) Tarkenteet - Esimerkit Yksinäinen väliviiva aikaansaa kirjautumistoiminnon ja kohdekäyttäjän alustus-skriptien suorituksen. su # Jos tiedät root:n salasanan su - # Ihan kuin loggautuisit sisälle, # eli ajaa komentotulkin # alustus-skriptit aluksi. su jketo
65 # Jos tunnet salasanan tai # olet root, jolloin menee # heittämällä jketo käyttäjäksi. 5.66 tail - lopun tulostaja Tulostaa tiedostosta 10 viimeistä riviä. Tarkenteet -f -100 Esimerkit Jää odottelemaan tiedoston loppuun lisää tulostettavaa. Erityisen käytetty kuitenkin jatkuvaan LOG tiedostojen tulostamiseen Tulostaa lopusta 100 riviä. tail tiedosto.txt # Oletus...viimeiset 10 riviä. tail -600 tiedosto.txt # Viimeiset 600 riviä tail -f * # Kaikista hakemiston tiedostoista # niihin tulevat uudet rivit cd /var/log/ tail -f messages # LINUX kernelin ilmoitusten # tarkkailua. 5.67 tar - nauhavarmistusohjelma Perinteinen nauhavarmistusohjelma. Tarkenteet -c Varmistuksen luontitarkenne
-x 66 Varmistuksen purkutarkenne -f tiedosto -v Esimerkit Määrää varmistustiedoston nimen Tulostaa varmistettavat/purettavat tiedostojen nimet. tar -cvf /dev/nauha /home/* # Varmistetaan kotihakemistot tar -xvf /dev/nauha # Palautetaan kotihakemistot # entiselle paikalleen. cd /home tar -cvs /dev/nauha * # Varmistetaan kotihakemistot cd /home.uusi tar -xvf /dev/nauha # Palautetaan uuteen paikkaan Vinkit Huomaa -f parametrilla voidaan määrätä mikä tahansa tiedosto, ei siis vain laitetiedosto. Useasti LINUX paketit toimitetaan *gz päätteisinä. Tämä tarkoittaa sitä että ne on pakattu gzip ohjelmalla. Kyseiset paketit saa purettua suoraan LINUX paketeista löytyvällä tar ohjelmalla (=gnu-tar). tar -tvzf paketti.tgz # Luetaan paketin sisällysluettelo tar -xvzf paketti.tgz # Puretaan pakattu paketti. # Toinen vaihtoehto. cat paketti.tgz tar -xvzf -
67 # Huomaa tässä taas tuo - merkin # käyttö. cat kernel-x.y.z.tar.bz2 \ bunzip2 tar -xvf - # Putkitetaan kernel sorsat jotka # on tiiviimmin pakattu bzip2 # formaattiin tar komennon stdin # kanavaan 5.68 time - komennon suoritusajan mittaus Tämän komennon avulla tarkkailet kuinka kauan komennon suoritus kesti, kunhan muistat käynnistää komennon tätä käyttämällä. Esimerkki time sleep 10 # Vastaus tulee kalenteriajassa # käyttäjän komentojen käyttämässä # prosessoriajassa ja järjestelmän # kokonaisuudessaan käyttämässä # prosessoriajassa. 5.69 tee - putken haaroittaja Lukee stdin kanavaa, tulostaa stdout kanavaan lukemansa ja tallettaa lukemansa myös tiedostoon. Esimerkki cat iso.dat tee kopio.dat \ gzip...jne... 5.70 top - prosessorin kuorman esittäjä On yleensä itse eniten järjestelmää kuormittava ohjelma koska lukee UNIX kernel muistirakenteita ahkerasti. Komentomerkit c Tulostaa suoritettavan komennon parametreineen.
p m? u q 68 Järjestää prosessorikuorman mukaan laskevaan järjestykseen Järjestää muistikuorman mukaan laskevaan järjestykseen Tulostaa komento-ohjeen. Kysyy kenen käyttäjän prosesseja haluat tarkkailla. Pyytää käyttäjätunnusta. Lopettaa komennon suorituksen. 5.71 tr - merkkien kääntäjä Tämän komennon avulla voidaan merkkivirrasta muokata, korvata tai poistaa yksittäisiä merkkejä. Lisäksi ominaisuutena tyypin vaihdot: pienet kirjaimet ISOIKSI tai päinvastoin. Tarkenteet -s -d Esimerkit Poistaa annettujen merkkien toistumat eli peräkkäiset yhden merkin esiintymät. Poistaa kaikki annetut merkit. ls -l tr -s ' ' # Poistetaan ylimääräiset
69 # välilyöntimerkit squeeze # tarkenteella ls -l tr -d ' ' # Poistetaan kaikki välilyöntimerkit ls -l tr '[:lower:]' '[:upper:]' # Muutetaan kaikki pienet kirjaimet # isoiksi ls -l tr 'ab' 'ba' # Muutetaan a merkit b merkeiksi # ja päinvastoin. Vinkki Lue manuaali muiden [:lower:] tyyppisten luokittelumerkintöjen selvittämiseksi. 5.72 type, which - komennon selvittäjät Minkä ohjelman oikeastaan ajat komennolla ls? type ja which vastaavat tähän. type on bash komentotulkin sisäinen komento ja tulostaa sen komennon joka suoritetaan kun käytetään PATH ympäristömuuttujaa komennon hakuun. which, paitsi vaikea kirjoittaa ei anna virheilmoitusta jos komentoa ei löydy. which palauttaa skriptille statuksen 1 jos ei löydy. Jos komento löytyy, palautetaan 0. Kaikkihan ovat lukeneet man bash ohjeesta että status palautetaan $? muuttujassa. 5.73 unzip - zip lukija Purkaa suositut zip paketit. Tarkenteet -l Suorittaa listauksen
70 Esimerkki unzip -l paketti.zip Vinkit Huomaa myös että nykyään Java JAR, WAR ja EAR paketit ovat itseasiassa ZIP paketteja ja ne voidaan purkaa ja listata tällä komennolla. jar komento toimii muuten samoin kuin tar, joten suosittelen jar komennon käyttämistä zip ja unzip komennon sijaan. 5.74 unset - muuttujan poisto Antamalla parametriksi muuttujan tai ympäristömuuttujan nimen poistat sen komentotulkin muistista. Esimerkki export OMAHAKEMISTO=/apu/dapu ls $OMAHAKEMISTO unset OMAHAKEMISTO 5.75 uptime - käyttöaika Vastaa kysymykseen, kauanko järjestelmä on ollut käynnissä? Esimerkki uptime 4:17pm up 395 days, 7:55, 5 users, load average: 0.10, 0.09, 0.07. Vinkki Yleensä UNIX/LINUX järjestelmät pysyvät hengissä niin kauan kuin verkkovirtaa riittää.
71 Tänään tarkistin erään palvelimeni tilanteen ja sain 21.3.2004 tulokseksi lukeman 395 päivää. Oma työasemakohtainen ennätykseni on 378 päivää. Tärkeämpi lukema on kuitenkin 3 kuormituslukemaa tulostuksen lopussa. Nämä lukemat ovat keskiarvoja prosessorin suoritusjonon pituudelle 1, 5 ja 15 minuutin aikavälillä. Normaalisti lukemat pysyttelevät LINUX ympäristöissä alle 5. Jos lukema on yli 10 missä tahansa UNIX ympäristössä on järjestelmässä jokin pullonkaula, jonka syy kannattaa selvittää top, ps ja vmstat komennoilla. 5.76 uname - perustietojen tulostus Tulostaa koneen perustiedot: laitealustan, verkkonimen ja käyttöjärjestelmän version. Tarkenteet -a Esimerkki Tulostaa kaiken tiedon. Oletuksena vain ytimen nimen. uname -a Vinkki Käyttöjärjestelmän versionumero on usein talletettu myös /etc/issue tiedostoon joka tulostetaan ennen sisäänkirjautumista. Toinen vastaava tiedosto on / etc/motd (message of today), joka tulostetaan käyttäjälle aina kirjautumisen jälkeen.
72 5.77 umask - oletus oikeudet Tulostaa tai asettaa asettaa komentotulkin käyttämät oletusoikeudet uuden tiedoston tai hakemiston luontia varten. Ilman parametreja umask tulostaa oikeudet oktaalimuodossa (kaiken lisäksi komplementti asetetusta). Tarkenteet -S Esimerkit Tulostus ja asetus tehdään selväkielisessä muodossa. umask 0022 # Tulostus oktaalimuodossa huomaa # komplementti, käytä mieluummin # -S selväkielistä tulostusta. umask -S u=rwx,g=rx,o=rx # Tulostus auki purettuna umask -S u=rwx,g=rx,o= # Itselle kaikki, ryhmälle rx # muille ei mitään oikeuksia # tästä eteenpäin. Vinkki Laita komento.profile tiedostoon.
5.78 vi - editoreista paras 73 Löytyy kaikista UNIX/LINUX koneista. Perinteinen perustyökalu ja erittäin monipuolinen. Helppokäyttöinen kun muistaa pari perusasiaa: 1. On tilallinen: muokkaustila, lisäystila ja komentotila i,o,o : <enter> <esc> <esc> muokkaustila lisäystila komentotila (ex-tila) 2. Muokkaustilaan pääsee aina <esc> näppäimellä. 3. Et koskaan enää tarvitse nuolinäppäimiä tai hiirtä editointiin kun opettelet VI editoinnin. Unohda jo hiirilavantauti ja opettele VI editointi.
74 vi peruskomentoja: <esc> :wq :q! i o O a k j l h x dd G Komentojono Kuvaus Palaa muokkaustilaan kaikista tiloista. Siirtyy komentotilaan ja suorittaa tallettamisen ja poistumisen Siirtyy komentotilaan suorittaa poistumisen vaikka olisit tehnyt muutoksia Siirtyy lisäystilaan kursorin kohdalle. Avataan uusi rivi lisäystilaan nykyisen alapuolelle Avataan uusi rivi lisäystilaan nykyisen yläpuolelle Siirrytään lisäystilaan kursorin kohdalla olevan merkin perään. Rivi ylöspäin Rivi alaspäin Merkki oikealle Merkki vasemmalle Poista merkki kursorin alta Poista rivi kursorin kohdalta (menee kopiopuskuriin). Mene tiedoston loppuun :1 Mene riville 1 yy Kopioi rivi (yank) kopiopuskuriin. p Palauta kopiopuskuri tämän rivin alapuolelle. P Palauta kopiopuskuri tämän rivin yläpuolelle. :r tiedosto.txt Lue tiedosto.txt kursorin kohdalle ja palaa komentotilaan.
75 Komentojono Kuvaus :w apu.txt Talleta puskuri nimelle apu.txt /apudapu?apudapu Hae merkkijonoa apudapu eteenpäin Hae merkkijonoa apudapu taaksepäin. Toista edellinen komentotilan komento. :1,$s/apudapu/hapup apu/gc ma mb 'a 'b :'a,'by Korvaa apudapu sanalla hapupapu joka paikasta (g) ja kysy ennen korvausta varmistus (c). Merkataan komentotilassa rivi sisäisesti A riviksi. Merkataan komentotilassa rivi sisäisesti B riviksi. Siirry A merkin riville. Siirry B merkin riville. Kopioidaan rivit A ja B merkkien väliltä, A ja B rivit mukaanottaen, kopiopuskuriin. Kaikissa komennoissa lähtötilana on aina muokkaustila.
76 5.79 vmstat - muistinkäytön selvittelijä Tämän avulla selvität järjestelmän pullonkaulat LINUX järjestelmässä manuaalisivut yleensä puutteelliset tulkintaa ajatellen muissa UNIX järjestelmistä saat manuaalista enemmän tietoa. Tarkenteet -s Esimerkki Tulostaa kerran tiedot tärkeimmistä järjestelmän muistinkäytön tilanteista. vmstat 5 10 # Tulostetaan muistikäyttö 5 # sekunnin välein 10 kertaa. 5.80 wc - rivimäärän laskin Laskee tiedostosta rivit, sanat ja merkit. Tarkenteet -c -l -w Esimerkit Tulostaa vain merkkien määrän Tulostaa vain rivien määrän Tulostaa vain sanojen määrän. wc -l DataC*.java 609 DataConfig.java 105 DataContent.java 714 total # Tulostaa yksittäisten DataC*.java # tiedostojen rivien määrät # ja loppuun yhteismäärän.
77 wc -c *.java # Pelkät merkkien määrät wc -w *.java # Sanojen määrät wc -l *.java # Pelkät rivien määrät. 5.81 xargs - argumenttien kasvattaja Rakentaa komennon argumentit saamastaan syötteestä. Käytetään jos esim. tiedostoja on erittäin paljon. Esimerkit ls isohakemisto > lista.txt # Tehdään tiedostolista cd isohakemisto cat../lista.txt xargs touch # Päivitetään jokaisen # tiedoston aikaleimoja. Vinkki Komentotulkeissa on komennon pituudelle yläraja (esim.: 4k tavua). Jos yläraja ylittyy saat ilmoituksen too many arguments. 5.82 yacc - yet another compiler compiler Tällä teet näppärästi minkä tahansa ohjelmointikielen syntaksintarkistusohjelman. Käytetään yhdessä usein lex ohjelman kanssa jolla voi tehdä minä tahansa ohjelmointikielen selaajan. Mukana sen takia että Y kirjainkin saataisiin mukaan :-)
5.83 zip - pakkaaja 78 Käytä mieluummin gzip, tar tai jar komentoja.
6 X asetustiedostot 79 Graafisessa X järjestelmässä asetustiedostoja ja ohjelmien toimintaan vaikuttavia asetuksia on merkittävästi enemmän kuin tekstipohjaisten komentojen suoritukseen vaikuttavat ympäristömuuttujat ja asetustiedostot. 6.1 Konekohtaiset Konekohtaiset X määrittelytiedostot sijaitsevat hieman eri paikoissa riippuen X järjestelmän iästä ja toimittajasta. Yleisemmät paikat ovat: /etc/x11 - Linux standardi, vain osa löytyy täältä. /usr/lib/x11 - Historiallinen oletuspaikka X asetustiedostoille. /usr/x11r6/lib/x11 - Uusi X organisaation määrittelemä oletuspaikka Konekohtaiset tiedostot löytyvät siis jostakin näistä paikoista. Tiedostojen merkitys on kuitenkin onneksi pysynyt samana eri X versiosta huolimatta. Nämä tiedosto ovat vain root käyttöön tarkoitettuja saattava joutua päällekirjoitetuiksi seuraavassa järjestelmäpäivityksessä. kannattaa siis käyttää käyttäjäkohtaisia asetustiedostoja vaikka olisit koneesi ainut käyttäjä.
80 6.1.1 /usr/lib/x11/xinit/xinitrc - aloituskomennot Sisältää konekohtaiset peruskomennot jotka suoritetaan kun X järjestelmä käynnistetään. Yleisimmin asettaa X järjestelmän omat perusasetukset, suorittaa määritellyt näppäinten asetustiedostot, käyttäjien X perusasetukset ja käynnistää ikkunointiohjelman sekä kenties muutaman pääte-ikkunan. Tätä tiedostoa käytetään jos mitään muuta ei ole järjestelmään määritelty. Jos järjestelmä käynnistyy automaattisesti graafiseen tilaan niin käytössä on xdm ohjelman jokin versio, yleensä Linux järjestelmissä esimerkiksi kdm. Tällöin järjestelmä ei välttämättä käytä tätä tiedostoa ollenkaan. 6.1.2 /usr/lib/x11/app-defaults/xterm - asetustiedosto Yhteinen Xterm asetustiedosto ja muut app-defaults hakemistosta löytyvät komentokohtaiset kaikille käyttäjille yhteiset asetukset määrittelevät graafisten komentojen perusominaisuuksia, kuten ikkunan oletuskoon, käytettävät fontit, värit jne. Tiedoston sisältö on X resurssimuotoa. Useat asetukset voidaan yliajaa komentotarkenteilla, mutta komentojen oletukset periytyvät näistä tiedostoista. Esimerkit xterm -ls -bg white -fg black # Asetetaan komentotarkenteella # login toiminnallisuus, taustaväri # valkoiseksi ja edustaväri # mustaksi. Xterm asetustiedostossa samat: *background: white *foreground: black *loginshell: true
Vinkit 81 Täsmälliset komentokohtaiset käytettävissä olevat X resurssimääritykset löydät komennon manuaalisivulta RESOURCES kohdasta. Yleiset asetukset voidaan korvata käyttäjäkohtaisilla asetuksilla. Katso myös.xdefaults ja xprop
6.2 Käyttäjäkohtaiset 82 Yleisesti käytössä olevia käyttäjäkohtaisia asetustiedostoja on vähemmän kuin yhteisiä tiedostoja. Periaatteessa käytetään vain.xinitrc tiedostoa ja. Xdefaults tiedostoa. 6.2.1.xinitrc - käynnistyskomennot Tähän tiedostoon voit vaihtaa omat X järjestelmän käynnistyessä suoritettavat ohjelmasi jos oletukset eivät kelpaa. Yleensä tiedoston muokkaaminen aloitetaan kopioimalla yleinen xinitrc -tiedosto pohjaksi. Tiedoston viimeinen komento suoritetaan aina exec komentoa käyttäen ja korvaa siis suorittavan komentotulkin. Yleisesti viimeisenä komentona on käyttäjän haluaman ikkunointiohjelman käynnistyskomento. 6.2.2.Xdefaults - käyttäjän asetukset Käyttäjän omat asetukset komennoille. Jos haluat poiketa järjestelmäkohtaisista X komentojen oletuksista voit kirjoittaa omat X resurssimäärityksesi tähän tiedostoon. Esimerkit! Kaikkien halutaan oletuksena! käyttävän taustavärinä sinistä.! Toimii niille sovelluksille jotka! tottelevat background asetusta. *background: blue! XTerm:n osalta haluan poiketa! taustaväristä. XTerm*background: white XTerm*foreground: black XTerm*loginShell: true
Vinkit 83 Huomaa että yhteiskäyttöisistä komentokohtaisista tiedostoista poiketen tässä tiedostossa pitää määritellä komento jonka halutaan asetusta tottelevan. Ilman komennon nimeä kirjoitettu asetus pakottaa ominaisuuden päälle kaikille X ohjelmille elleivät yleiset tai muut paikalliset määritykset yliaja omaa oletustasi. Kommenttimerkkinä käytetään! merkkiä. Katso myös xprop
6.3 DISPLAY - asetus 84 Pelkästään X järjestelmän käyttöön suunnattuja ympäristömuuttujia on vain yksi, DISPLAY. Tällä muuttujalla ohjaat etäkäynnistetyt X ikkunan oman työasemasi ruudulle. X järjestelmään on jo pitkän aikaa kuulunut graafisten sovellusten etäkäyttö. Etäkäytön avulla voit käynnistää X ohjelman mistä tahansa UNIX koneesta ja käyttää sitä omalta koneeltasi. Esimerkki export DISPLAY=ketoli:0.0 # ketoli = koneesi nimi # 1. 0 = X päätteen numero yleensä # järjestelmään kytketty vain # yksi X pääte joten numero 0. # 2. 0 = Monitorin numero. Jos # X päätteeseen on kytketty # monta monitoria voi numero # olla jotakin muuta kuin 0. # Yleensä kuitenkin vain yksi # monitori, joten numero on 0. Vinkit Huomaa että mm. ssh komento sallii X etäkäytön -X tarkenteella jolloin voit ottaa etäyhteyksiä suojatusti koneelta toiselle. Lisäksi ssh asettaa automaattisesti DISPLAY -muuttujan kohdekoneella. ssh -X -l jketo joensuu2 xterm -ls & # Otan ssh yhteyden joensuu2 # koneelle ja käynnistän sieltä # xterm komennon omalle koneelleni # salattua X käytäntöä käyttäen. HUOM! Toimii vain jos omalla koneellasi on X palvelin käynnissä.
85 7 X komentoja 7.1 xev - X eventit Käynnistää pienen X ikkunan ja tulostaa kaikki X tapahtumat jotka kuuluvat käynnistetylle ikkunalle. Tätä käytetään yhdessä xmodmap -komennon kanssa, jos näppäimistöstä ei tule esimerkiksi Ä kirjaimia. xmodmap -komennon avulla voidaan X ympäristössä mikä tahansa näppäin määritellä tuottamaan minkä tahansa merkin. Vinkki Toimii luonnollisesti vain jos X on käynnissä. 7.2 xhost - oikeuksien käsittely Tämän komennon avulla voit määritellä miltä koneilta voidaan X yhteyksiä koneellesi ottaa. Esimerkit xhost + # Annetaan kaikille oikeus lähettää # X ikkunoita näytöllesi xhost +joensuu2 # Sallitaan X ikkunoiden tulo # joensuu2 koneelta. xhost +root # Sallitaan root käyttäjän X # ikkunoiden käynnistys paikallisesta # koneesta tälle näytölle. HUOMAA # että oletuksena tämäkin on # kielletty. Vinkit Oletuksena nykyään kaikki etäkäyttöiset saapuvat X yhteydet ovat kiellettyjä. Jos kuitenkin operoit
86 turvallisessa sisäverkossa voit antaa yhteydenottooikeuden kaikille koneille helposti. 7.3 xlsfonts - fonttiluettelo Tulostaa kaikki X ympäristöösi asennetut fontit. Hyödyllinen kun etsit parhaita fontti ja kieliasetuksia koneeseesi XTerm komennon osalta. Ilman oikeata fonttia joka tukee merkkiä ja ISO8859-15 merkistöä ääkköset ja merkki näkyvät komentorivillä ja vi -editorissa väärin. Vinkki Tämä komento ottaa yhteyden X palvelimeesi eli omalle koneellesi. Vaatii siis että koneellasi on X palvelin käynnissä. 7.4 xmodmap - näppäinten asetuskomento Tämän komennon avulla määrittelet omia näppäinkohtaisia asetuksia X ympäristössä. Jos ääkköset tuottavat hankaluuksia voit tällä komennolla määrittää sen näppäimen joka tuottaa esim. Ä merkin. Esimerkit xmodmap -pke grep adiaeresis keycode 48 = adiaeresis Adiaeresis # Tulostetaan näppäimistöasetukset #.xmodmaprc tiedostoon talletusta # varten xmodmap -e 'keycode 48 = adiaeresis Adiaeresis' Vinkki Tallettamalla asetukset sellaisenaan.xmodmaprc tiedostoon ovat ne seuraavalla X ympäristön käynnistyskerralla voimassa.
87 7.5 xprop - asetusten tulostus Tulostaa X sovelluksen käyttämät tämänhetkiset X asetukset. Hyödyllinen kun selvittelet.xdefaults asetusten määrittelyä. Vinkki Vaatii X päätteellä oloa, sillä käynnistyttyään odottaa käyttäjän napauttavan sitä ikkunaa jonka tiedot tulostetaan. 7.6 xterm - pääteikkuna xterm -pääteikkuna löytyy kaikista X järjestelmää käyttävistä UNIX ja LINUX järjestelmistä. Tässä oppaassa xterm sovellusta on jo sivuttu monessa yhteydessä. Tarkenteet -l Käynnistää käyttäjän komentotulkin login tilassa. Suorittaa mm.profile tiedoston komennot. -geometry 80x60 Vinkki Yleinen X parametri. Määrää xterm komennossa ikkunan koon merkkeinä (yleensä pikseleinä). Seuraavaksi ammattilaisen käyttövinkki, jonka itse olen alkujaan perinyt eräältä saja nimiseltä UNIX järjestelmien käyttäjältä. Aseta vierekkäin kaksi xterm ikkunaa. Käynnistä molempiin vi editori joista toiseen kaikki massiivista muokkaamista tarvittavat tiedostot jokerimerkkien avulla. Kirjoita toiseen ikkunaan suoritettavat vi komennot ja kopio ne editori-ikkunaan hiirellä. Näin suoritat satoja samankaltaisia muok-
88 kauksia muutamalla hiiren näpäytyksellä. Ikkunan 1 sisältö: vi dummy # haluamasi komentosarjat 1,$s/^ALKU// 1,$s/$/LOPPU/ :w :n Ikkunan 2 sisältö vi *.txt Leikkaa hiiren vasemmalla näppäimellä komennot ja liimaa ne 2. ikkunaan hiiren keskimmäisellä napilla.
8 Loppusanat 89 Tämä pikaohje sisältää vain pienen joukon UNIX ja LINUX järjestelmien komentoja. Pienestäkin joukosta mukaan on mahtunut vain pieni määrän tarkenteita. Parannusehdotukset, korjaukset, haukut ja kehut voi lähettää minulle osoitteeseeni: nix.palaute@netmail.fi. PS. Älkää lukeko tätä pikaohjetta kuin raamattua, lukekaa ahkerasti manuaalisivuja. PPS. Paperin ajateltu koko on A5 tulostuksen helpottamiseksi. Tulostus kannattaa tehdä molemminpuolisena sillä toiseen reunaan on jätetty tarkoituksella 3 cm levyinen sidontapinta.