Muokataan sivua Putki

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

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 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''.
'''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 | sort | uniq | gzip -c - > kayttajat-uniq.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 [[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
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.


== Katso myös ==
[[Luokka:Komentotulkit]]
* [[Komentorivin perusteet]]
* [[Nimetty putki]]
 
[[Luokka:Komentorivi]]
[[Luokka:Perustietoa]]
[[Luokka:Perustietoa]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)
Noudettu kohteesta ”https://www.linux.fi/wiki/Putki