Muokataan sivua Standardivirrat
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: | ||
Standardivirroilla tarkoitetaan Unix- ja Linux-ohjelmien standardeja syöttö- ja tulostuskanavia. Niitä on kolme, standardisisääntulo (STDIN), standardiulostulo (STDOUT) ja standardivirhe (STDERR). Kun [[komentorivi]]llä annetaan esimerkiksi komento | |||
Kun [[komentorivi]]llä annetaan komento | |||
[[cat]] | [[cat]] | ||
tarkoittaa tämä sitä, että catin standardivirrat on liitetty oletuksiin, eli STDIN näppäimistöön ja STDOUT ja STDERR näyttöön. Käytännössä tämä tarkoittaa sitä, että cat odottaa merkkejä näppäimistöltä syöttääkseen ne välittömästi näytölle ([[virtuaalikonsoli]]n [[laitetiedosto]]on). Jos catin toiminnassa tapahtuu virhe, tulostetaan siitä kertova ilmoitus näytölle. | |||
Jos taas annetaan komento | Jos taas annetaan komento | ||
cat tiedosto1 | cat tiedosto1 | ||
cat | lukee cat tiedostoa tiedosto1 ja tulostaa sen STDOUTiin eli näytölle. | ||
cat < tiedosto1 | cat <tiedosto1 | ||
Johtaa samaan lopputulokseen kuin ylläoleva komento, mutta tässä tiedosto1 ohjataan erillisellä komennolla catin STDINiin, josta cat sitten syöttää sen STDOUTiin. | |||
Jos | Jos tulostus halutaan ohjata toiselle ohjelmalle, voidaan käyttää esimerkiksi syntaksia | ||
cat < tiedosto1 | [[less]] | cat < tiedosto1|[[less]] | ||
jossa catin tuloste putkitetaan lessille lisäkäsittelyä varten. Tässä catin | jossa catin tuloste putkitetaan lessille lisäkäsittelyä varten. Tässä catin STDIN on liitetty tiedostoon tiedosto1 ja STDOUT uudelleenohjattu lessille. Jos catin tuloste halutaan ohjata tiedostoon, voidaan siihen käyttää suurempi kuin -merkkiä esimerkiksi seuraavasti: | ||
cat tiedosto1 > /tmp/data1 | cat tiedosto1 > /tmp/data1 | ||
Tässä cat lukee tiedostoa tiedosto1 | Tässä cat lukee tiedostoa tiedosto1 ja ohjaa sen STDOUTin kautta tiedostoon /tmp/data1. | ||
STDERRiä ei vielä sen sijaan ole liitetty mihinkään erityiseen paikkaan, vaan virheilmoitukset tulostuvat edelleenkin ruudulle. STDERRin käsittelyyn voidaan käyttää kolmea erilaista syntaksia: | |||
cat tiedosto1 2> lista.txt | cat tiedosto1 2> lista.txt | ||
Ohjaa catin tulosteesta vain | Ohjaa catin tulosteesta vain STDERRin tiedostoon lista.txt. Vastaavasti | ||
cat tiedosto1 1> lista.txt | cat tiedosto1 1> lista.txt | ||
ohjaisi normaaliin tapaan vain | ohjaisi normaaliin tapaan vain STDOUTin tiedostoon ja STDERR tulostuisi näytölle. | ||
Sekä STDOUTin että STDERRin uudelleenohjaukseen samaan paikkaan voi käyttää syntaksia | |||
cat tiedosto1 >& lista.txt | |||
==Erikoistapauksia== | ==Erikoistapauksia== | ||
Eräät ohjelmat, jotka oletuksena tulostavat tiedostoon, voidaan saada tulostamaan | Eräät ohjelmat, jotka oletuksena tulostavat tiedostoon, voidaan saada tulostamaan STDOUTiin antamalla tiedostonnimeksi "-" tai "- -", esimerkiksi | ||
cat /home/juliste.ps | [[Ghotstscript|gs]] -q -dNOPAUSE -sDEVICE=ljet4 -r600 -sOutputFile=- - | cat /home/juliste.ps | [[Ghotstscript|gs]] -q -dNOPAUSE -sDEVICE=ljet4 -r600 -sOutputFile=- - | ||
Tässä gs eli | Tässä gs eli Ghotstscript muuntaa catilta saamansa [[PostScript]]-tiedoston ljet4-tulostimelle sopivalle kuvauskielelle ja ohjaa tuloksen STDOUTiin eli tässä tapauksessa näytölle. | ||
== Tee == | == Tee == | ||
Komentoa [[tee]] voidaan käyttää ohjaamaan sen | Komentoa [[tee]] voidaan käyttää ohjaamaan sen STDINiin syötetty data sekä tiedostoon että uudelleen STDOUTiin. Esimerkiksi komento | ||
cat tiedosto1 | tee lista.txt | cat tiedosto1|tee lista.txt | ||
tulostaisi tiedosto1:n sekä näytölle että tiedostoon lista.txt. | tulostaisi tiedosto1:n sekä näytölle että tiedostoon lista.txt. | ||
Komento | Komento | ||
cat tiedosto1 | tee lista.txt >> lista2.txt | cat tiedosto1|tee lista.txt>>lista2.txt | ||
ohjaisi tiedosto1:n sekä tiedostoon lista.txt (ylikirjoittaen sen vanhan sisällön) että myös tiedoston lista2.txt loppuun (>-merkki annettu tuplana). Näytölle ei tulostu mitään, koska teen | ohjaisi tiedosto1:n sekä tiedostoon lista.txt (ylikirjoittaen sen vanhan sisällön) että myös tiedoston lista2.txt loppuun (>-merkki annettu tuplana). Näytölle ei tulostu mitään, koska teen STDOUT on ohjattu tiedostoon lista2.txt. | ||
Jos halutaan, että tiedoston lista.txt sisältöä ei ylikirjoiteta, vaan uusi teksti lisätään sen loppuun, voidaan käyttää valitsinta -a: | Jos halutaan, että tiedoston lista.txt sisältöä ei ylikirjoiteta, vaan uusi teksti lisätään sen loppuun, voidaan käyttää valitsinta -a: | ||
cat tiedosto1 | tee -a lista.txt | cat tiedosto1|tee -a lista.txt | ||
==Katso myös== | ==Katso myös== | ||
*[[Komentorivin perusteet]] | *[[Komentorivin perusteet]] | ||
*[[Nimetty putki]] | *[[Nimetty putki]] | ||
[[Luokka:Järjestelmä]] | [[Luokka:Järjestelmä]] | ||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] |