Ero sivun ”Nimetty putki” 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”) |
pEi muokkausyhteenvetoa |
||
(3 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
Nimetty putki eli FIFO ("First In, First Out") on tiedostojärjestelmään luotu pysyvä erikoistiedosto, jota käytetään eri prosessien väliseen [[standardivirrat|kommunikointiin]]. Nimettyyn putkeen voivat eri aikoihin tai samanaikaisesti lukea ja kirjoittaa eri prosessit, kun taas tavalliseen nimeämättömään, tilapäiseen putkeen (esim. [[cat]] tiedosto ''|'' [[less]]) ei voi syöttää ja tulostaa kuin kaksi samanaikaisesti toimivaa prosessia. | |||
==Käyttö== | |||
Nimetty putki luodaan komennolla mkfifo, esimerkiksi | |||
mkfifo putki1 | |||
Annetaan yhdessä [[virtuaalikonsoli]]ssa komento | |||
[[ls]] -l >putki1 | |||
jolla syötetään tiedostolistaus nimettyyn putkeen putki1. Koska mikään prosessi ei vielä lue ls:n putkeen syöttämää dataa, pysähtyy ls:n suoritus automaattisesti odottamaan vastaanottavaa prosessia. Annetaan seuraavaksi toisessa virtuaalikonsolissa komento | |||
cat putki1 | |||
joka tulostaa putkesta saamansa datan näytölle. Kun cat on tulostanut putken kautta ls:ltä saamansa syötteen, loppuu molempien prosessien suoritus automaattisesti (EOF). | |||
Annetaan komento | |||
[[bzip2]] -c < putki1 > tavara.bz2 & | |||
joka laittaa bzip2:n taustalle "vahtimaan" putki1:stä ja pakkaamaan sieltä tulevan datan tiedostoon tavara.bz2. | |||
Kun tämän jälkeen taas ohjataan ls:n tuloste putkeen komennolla | |||
[[ls]] -l >putki1 | |||
pakkaa bzip2-prosessi tämän datan ja lopettaa itsensä. | |||
Pakatun tiedoston sisällön voi tarkistaa vaikkapa komennolla | |||
[[bzcat]] tiedosto.bz2 | |||
Nimetyn putken voi poistaa normaaliin tapaan komennolla | |||
[[rm]] putki1 | |||
==Katso myös== | |||
*[[Putki]] - nimeämätön eli anonyymi putki | |||
*[[Standardivirrat]] | |||
*[[Komentorivin perusteet]] | |||
==Aiheesta muualla== | |||
*[http://www2.linuxjournal.com/article/2156 Linux Journalin artikkeli nimetyistä putkista] | |||
[[Luokka:Järjestelmä]] | |||
[[Luokka:Komentorivi]] | |||
[[Luokka:Ohjeet]] | |||
[[pl:Nazwany potok]] |
Nykyinen versio 30. kesäkuuta 2015 kello 12.11
Nimetty putki eli FIFO ("First In, First Out") on tiedostojärjestelmään luotu pysyvä erikoistiedosto, jota käytetään eri prosessien väliseen kommunikointiin. Nimettyyn putkeen voivat eri aikoihin tai samanaikaisesti lukea ja kirjoittaa eri prosessit, kun taas tavalliseen nimeämättömään, tilapäiseen putkeen (esim. cat tiedosto | less) ei voi syöttää ja tulostaa kuin kaksi samanaikaisesti toimivaa prosessia.
Käyttö[muokkaa]
Nimetty putki luodaan komennolla mkfifo, esimerkiksi
mkfifo putki1
Annetaan yhdessä virtuaalikonsolissa komento
ls -l >putki1
jolla syötetään tiedostolistaus nimettyyn putkeen putki1. Koska mikään prosessi ei vielä lue ls:n putkeen syöttämää dataa, pysähtyy ls:n suoritus automaattisesti odottamaan vastaanottavaa prosessia. Annetaan seuraavaksi toisessa virtuaalikonsolissa komento
cat putki1
joka tulostaa putkesta saamansa datan näytölle. Kun cat on tulostanut putken kautta ls:ltä saamansa syötteen, loppuu molempien prosessien suoritus automaattisesti (EOF).
Annetaan komento
bzip2 -c < putki1 > tavara.bz2 &
joka laittaa bzip2:n taustalle "vahtimaan" putki1:stä ja pakkaamaan sieltä tulevan datan tiedostoon tavara.bz2.
Kun tämän jälkeen taas ohjataan ls:n tuloste putkeen komennolla
ls -l >putki1
pakkaa bzip2-prosessi tämän datan ja lopettaa itsensä. Pakatun tiedoston sisällön voi tarkistaa vaikkapa komennolla
bzcat tiedosto.bz2
Nimetyn putken voi poistaa normaaliin tapaan komennolla
rm putki1
Katso myös[muokkaa]
- Putki - nimeämätön eli anonyymi putki
- Standardivirrat
- Komentorivin perusteet