Bemeneti, kimeneti és szállítószalagok
Stdin és stdout
A standard I / O patakok elsősorban a csere szöveges információ. Itt nem számít, ki keresztül kommunikál szöveg: egy ember, egy program vagy programok egymást - a legfontosabb dolog, hogy van egy adatcsatornán, és így szólt: „ugyanazt a nyelvet”.
Munka közben a parancssorban, akkor a szabványos bemenetről a héj csatlakozik a billentyűzet, és a szabványos kimenet és hiba kimenet - a képernyőről (vagy terminál emulátor ablakban). Mutassunk példát egyszerű parancsokat - kat. Általában a cat parancs adatokat olvas az összes felsorolt fájlok paraméternek, és elküldi a kiolvasott közvetlenül a szabványos kimenetre (stdout). Ezért a parancs
tartalmát jeleníti meg az első fájl történelem végleges. majd - mesterek szakdolgozat fájlt.
Azonban, ha a fájl neve nincs megadva, macska programot olvassa be a standard bemenetről, és azonnal vissza őket stdoutra (nem változik). Ezek áthaladnak a macskát. mind a csövön keresztül. Itt egy példa:
Minden sor be a billentyűzetről, macska program azonnal visszatér a képernyőre. Amikor belép információt a standard input végét szövegbevitel esetén egy speciális billentyűkombináció, általában a Ctrl - D.
Nézzük egy másik példát. sort parancs beolvassa a bemeneti szöveget (szintén stdin, hacsak nincs fájl neve), és gyárt egy sor ezeket a sorokat, rendezett módon a stdout-ra. Mi ellenőrizze annak hatását.
Amint látható, miután a Ctrl - D. sort vezetett karakterlánc alfabetikus sorrendben.
Átirányítása bemeneti és kimeneti
Tegyük fel, hogy szeretné küldeni a kimeneti sort egy fájlt, hogy mentse betűrendes listája a lemezt. A héj segítségével irányítsa át a kimenetét egy fájlba a> jel. Itt egy példa:
Látható, hogy az eredmény a sort parancs nem jelenik meg, de ez egy fájlban tárolja nevű bevásárló-listát. A kijelző a fájl tartalma:
Azonban, meg tudod csinálni, különben nem csak átirányítása szabványos kimenet és szabványos bemenet egy file kezelő ezzel a szimbólummal <.
Az eredmény a sort parancs Bemutatjuk a koncepció a szűrőt. Filter egy olyan program, amely beolvassa a standard bemenetről, feldolgozza azokat valamilyen módon, és elküldi az eredményt a szabványos kimenetre. Ha átirányítás szabványos bemeneti és kimeneti fájlokat működhet. Mint már említettük, alapértelmezés szerint stdin és stdout olvassa el a billentyűzet és a képernyő, ill. sort egy egyszerű szűrőprogram - rendezi a bejövő adatokat, és elküldi az eredményt a szabványos kimenetre. Nagyon egyszerű szűrő program macska - nem tesz semmit, hogy a bemeneti adatokat, hanem egyszerűen továbbítja a kimenetre. Azt már kimutatták, hogyan kell használni a fajta, mint egy szűrő programot. Ezekben a példákban azt feltételezzük, hogy a kezdeti adatok vannak tárolva egy fájlt vagy a kezdeti adatok kerüljenek be a billentyűzeten (stdin). De mi van, ha azt szeretnénk, hogy rendezni az adatokat, amelyek eredményeként egy másik csapat, például ls? Nézzük rendezheti az adatokat fordított ABC sorrendben; Ez az opció -r sort parancs. Ha azt szeretnénk, hogy sorolja fel a fájlokat az aktuális könyvtárban ábécé sorrendben visszafelé, az egyik módja ennek lenne olyan. Először a parancs ls: Most kimenetét átirányítjuk az ls parancs nevű fájl file-list Itt, a kimenet az ls parancs elmenti egy fájlba, majd a fájl feldolgozása megtörtént egyfajta -r paranccsal. De ez a módszer nehézkes és ezért szükség van egy ideiglenes fájl tárolja a program kimenete ls adatokat. Határozata létrehozta a csatlakozott csapatok lehetnek ebben a helyzetben (csővezetékek). Dock biztosít shellparancsot hogy stdout az első parancs irányítja az stdin a második parancs. Ebben az esetben, azt akarjuk, hogy küldje el a stdout ls az stdin sort parancs. | Symbol használják dokkoló. amint az a következő példa: Ez a parancs rövidebb, mint a parancs, és akkor könnyebb gépelni. Vegyünk egy másik hasznos példa. csapat Ez ad egy hosszú listát a fájlokat. A legtöbb ilyen lista ugrálni a képernyőn túl gyorsan tartalmának ezt a listát lehet olvasni. Próbáld meg használni a több paranccsal megjeleníthető az alkatrészek listáját: Most ez lehet „flip” listán. Akkor megy előre, és kiköthet több mint két csapat. Tekintsük a csapat vezetője. amely egy szűrőt következő tulajdonságokkal rendelkezik: megjeleníti az első sorhoz (ebben az esetben a bemenet kimenetet kapunk több egymásra parancsokat). Ha azt akarjuk, hogy megjelenjen az utolsó fájlnév alfabetikus sorrendben az aktuális könyvtárban, akkor a következő hosszú parancsot: ahol a parancs fej -1 megjeleníti az első sorban a bemeneti húrok kapott, (ebben az esetben áll egy adatfolyamot a ls), abc szerint fordított sorrendben sorrendben. A hatás a> jel átirányítani a kimeneti fájl romboló hatású; Más szóval, a csapat elpusztítják a file-list fájl tartalmát. Ha a fájl korábban létezett, és a helyén egy új fájl létrehozásához. Ha ehelyett az átirányítás kerül sor segítségével szimbólumok >>. kimenet van kijelölve, hogy a végén a fájlt, az eredeti fájl tartalmát nem kell semmisíteni. Például a parancs tulajdonítja a következtetést az ls parancs fájl végére-fájlt. Meg kell jegyezni, hogy átirányítja bemenet és kimenet, valamint stykovanie csapatok végzik shellparancsot, amely támogatja a szimbólumok használata> és >>. |. A parancsok önmagukban nem képesek érzékelni és értelmezni ezeket a szimbólumokat.Használata halmozott parancsok (konvejor)
Roncsolásmentes átirányítás