Sis llys Johdatus Linuxiin/UNIXiin: Osa 3 Reijo Siven Tietojenk sittelytieteen laitos Helsingin yliopisto Tekstin ladonta (kertausta) ym. Prosessien hallinta Sy tt ja tulostus S nn lliset lausekkeet Tiedostojen k sittely Hakemistojen ja tiedostojen arkistointi ja pakkaus R. Siven: Linux/UNIX Osa 3 2 Latex-ladontaohjelma Tekstin ladonta (kertausta) ym. latex tiedosto.tex Ladontaohjelma, jossa tiedostossa on sek tulostettava teksti ett komentoja (vrt. HTML). Matemaattisten alojen (esim. tkt) standardi. Tuottaa v litulostiedoston tiedosto.dvi, joka voidaan muuntaa mm. PostScript-muotoon. Lis tietoja kirjoista: Lamport, Latex: A Document Preparation System Goossens et al: The Latex Companion dvips tiedosto.dvi Tekee PostScript-tiedoston Latex-tulostiedostosta tiedosto.dvi R. Siven: Linux/UNIX Osa 3 4 xv ja mpage Esimerkki: emacs artikkeli.tex Kirjoitetaan artikkeli. latex artikkeli.tex Teh n v litiedosto dvips artikkeli.dvi PostScript muunnos lpr -Pps2 artikkeli.ps Tulostetaan PostScript ghostview artikkeli.ps Tulostetaan n yt lle xv Ohjelma, jonka Grab-toiminnolla voidaan kaapata n yt lt kuva koko n yt st, n yt alueesta tai yksitt isest ikkunasta. mpage [optiot][tiedostot] Monipuolinen PostScript-muotoilija, joka osaa mm. pist monta sivua yhdelle paperiarkille. Komentoa voi k ytt esim. tavallisen tekstin muuttamiseen PostScript-kielelle. Lis tietoja: man mpage. R. Siven: Linux/UNIX Osa 3 5 R. Siven: Linux/UNIX Osa 3 6 1
Prosessin tilat Prosessien hallinta Prosessi = itsen inen tapahtuma, joka on suorituksessa (yleens komento) Prosessi voi olla jossain seuraavista tiloista: Suorituksessa etualalla (foreground process) Suorituksessa taka-alalla (background process) Pys tettyn (suspend) Taustaprosessi pys ytet n, jos se yritt kirjoittaa n yt lle R. Siven: Linux/UNIX Osa 3 8 Prosessien monitorointi Prosessit ovat komentotulkkikohtaisia Vain yksi prosessi on etualalla kerrallaan. Se saa lukea n pp imist ja tulostaa n yt lle. Tausta- ja pys ytettyj prosesseja voi olla useita. ps [optiot] N ytt suorituksessa olevat prosessit -a N yt kaikki prosessit (oletus: omat) -l N yt nemm n tietoja jobs N ytt samasta tulkista k ynnistetyt prosessit top Monitoroi ja n ytt prosessien kuormitustilanteen Lopetus q -komennolla R. Siven: Linux/UNIX Osa 3 9 R. Siven: Linux/UNIX Osa 3 10 Prosessien hallintakomentoja Prosessin vienti tausta-ajoon & Vie aloitettavan komennon taustalle Esim. cc ohjelma.c & C-z Pys ytt etualalla olevan prosessin Prosessin tuonti etu-alalle fg [%tunnus] Tuo pys ytetyn tai taustalla olevan prosessin etualalle bg [%tunnus] Siirt pys ytetyn prosessin taustalle Tunnuksen (PID) saa selville komennolla jobs tai ps. R. Siven: Linux/UNIX Osa 3 11 R. Siven: Linux/UNIX Osa 3 12 2
kill [-n] tunnus L hett lopetusk skyn prosessille, jonka tunnus on "tunnus Optio -n: M r mik lopetusk sky l hetet n prosessille. -9 on vahvin Esimerkkej ($ on kursorimerkki) $ cc logfilt2.c & [1] 7063 $ jobs [1] + background cc logfilt2.c $ kill -9 %1 [1] Killed cc logfilt2.c R. Siven: Linux/UNIX Osa 3 13 R. Siven: Linux/UNIX Osa 3 14 $ cc jokumuu.c & [1] 7088 $ ps... 7088 cc jokumuu.c $ kill -9 7088 [1] Killed cc jokumuu.c Sy tt ja tulostus: stdin, stdout, stderr Prosessin kolme s tt - ja tulostuskanavaa: stdin on sy tt kanava, jonka kautta prosessi saa tietoa ulkoa (yleens n pp imist lt ) stdout on tulostuskanava, jonka kautta prosessi antaa tietoja toiminnastaan (yleens n ytt ) stderr on virheilmoituskanava, jonka kautta prosessi voi esim. tiedottaa poikkeustilanteista (eli tulostaa jotain, mutta mahdollisesti eri kanavaa pitkin kuin stdout) R. Siven: Linux/UNIX Osa 3 15 R. Siven: Linux/UNIX Osa 3 16 Sy tt ja tulostus: Oletuksia Oletusarvoisesti: stdin on yhdistetty n pp imist stdout ja stderr on yhdistetty n ytt Sek sy tt ett tulostus voidaan uudelleenohjata (redirect) Voidaan lukea muuta kuin n pp imist ja kirjoittaa muulle kuin n yt lle S tt ja tulostus: Uudelleenohjaus Komennon uudelleenohjausparametrit: komento >tiedosto stdout ohjataan tiedostoon tiedosto Esim. ps -l > prosessilistaus.txt komento >>tiedosto stdout lis t n tiedoston tiedosto per n (tuhoamatta alkua) komento <tiedosto stdin luetaan tiedostosta tiedosto R. Siven: Linux/UNIX Osa 3 17 R. Siven: Linux/UNIX Osa 3 18 3
Esimerkkej ls -l >tiedosto.txt Kokonaan uusi tiedosto ls -l >>tiedosto.txt Listaus tiedoston loppuun more < tiedosto.txt Tiedoston n ytt sivu sivulta S S te ja tulostus yhdistettyn Esim. sort <lista.txt >aakkostettu_lista.txt tteen loppumerkki on C-d p tt my s n pp imist lt nnetun s tteen Esim. cat > tiedosto Tiedostosta luettaessa sy tetiedostoa ei tarvitse lopettaa C-d-merkill R. Siven: Linux/UNIX Osa 3 19 R. Siven: Linux/UNIX Osa 3 20 Komennon saama s te on eri asia kuin komennon parametrit. Parametrit annetaan komentorivill Komento saa s tteens suoritusaikana Putket (pipe) Komentojen s tt ja tulostusta voidaan putkittaa: Yhden prosessin tulostus on toisen sy te Komennon komento1 tulostus ohjataan komennon komento2 s tteeksi putkimerkill : komento1 komento2 R. Siven: Linux/UNIX Osa 3 21 R. Siven: Linux/UNIX Osa 3 22 Esimerkkej ls -l wc Tulosta merkit, sanat ja rivit tiedostolistauksesta ls -l wc >tiedostolkm.txt Kuten yll, mutta tulos tiedostoon cat ~/src/*.c wc Kaikkien C-l hdekielisten ohjelmien merkkien, sanojen ja rivien yhteislukum r Putkia voi olla useita per kk in Putken alussa ja lopussa voi olla uudelleenohjausta who sort cat -b >kayttajat.txt numeroitu k ytt j listaus R. Siven: Linux/UNIX Osa 3 23 R. Siven: Linux/UNIX Osa 3 24 4
Putki yhdistettyn UNIXin filosofiaan tehd pieni komentoja tarjoaa keinot koota monimutkaisia komentoja pienist paloista Putkifilosofian johdosta l hes jokainen komento osaa k ytt s tt - ja tulostuskanavia S n lliset lausekkeet R. Siven: Linux/UNIX Osa 3 25 Merkkijonojen kuvaaminen Tavallinen merkkijono S Jono annettuja per kk isi merkkej nn llinen lauseke Keino kuvata merkkijonojoukkoja valinnaisuus, ehdollisuus ja toisto Er iden komentojen ja apuohjelmien k ytt m yhten inen esitystapa mm. (e)grep, less, more, awk, emacs S nn llinen lauseke S nn llinen lauseke on hahmo (pattern), jolla voi etsi siihen sopivat merkkijonot. Monipuolisempi mekanismi kuin jokerimerkit S nn llinen lauseke sis lt : Tavallisia merkkej : kuvaavat itsens Erikoismerkkej : kuvaavat rakenteita R. Siven: Linux/UNIX Osa 3 27 R. Siven: Linux/UNIX Osa 3 28 Erikoismerkkej. Mik tahansa merkki (paitsi rivinvaihto) * 0-n kpl edellist merkki \ Poista erityismerkitys [...] Mik tahansa [...]:n sis ll oleva merkki - V li, esimerkiksi 0-9, a-c. ^ Rivin alku [^ ]Hyv ksyt n merkit, jotka eiv t ole []:n v liss $ Rivin loppu R. Siven: Linux/UNIX Osa 3 29 Er t komennot (awk, egrep, less,...) ymm rt v t m s seuraavat erikoismerkit: + 1-n kpl edellist merkki? 0-1 kpl edellist merkki Vaihtoehdot () Ryhmittelysulut S lliset lausekkeet jokerimerkit: S nn llisi lausekkeita k ytet n ohjelmien sis ll. Jokerimerkkej k ytet n kuvaamaan ohjelmille annettavia parametreja. R. Siven: Linux/UNIX Osa 3 30 5
Esimerkkej teksti merkkijono teksti ^teksti merkkijono teksti rivin alussa teksti$ merkkijono teksti rivin lopussa [Tt]eksti Teksti tai teksti t[aeiouy ]ksti toinen kirjain vokaali t.eksti toinen kirjain mik tahansa ^...$ kolmemerkkinen rivi ^\. rivi alkaa pisteell ^[^.] rivi ei ala pisteell koe* koe, koee, koeee jne. [A-Z ][A-Z ]* Yksi tai useampi iso kirjain R. Siven: Linux/UNIX Osa 3 31 R. Siven: Linux/UNIX Osa 3 32 egrep/awk/less -esimerkkej [A-Z ]+ Ainakin yksi iso kirjain juh jeh joh Joko juh, jeh tai joh 80[234]?86 pentium 8086, 80286, 80386, 80486, pentium ju(ha)* ju, juha, juhaha, juhahaha,... Etsint tiedostoista: grep Merkkijonon haku sy tteest : grep [optiot] merkkijono [tiedostot] Hakee tiedostoista (tai stdin) rivit, joilla on s lauseketta vastaava merkkijono Optioita: -c n yt vain osumarivien lukum r -i l rottele isoja ja pieni kirjaimia -l n yt pelk t tiedostonimet sellaisista tiedostoista, joissa on osumia -n n yt osumarivit rivinumeroineen -v n yt rivit, joilta ei l ydy osumia llist R. Siven: Linux/UNIX Osa 3 33 R. Siven: Linux/UNIX Osa 3 34 Esimerkkej : grep egrep [optiot] merkkijono [tiedostot] Kuten grep, mutta k ytt laajennettua s llisten lausekkeiden syntaksia (vertaa edell ) ja on useimmiten nopeampi kuin pelkk grep Optiot: kuten grep:ssa, lis ksi: -e merkkijono K ytet n silloin, kun s llinen lauseke (merkkijono) alkaa "-"-merkill ls -l grep '^d' vain hakemistot ls -l egrep 'Jan Feb' tammi- ja helmikuun tiedostot R. Siven: Linux/UNIX Osa 3 35 R. Siven: Linux/UNIX Osa 3 36 6
Tiedostojen vertailu: diff Tiedostojen k sittely diff [optiot] tiedosto1 tiedosto2 Listaa kahden tiedoston v liset erot. Lis tietoja man diff. Vertailu, etsint R. Siven: Linux/UNIX Osa 3 38 Tiedostojen etsint : find find hakemistot ehdot Tehokas komento tiedostojen etsint varten K y l pi annetut hakemistopuut: Hakee annetut ehdot t ytt v t tiedostot. Ainakin yksi hakemisto ja ehto annettava Find: Hakuehtoja -name 'tiedostonimi' Toteutuu, jos haettavan tiedoston nimi t ytt hdon tiedostonimi; ehdossa voi olla jokerimerkkej -type c Toteutuu, jos tiedosto on tyyppi c (f=tavallinen tiedosto, d=hakemisto) find ~ -type d -name '.*' -ls listaa kaikki hakemistot, jotka alkavat pisteell kotihakemistosta ja kaikista alihakemistoista Lis optioita ja esimerkkej : man find. R. Siven: Linux/UNIX Osa 3 39 R. Siven: Linux/UNIX Osa 3 40 Arkistointi ja pakkaus Hakemistojen ja tiedostojen arkistointi ja pakkaus Arkistointia tarvitaan Hakemisto/tiedosto-kokonaisuuden tallettamiseksi k tev sti yhten tiedostona Tiedostojen pakkausta tarvitaan Levytilan s st miseksi Tiedonsiirron nopeuttamiseksi Esimerkki Verkon v lityksell toimitettava ohjelmisto arkistoidaan tiedostoksi, joka pakataan. R. Siven: Linux/UNIX Osa 3 42 7
Arkistointi: tar tar [optiot][tiedostot] Arkistoi tiedostoja levylle tai kopioi tiedostoja arkistosta takaisin. Jos tiedostojen joukossa on hakemistoja, koko hakemistosta alkava alipuu kopioidaan. Tominto-optiot (vain yksi/komento): c tehd n uusi arkistotiedosto (compress) r liitet n tiedostot vanhaan arkistoon t tulostetaan arkistossa olevat tiedostonimet u lis t n tiedosto arkistoon, jos se ei ole viel siell x kopioidaan (avataan) tiedostot arkistosta (extract) Lis optiot: f arkisto talleta arkisto tiedostoon arkisto v n yt rkistoitavat tai palautettavat tiedostonimet (verify) R. Siven: Linux/UNIX Osa 3 43 R. Siven: Linux/UNIX Osa 3 44 Esimerkki tar cvf koe.tar joku Hakemisto joku ja sen alihakemistot kopioidaan arkistotiedostoon (c=compress, v=verify, f=file) tar tvf koe.tar Tarkastetaan mit tiedostoja tuli arkistoon (t=tulosta) tar xvf koe.tar Puretaan arkisto. Alkuper inen arkistotiedosto j j ljelle (x=extract) Tiedostojen pakkaus (kompressointi) compress [optiot][tiedostot] Pakkaa tiedostot pienemp n tilaan. Pakattu tiedosto saa.z -p tteen. Avaus komennolla uncompress. uncompress [optiot][tiedostot] Palauttaa compress-pakatut tiedostot. R. Siven: Linux/UNIX Osa 3 45 R. Siven: Linux/UNIX Osa 3 46 Pakkaus zippaamalla gzip [optiot][tiedostot] Kuten compress, mutta pakkaa paremmin. Tuloksilla on.gz -p te gunzip [optiot][tiedostot] Kuten uncompress, mutta my s.gz -p tteisille tiedostoille. Kalvot perustuvat: Juha Taina: Unix-perusteita -kalvomateriaali, 1998. Fred Hantelmann: Linux Start up Guide, Springer, 1999. Eero Hyv nen: Muuntokoulutuksen peruskurssi -kalvomateriaali, 1999. R. Siven: Linux/UNIX Osa 3 47 R. Siven: Linux/UNIX Osa 3 48 8