Ero sivun ”Putki” versioiden välillä

Siirry navigaatioon Siirry hakuun
18 merkkiä lisätty ,  16. helmikuuta 2010
kh; uniq+sort; terminaali -> pääteikkuna
p (lk.)
(kh; uniq+sort; terminaali -> pääteikkuna)
 
Rivi 1: Rivi 1:
'''Putkittaminen''' tarkoittaa toiseen ohjelman [[standardituloste]]en ohjaamista toisen ohjelman standardisyötteelle. Se on erittäin hyödyllinen [[komentotulkki]]<nowiki>operaatio</nowiki>, jonka hallitseminen yhdessä [[grep]] ja [[less]] -komentojen kanssa on avain Linux- ja Unix-järjestelmien komentotulkin tehokkaaseen hyödyntämiseen. Komentotulkissa putki luodaan operaattorilla ''ohjelma1'' | ''ohjelma2''. Merkistä | käytetään tässä yhteydessä tämän vuoksi yleensä nimeä ''putki''.
'''Putkittaminen''' tarkoittaa toisen ohjelman [[standardituloste]]en ohjaamista toisen ohjelman standardisyötteelle. Se on erittäin hyödyllinen [[komentotulkki]]<nowiki>operaatio</nowiki>, jonka hallitseminen yhdessä [[grep]] ja [[less]] -komentojen kanssa on avain Linux- ja Unix-järjestelmien komentotulkin tehokkaaseen hyödyntämiseen. Komentotulkissa putki luodaan operaattorilla ''ohjelma1'' | ''ohjelma2''. Merkistä | käytetään tässä yhteydessä tämän vuoksi yleensä nimeä ''putki''.


== Esimerkki ==
== Esimerkki ==
Rivi 10: Rivi 10:


Putkia voi olla myös useita peräkkäin, ja niitä voi yhdistellä komentotulkin [[uudelleenohjaus]]<nowiki>operaattoreihin</nowiki> mielivaltaisesti. Seuraava komento poistaa tiedostosta ''kayttajat.txt.gz'' identtiset rivit komennolla [[uniq]], ja lopuksi pakkaa tiedoston uudelleen, sekä ohjaa pakatun tulosteen tiedostoon ''kayttajat-uniq.txt.gz''
Putkia voi olla myös useita peräkkäin, ja niitä voi yhdistellä komentotulkin [[uudelleenohjaus]]<nowiki>operaattoreihin</nowiki> mielivaltaisesti. Seuraava komento poistaa tiedostosta ''kayttajat.txt.gz'' identtiset rivit komennolla [[uniq]], ja lopuksi pakkaa tiedoston uudelleen, sekä ohjaa pakatun tulosteen tiedostoon ''kayttajat-uniq.txt.gz''
  gzip -c kayttajat.txt.gz | uniq | gzip -c - > kayttajat-uniq.txt.gz
  gzip -c kayttajat.txt.gz | sort | uniq | gzip -c - > kayttajat-uniq.txt.gz


== Standardivirhe ==
== Standardivirhe ==
Putkitusoperaattori | ohjaa vain ohjelman standarditulosteen toiselle ohjelmalle. Minkä tahansa putkessa esiintyvän ohjelman virheilmoitukset tulostuvat siksi suoraan [[terminaali]]in. Koska jokaisella ohjelmalla on vain kaksi ulostuloa (standardituloste ja -virhe) mutta vain yksi sisääntulo (standardisyöte), pitää standardivirhe ohjata erikseen standardi'''tulosteelle''', jotta se voitaisiin putkittaa toiselle ohjelmalle. Tämä tapahtuu komentamalla
Putkitusoperaattori | ohjaa vain ohjelman standarditulosteen toiselle ohjelmalle. Minkä tahansa putkessa esiintyvän ohjelman virheilmoitukset tulostuvat siksi suoraan [[terminaaliemulaattori|pääteikkunaan]]. Koska jokaisella ohjelmalla on vain kaksi ulostuloa (standardituloste ja -virhe) mutta vain yksi sisääntulo (standardisyöte), pitää standardivirhe ohjata erikseen standardi'''tulosteelle''', jotta se voitaisiin putkittaa toiselle ohjelmalle. Tämä tapahtuu komentamalla
  ''ohjelma1'' 2>&1 | ''ohjelma2''
  ''ohjelma1'' 2>&1 | ''ohjelma2''
Jos jonkin putkessa olevan ohjelman standardivirhettä ei haluta putkittaa toiselle ohjelmalle, mutta sitä ei myöskään haluta näkyville terminaaliin, se voidaan ohjata erikoistiedostoon [[null|/dev/null]] esimerkiksi seuraavasti:
Jos jonkin putkessa olevan ohjelman standardivirhettä ei haluta putkittaa toiselle ohjelmalle, mutta sitä ei myöskään haluta näkyville, se voidaan ohjata erikoistiedostoon [[null|/dev/null]] esimerkiksi seuraavasti:
  ''ohjelma1'' | ''ohjelma2'' 2> /dev/null | ''ohjelma3''
  ''ohjelma1'' | ''ohjelma2'' 2> /dev/null | ''ohjelma3''
Tämä ohjaa ''ohjelma2'':n mahdolliset virheilmoitukset null:ille. ''ohjelma1'':n ja ''ohjelma3'':n virheilmoitukset tulostuvat normaalisti terminaaliin.
Tämä ohjaa ''ohjelma2'':n mahdolliset virheilmoitukset null:ille. ''ohjelma1'':n ja ''ohjelma3'':n virheilmoitukset tulostuvat normaalisti terminaaliin.
785

muokkausta

Navigointivalikko