Muokataan sivua Putki
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 1: | Rivi 1: | ||
'''Putkittaminen''' tarkoittaa | '''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''. | ||
== 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 | gzip -c kayttajat.txt.gz | 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 [[ | 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 | ||
''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, 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 terminaaliin, 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. | ||
Rivi 23: | Rivi 23: | ||
* [[Nimetty putki]] | * [[Nimetty putki]] | ||
[[Luokka: | [[Luokka:Komentotulkit]] | ||
[[Luokka:Perustietoa]] | [[Luokka:Perustietoa]] |