{"id":118,"date":"2019-08-30T00:21:47","date_gmt":"2019-08-29T21:21:47","guid":{"rendered":"https:\/\/coursepages.uta.fi\/tiep1-1\/?page_id=118"},"modified":"2019-09-04T21:46:51","modified_gmt":"2019-09-04T18:46:51","slug":"komentoikkuna","status":"publish","type":"page","link":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/syksy-2019\/ohjelmointivalineita\/komentoikkuna\/","title":{"rendered":"Komentoikkuna"},"content":{"rendered":"<p>Python-ohjelmien tulkintaan tarvitaan komentoikkunaa, joka on tekstipohjainen tapa vuorovaikuttaa k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n kanssa. Komentoikkuna tunnetaan my\u00f6s muun muassa komentorivin\u00e4, terminaalina ja kuorena. Tekstipohjainen k\u00e4ytt\u00f6liittym\u00e4 on graafista k\u00e4ytt\u00f6liittym\u00e4\u00e4 vanhempi keksint\u00f6 ja se on nyky\u00e4\u00e4n yleens\u00e4 toissijainen vuorovaikutustapa, koska k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4\u00e4 on huomattavasti helpompi k\u00e4ytt\u00e4\u00e4 graafisen k\u00e4ytt\u00f6liittym\u00e4n kautta. Komentoikkunan avulla voidaan kuitenkin suorittaa samoja toimenpiteit\u00e4 kuin graafisen k\u00e4ytt\u00f6liittym\u00e4n kautta. Esimerkiksi hakemiston vaihtaminen on mahdollista molemmissa k\u00e4ytt\u00f6liittymiss\u00e4.<\/p>\n<p>Komentoikkunassa n\u00e4kyy kehote (katso oheinen kuva), jonka j\u00e4lkeen kirjoitetaan komento ja sen mahdolliset parametrit. Kehotteen ulkoasu riippuu k\u00e4ytt\u00f6liittym\u00e4n asetuksista. Yleens\u00e4 kehotteesta voi p\u00e4\u00e4tell\u00e4 ty\u00f6hakemiston eli hakemiston, johon annetut komennot ensisijaisesti kohdistuvat. Komento voi olla k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n toiminto (esimerkiksi hakemiston listaus) tai ohjelman nimi (esimerkiksi python).<\/p>\n<p>Komento l\u00e4hetet\u00e4\u00e4n k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4lle Enter-n\u00e4pp\u00e4int\u00e4 painamalla. Komentoikkunaa kutsutaan usein my\u00f6s komentoriviksi, koska sit\u00e4 k\u00e4ytet\u00e4\u00e4n edell\u00e4 selostetulla tavalla komentoja rivi kerrallaan k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4lle sy\u00f6tt\u00e4en. K\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 puolestaan ohjaa tietokonelaitteistoa, jonka prosessori suorittaa tarpeelliset toiminnot. Lopputuloksena n\u00e4yt\u00f6lle tulostuu komennon tuottamaa teksti\u00e4, toisinaan komennon suoritus ei onnistu ja tuloksena on virheilmoitus.<\/p>\n<p>Verkossa on saatavilla paljon tietoa komentoikkunoista. Ohjeet, joissa neuvotaan poistamaan kaikki hakemiston tiedostot antamalla komento <em>del *.*<\/em> tai <em>rm *<\/em> tai vastavaa on syyt\u00e4 ohittaa nopeasti.<\/p>\n<p>Komentoikkunan ulkoasu ja siin\u00e4 k\u00e4ytett\u00e4viss\u00e4 olevat komennot riippuvat k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4st\u00e4: yhdess\u00e4 k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4ss\u00e4 k\u00e4ytett\u00e4v\u00e4 komento saattaa hyvin olla saatavilla eri nimell\u00e4 toisessa k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4sss\u00e4. Voi my\u00f6s olla ett\u00e4, komennolle ei ole toisessa k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4ss\u00e4 vastinetta. Mac-, Linux- ja UNIX-j\u00e4rjestelmien komentoikkunat ovat hyvin samankaltaisia. Windows-j\u00e4rjestelmien komentoikkuna poikkeaa paljon muiden j\u00e4rjestelmien komentoikkunoista.<\/p>\n<p>Alla kerrotaan lyhyesti <a href=\"#Win7\">Windows 7 -komentoikkunasta<\/a> ja viel\u00e4 lyhemmin <a href=\"#MacOSX\">Mac OS X:n komentoikkunasta<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.sis.uta.fi\/~laki1\/kuvat\/komentoikkuna.png\" alt=\"Komentoikkuna, k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 ja tietokonelaitteisto\" width=\"671\" height=\"367\" \/><\/p>\n<h2><a name=\"Win7\"><\/a>Windowsin komentoikkuna<\/h2>\n<p>Seuraavassa kerrotaan hieman l\u00e4hemmin yliopiston mikroluokkien koneilla olevan Windows-k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n komentoikkunasta. Jos omalla koneellasi on eri Windows, niin ei h\u00e4t\u00e4\u00e4; Windows-j\u00e4rjestelmien komentoikkunat ovat hyvin samankaltaiset. Windowsissa on my\u00f6s <a href=\"http:\/\/en.wikipedia.org\/wiki\/Windows_PowerShell\" target=\"_blank\" rel=\"noopener\">monipuolisempi komentoikkuna<\/a>, jolla ei kuitenkaan ole juuri k\u00e4ytt\u00f6\u00e4 t\u00e4ll\u00e4 kurssilla.<\/p>\n<h3>K\u00e4ynnistys<\/h3>\n<p>Windows-k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4ss\u00e4 komentoikkunan voi k\u00e4ynnist\u00e4\u00e4 usealla tavalla.<\/p>\n<ul>\n<li><em>Windows- ja <\/em><em>R-<\/em>n\u00e4pp\u00e4imi\u00e4 painamalla avautuvan <em>Run<\/em>-dialogin kautta:\n<ul>\n<li>Kirjoita <em>Open:<\/em>-kentt\u00e4\u00e4n <em>cmd<\/em>.<\/li>\n<\/ul>\n<ul>\n<li>Klikkaa <em>OK<\/em>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><em>Start<\/em>-napista avautuvan p\u00e4\u00e4valikon kautta:\n<ul>\n<li>Kirjoita hakukentt\u00e4\u00e4n <em>cmd<\/em>.<\/li>\n<li>Klikkaa <em>Programs(s)<\/em>-listasta <em>cmd.exe<\/em>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Mik\u00e4li kaikki meni oikein, niin n\u00e4yt\u00f6lle pit\u00e4isi avautua t\u00e4m\u00e4n tapainen ikkuna:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.sis.uta.fi\/~laki1\/kuvat\/cmd.png\" alt=\"Windows 7 -komentoikkuna\" width=\"676\" height=\"295\" \/><\/p>\n<p>Huomaa, ett\u00e4 komentoikkunan ulkoasu ja sen kehotteen (t\u00e4ss\u00e4 <em>C:<\/em>\\<em>Users\\Demo&gt;<\/em>) muoto riippuu k\u00e4ytt\u00e4m\u00e4si koneen asetuksista sek\u00e4 hakemistosta, johon komentoikkuna avautuu.<\/p>\n<h3>Windows-komentoikkunan ulkoasun muuttaminen<\/h3>\n<p>Toisinaan on tarpeen muuttaa komentoikkunan ulkoasua; esimerkiksi teksti voi olla liian pient\u00e4 tai ikkuna voi olla liian lyhyt. Ulkoasuun voi vaikuttaa valikosta, joka avautuu ikkunan vasemmassa yl\u00e4reunassa olevaa pient\u00e4 ikonia klikkaamalla. Valikon <em>Properties<\/em>-kohta avaa ikkunan, jossa esimerkiksi <em>Layout | Window Size | Height<\/em> -kohdasta voi vaikuttaa ikkunan kokoon pituuussuunnassa.<\/p>\n<h3><a name=\"windows_xp_komentoja\"><\/a>Windows-komentoja<\/h3>\n<p>Avoimessa komentoikkunassa n\u00e4kyv\u00e4\u00e4 hakemistoa voi k\u00e4sitell\u00e4 Windowsin graafisen k\u00e4ytt\u00f6liittym\u00e4n kautta tiedostonhallintaohjelmalla tai &#8221;suoraan&#8221; komentoikkunan kautta k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n toimintoja kutsuen. Alla on kuvailtu lyhyesti joitakin hy\u00f6dyllisi\u00e4 komentoja.<strong><br \/>\n<\/strong><\/p>\n<p class=\"sisennys\"><strong><em>dir<\/em><\/strong>&#8211; Hakemiston sis\u00e4ll\u00f6n listaus. Pelkk\u00e4 <em>dir<\/em>-komento listaa koko hakemiston sis\u00e4ll\u00f6n. Listausta voi rajoittaa tiedoston p\u00e4\u00e4tteen avulla. Esimerkiksi komento <em>dir *.py<\/em> listaisi vain <em>py<\/em>-p\u00e4\u00e4tteiset tiedostot. N\u00e4yt\u00f6lle ei tulostu tiedostojen tietoja, jos hakemisto on tyhj\u00e4 tai jos hakemistossa ei ole halutun tyyppisi\u00e4 tiedostoja.<\/p>\n<p class=\"sisennys\"><strong><em>cd<\/em><\/strong> &#8211; Hakemiston vaihto. Esimerkiksi komento <em>cd c:<\/em>\\<em>tilap<\/em>\\<em>laki<\/em> vaihtaa nykyisen hakemiston hakemistoksi <em>c:<\/em>\\<em>tilap<\/em>\\<em>laki<\/em>. <em>cd<\/em>-komentoa voi k\u00e4ytt\u00e4\u00e4 my\u00f6s siten, ett\u00e4 sill\u00e4 siirryt\u00e4\u00e4n aina yhteen hakemistoon kerrallaan kunnes ollaan halutussa hakemistossa. Hakemistoon <em>c:<\/em>\\<em>tilap<\/em>\\<em>laki<\/em> voitaisiin siis siirty\u00e4 my\u00f6s kahdella <em>cd<\/em>-komennolla: Ensin <em>cd c:<\/em>\\<em>tilap<\/em> ja sitten <em>cd laki<\/em>.<\/p>\n<p>Huomaa, ett\u00e4 <em>cd<\/em>-komento ei sovi muistilaitteelta toiselle siirtymiseen. Jos esimerkiksi nykyinen hakemisto on <em>c:<\/em>\\<em>tilap<\/em>\\<em>laki<\/em> ja aiot siirty\u00e4 <em>P<\/em>-levyn hakemistoon <em>x:<\/em>\\<em>laki<\/em>, niin pit\u00e4\u00e4 ensin antaa komento <em>p:<\/em>, joka vaihtaa muistilaiteeksi <em>C<\/em>:n asemasta <em>P<\/em>:n. Vasta t\u00e4m\u00e4n j\u00e4lkeen voi antaa komennon <em>cd x:<\/em>\\<em>laki<\/em>.<\/p>\n<p>Komennolla <em>cd ..<\/em> voi siirty\u00e4 hakemistorakenteessa yhden tason yl\u00f6sp\u00e4in. Jos esimerkiksi hakemistossa <em>c:<\/em>\\<em>tilap<\/em>\\<em>laki<\/em> antaa <em>cd ..<\/em>-komennon, siirryt\u00e4\u00e4n <em>c:<\/em>\\<em>tilap<\/em>-hakemistoon koska <em>laki<\/em>-hakemisto on <em>c:<\/em>\\<em>tilap<\/em>-hakemiston alihakemisto.<\/p>\n<p class=\"sisennys\"><strong><em>copy<\/em><\/strong> &#8211; Tiedostojen kopiointi.<\/p>\n<p class=\"sisennys\"><strong><em>del<\/em><\/strong> &#8211; Tiedostojen poisto. Huomaa, ett\u00e4 t\u00e4m\u00e4n komennon kanssa on oltava eritt\u00e4in varovainen, koska n\u00e4in tuhottua tiedostoa ei voi pelastaa roskakorista.<\/p>\n<p class=\"sisennys\"><strong><em>ren<\/em><\/strong> &#8211; Tiedostojen uudelleen nime\u00e4minen.<\/p>\n<p class=\"sisennys\"><strong><em>md<\/em><\/strong> &#8211; Hakemiston luominen.<\/p>\n<p class=\"sisennys\"><strong><em>type<\/em> <\/strong>&#8211; Tiedoston sis\u00e4ll\u00f6n tulostus n\u00e4yt\u00f6lle. Esimerkiksi <em>type hello_world.py<\/em><\/p>\n<p class=\"sisennys\"><strong><em>comp<\/em> <\/strong>&#8211; Vertailee kahta tiedostoa ja kertoo onko tiedostojen sis\u00e4lt\u00f6 sama. Esim. <em>comp tulos_malli.txt tulos_oma.txt<\/em><\/p>\n<p class=\"sisennys\"><strong><em>fc<\/em> <\/strong>&#8211; Monipuolisempi tiedostojen sis\u00e4ll\u00f6n vertailu. Eroavat kohdat tulostuvat per\u00e4kk\u00e4in. <em>N<\/em>-parametrilla komento tulostaa n\u00e4kyviin rivien numerot. Esim. <em>fc \/N tulos_malli.txt tulos_oma.txt<\/em>.<\/p>\n<p>Kustakin komennosta saa lis\u00e4tietoja antamalla komennon parametriksi <em>\/?<\/em>. Esimerkiksi antamalla komennon <em>dir \/?<\/em>, n\u00e4yt\u00f6lle tulostuu selostus <em>dir<\/em>-komennon k\u00e4yt\u00f6st\u00e4.<\/p>\n<p><strong><em>help<\/em><\/strong>-komennolla saa n\u00e4yt\u00f6lle listan kaikista k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n komennoista.<\/p>\n<p>Nuolin\u00e4pp\u00e4ill\u00e4 (nuolet yl\u00f6s ja alas) voi selata k\u00e4tev\u00e4sti komentoikkunassa aiemmin annettuja komentoja. Esimerksi painamalla kerran nuoli yl\u00f6p\u00e4in -n\u00e4pp\u00e4int\u00e4, saa kehoiteriville palautettua viimeksi annetun komennon.<\/p>\n<h2><a name=\"MacOSX\"><\/a>Mac OS X -komentoikkuna<\/h2>\n<p>Nykyisten Mac-j\u00e4rjestelmien k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 on k\u00e4yt\u00e4nn\u00f6ss\u00e4 kaupallinen UNIX-k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4. N\u00e4in UNIX- ja Linux-k\u00e4ytt\u00e4jien tuntemat komennot toimivat pitk\u00e4lti samoin Mac OS X -komentoikkunassa. Koska Windows ei kuulu UNIX-tuoteperheeseen, ei Mac-komentoikkuna ymm\u00e4rr\u00e4 useimpia Windows-komentoikkunan komentoja.<\/p>\n<p>Komentoikkunasta voi lukea lis\u00e4\u00e4 esimerkiksi <a href=\"http:\/\/blog.teamtreehouse.com\/introduction-to-the-mac-os-x-command-line\" target=\"_blank\" rel=\"noopener\">t\u00e4\u00e4lt\u00e4<\/a>. Ratkaisuja monenlaisiin ongelmiin l\u00f6ytyy muun muassa osoitteesta <a href=\"http:\/\/hopeinenomena.net\/\" target=\"_blank\" rel=\"noopener\">hopeinenomena.net<\/a>.<\/p>\n<h3>K\u00e4ynnistys<\/h3>\n<p>Voit avata komentoikkunan valitsemalla: <em>Finder<\/em> | <em>Applications | Utilities | Terminal<\/em>. Suomenkielisiss\u00e4 j\u00e4rjestelmiss\u00e4: <em>Finder<\/em> | <em>Ohjelmat | Lis\u00e4ohjelmat | P\u00e4\u00e4te<\/em>.<\/p>\n<p>Macin komentoikkuna n\u00e4ytt\u00e4\u00e4 t\u00e4m\u00e4n kaltaiselta:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.sis.uta.fi\/~laki1\/kuvat\/terminal.png\" alt=\"Mac OS X -komentoikkuna\" width=\"466\" height=\"300\" \/><\/p>\n<p>Yll\u00e4 oleva ikkuna on avattu vierastilill\u00e4. Omalla koneella komentoikkuna avataan omalla k\u00e4ytt\u00e4j\u00e4tilill\u00e4, jolloin ikkunan yl\u00e4reunassa ja kehotteessa n\u00e4kyy k\u00e4ytt\u00e4j\u00e4n oma tunnus.<\/p>\n<h3>Komentoja<\/h3>\n<p><strong><em>ls<\/em><\/strong> &#8211; Hakemiston sis\u00e4ll\u00f6n listaus. Tarkempi listaus parametreill\u00e4 <em>a<\/em> ja <em>l<\/em>. Esimerkiksi komento <em>ls -al *.py<\/em> listaa tarkemmin tiedoin hakemiston py-p\u00e4\u00e4tteiset tiedostot.<\/p>\n<p><strong><em>cd<\/em><\/strong> &#8211; Hakemiston vaihto. Esimerkiksi komento <em>cd <\/em><em>laki\/harjoitukset<\/em> vaihtaa nykyisen hakemiston hakemistoksi <em>laki\/harjoitukset<\/em>. <em>cd<\/em>-komentoa voi k\u00e4ytt\u00e4\u00e4 my\u00f6s siten, ett\u00e4 sill\u00e4 siirryt\u00e4\u00e4n aina yhteen hakemistoon kerrallaan kunnes ollaan halutussa hakemistossa. Huomaa, ett\u00e4 hakemistoerotin on eri suuntaan kallellaan kuin Windows-j\u00e4rjestelmiss\u00e4. Mac-, UNIX- ja Linux-j\u00e4rjestelmiss\u00e4 hakemistot erotetaan toisistaan kauttaviivalla. Komennolla <em>cd ..<\/em> voi siirty\u00e4 hakemistorakenteessa yhden tason yl\u00f6sp\u00e4in. Pelkk\u00e4 <em>cd-<\/em>komento vaihtaa hakemistoksi k\u00e4ytt\u00e4j\u00e4n kotihakemiston.<\/p>\n<p><strong><em>cp<\/em><\/strong> &#8211; Tiedostojen kopiointi. Ole varovainen. Olemassa olevan tiedoston p\u00e4\u00e4lle kopioiminen tuhoaa kohdetiedoston sis\u00e4ll\u00f6n.<\/p>\n<p><strong><em>rm<\/em><\/strong> &#8211; Tiedostojen poisto. K\u00e4yt\u00e4 vain pakkotilanteessa. Komennolla tuhottua tiedostoa ei voi pelastaa roskakorista.<\/p>\n<p><strong><em>mkdir<\/em><\/strong> &#8211; Hakemiston luominen.<\/p>\n<p class=\"sisennys\"><strong><em>cat<\/em><\/strong> &#8211; Tiedoston sis\u00e4ll\u00f6n tulostus n\u00e4yt\u00f6lle. Esimerkiksi <em>cat hello_world.py<\/em><\/p>\n<p><strong><em>diff<\/em><\/strong> &#8211; Eritt\u00e4in monipuolinen ty\u00f6kalu tiedostojen sis\u00e4ll\u00f6n vertailuun. Komennon tulosten tulkitseminen vaatii harjoittelua.<\/p>\n<p>Kustakin komennosta saa lis\u00e4tietoja antamalla <strong><em>man<\/em><\/strong>-komennon parametriksi kyseisen komennon nimen. Esimerkiksi antamalla komennon <em>man ls<\/em>, n\u00e4yt\u00f6lle tulostuu selostus <em>ls<\/em>-komennon k\u00e4yt\u00f6st\u00e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python-ohjelmien tulkintaan tarvitaan komentoikkunaa, joka on tekstipohjainen tapa vuorovaikuttaa k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n kanssa. Komentoikkuna tunnetaan my\u00f6s muun muassa komentorivin\u00e4, terminaalina ja kuorena. Tekstipohjainen k\u00e4ytt\u00f6liittym\u00e4 on graafista k\u00e4ytt\u00f6liittym\u00e4\u00e4 vanhempi keksint\u00f6 ja se on nyky\u00e4\u00e4n yleens\u00e4 toissijainen vuorovaikutustapa, koska k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4\u00e4 on huomattavasti helpompi k\u00e4ytt\u00e4\u00e4 graafisen k\u00e4ytt\u00f6liittym\u00e4n kautta. Komentoikkunan avulla voidaan kuitenkin suorittaa samoja toimenpiteit\u00e4 kuin graafisen k\u00e4ytt\u00f6liittym\u00e4n kautta. Esimerkiksi &hellip; <a href=\"https:\/\/coursepages2.tuni.fi\/tiep1-1\/syksy-2019\/ohjelmointivalineita\/komentoikkuna\/\" class=\"more-link\">Jatka artikkeliin <span class=\"screen-reader-text\">Komentoikkuna<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"parent":116,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-118","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/pages\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":6,"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/pages\/118\/revisions"}],"predecessor-version":[{"id":250,"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/pages\/118\/revisions\/250"}],"up":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/pages\/116"}],"wp:attachment":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep1-1\/wp-json\/wp\/v2\/media?parent=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}