Ero sivun ”Standardivirrat” versioiden välillä
ARTTUSN WIHOWIIMEINEN MARSSI TÄYTIN TOIVEENNE PÄÄSETTE NYT EROON MUSTA!!!!!!!! (keskustelu | muokkaukset) (Ak: Sivun sisältö korvattiin sisällöllä ”HYVÄSTI NUSSIJAT”) |
(Kumottu muokkaus #23485, jonka teki ARTTUSN WIHOWIIMEINEN MARSSI TÄYTIN TOIVEENNE PÄÄSETTE NYT EROON MUSTA!!!!!!!! ([[User talk:ARTTUSN WIH) |
||
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 | |||
[[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 | |||
cat tiedosto1 | |||
lukee cat tiedostoa tiedosto1 ja tulostaa sen STDOUTiin eli näytölle. | |||
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 tulostus halutaan ohjata toiselle ohjelmalle, voidaan käyttää esimerkiksi syntaksia | |||
cat < tiedosto1|[[less]] | |||
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 | |||
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 | |||
Ohjaa catin tulosteesta vain STDERRin tiedostoon lista.txt. Vastaavasti | |||
cat tiedosto1 1> lista.txt | |||
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== | |||
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=- - | |||
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 == | |||
Komentoa [[tee]] voidaan käyttää ohjaamaan sen STDINiin syötetty data sekä tiedostoon että uudelleen STDOUTiin. Esimerkiksi komento | |||
cat tiedosto1|tee lista.txt | |||
tulostaisi tiedosto1:n sekä näytölle että tiedostoon lista.txt. | |||
Komento | |||
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 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: | |||
cat tiedosto1|tee -a lista.txt | |||
==Katso myös== | |||
*[[Komentorivin perusteet]] | |||
*[[Nimetty putki]] | |||
[[Luokka:Järjestelmä]] | |||
[[Luokka:Komentorivi]] |
Versio 26. lokakuuta 2008 kello 11.26
Standardivirroilla tarkoitetaan Unix- ja Linux-ohjelmien standardeja syöttö- ja tulostuskanavia. Niitä on kolme, standardisisääntulo (STDIN), standardiulostulo (STDOUT) ja standardivirhe (STDERR). Kun komentorivillä annetaan esimerkiksi komento
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 (virtuaalikonsolin laitetiedostoon). Jos catin toiminnassa tapahtuu virhe, tulostetaan siitä kertova ilmoitus näytölle.
Jos taas annetaan komento
cat tiedosto1
lukee cat tiedostoa tiedosto1 ja tulostaa sen STDOUTiin eli näytölle.
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 tulostus halutaan ohjata toiselle ohjelmalle, voidaan käyttää esimerkiksi syntaksia
cat < tiedosto1|less
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
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
Ohjaa catin tulosteesta vain STDERRin tiedostoon lista.txt. Vastaavasti
cat tiedosto1 1> lista.txt
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
Eräät ohjelmat, jotka oletuksena tulostavat tiedostoon, voidaan saada tulostamaan STDOUTiin antamalla tiedostonnimeksi "-" tai "- -", esimerkiksi
cat /home/juliste.ps | gs -q -dNOPAUSE -sDEVICE=ljet4 -r600 -sOutputFile=- -
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
Komentoa tee voidaan käyttää ohjaamaan sen STDINiin syötetty data sekä tiedostoon että uudelleen STDOUTiin. Esimerkiksi komento
cat tiedosto1|tee lista.txt
tulostaisi tiedosto1:n sekä näytölle että tiedostoon lista.txt.
Komento
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 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:
cat tiedosto1|tee -a lista.txt