Rövid elméleti információk

A cél a munka - a gyakorlati bevezetés a módszerek létrehozása és a Linux operációs rendszer forgatókönyvek

Annak szükségességét, hogy héjprogramokon

Ennek egyik oka a használata shell script - gyors és egyszerű programozás. A héj nagyon hasznos kis segédprogram, hogy végre egy viszonylag egyszerű feladat, ahol a teljesítmény kevésbé fontos, mint az egyszerű beállítás, karbantartás, és a hordozhatóság. A héj lehet használni a folyamatok szabályozásához, biztosítva a parancsok végrehajtása, meghatározott sorrendben, ami függ a sikeres végrehajtás minden szakaszában.

Bár kifelé héj nagyon hasonlít egy parancssort a Microsoft Windows, sokkal erősebb és képes végrehajtani a saját nagyon komplex programot. A héj végrehajt egy shell programot, gyakran nevezik szkriptek vagy parancsfájlok értelmezni futásidőben. Ez a megközelítés megkönnyíti a hibakeresést, mert akkor a program futtatásához sorról sorra, és nem vesztegeti az idejét újrafordítása. De a feladat, hogy fontos, hogy futási idő vagy igényel intenzív CPU a héj egy nem megfelelő környezetben.

1.2 Command Shell

Shell - egy olyan program, amely úgy működik, mint egy interfész a felhasználó és a Linux operációs rendszer, amely lehetővé teszi, hogy adja meg a parancsokat, hogy kell futtatni az operációs rendszer. A OSLinuxvpolne létezhet több héj telepítve, és a különböző felhasználók választhatnak, amelyik tetszik nekik. Mivel OSLinux- moduláris rendszer lehet beszúrni, és alkalmazza az egyik több különböző szabványos kagyló. VLmuxstandartnaya héj, telepítve van a / bin / shi a mellékelt szerszámok proektaGNU, nazyvaetsyabash (GNUBourne-AgainSHell). Ebben a dolgozatban használt obolochkabashversii 3, funkcionális képességeit közösek a héjak, amelyek megfelelnek a követelményeknek standartaPOSIX.

Rövid elméleti információk

Ábra. 1. Az integrált architektúra a Linux operációs rendszer

Csövek és átirányítás

Mielőtt belemennénk a részleteket héjprogramok, meg kell mondani néhány szót a lehetőségek átirányítása bemeneti és kimeneti programok (nem csak egy shell program) Linux alatt.

Korábban, bizonyos típusú átirányítás vitatták, mint például:

megőrizve a kimeneti fájl LSB imenemlsoutput.txt.

Azonban átirányítás segítségével sokkal többet, mint ez az egyszerű példa is mutatja. Ceychas kell tudni csak, hogy 0 file leíró standard bemenet, 1 file leíró - szabványos kimenet és 2 file leíró - stderr. Mindegyik fájl átirányítható egymástól függetlenül. Na.samom esetben át lehet irányítani és egyéb fájlleírók, de a szabály, nincs szükség átirányítani más jellemzőket, kivéve standard: 0, 1 és 2.

Az előző példában, a standard kimenet irányítva egy fájlt a> operátort. Alapértelmezésben, ha egy fájlt a megadott néven már létezik, felülírja. Hozzáfűzni, hogy a végén a fájlt a >> operátor. Például a parancs

PSV hozzáfűzi kiadási végétől a megadott fájlt. Ebben a példában, majd a $ jel előtt a csapat - meghívó OSLinux.

Átirányítani a standard hibát az üzemeltető> illessze be a kulcsszó számát kívánt fájlt átirányítani. Mivel a szabványos bemeneti fájl leíró hiba 2, válasszuk a kezelő 2>. Gyakran hasznos, hogy elrejtse a standard hiba áramot, gátolja annak kimenetét a képernyőre.

Tegyük fel, hogy az alkalmazni kívánt parancsot killdlya befejezése a forgatókönyvet. Mindig van egy kis kockázata, hogy a folyamat végén, hogy végre komandakill. Ha ez megtörténik, komandakillvyvedet hibaüzenetet standard hiba, amely alapértelmezés szerint jelenik meg. Átirányítása a szabványos kimenet és a hiba, akkor meg tudja akadályozni komandekillvyvodit bármi volt a szöveg a képernyőn.

A parancs $ kill -HUP 1234> killout.txt 2> killer.txt

tegye a kimeneti hiba információkat a különböző fájlokat.

Ha inkább gyűjteni mindkét kimenő adatok egy fájlban, akkor az üzemeltető> 2 csatlakoztatni a két kimeneti stream. Így a parancs

$ Kill-január 1234> killerr.txt2> 41

tegye a kimenetre és szabványos ugyanabba a fájlba. Ügyeljen arra, hogy a sorrendben a piaci szereplők. A fenti példa olvasható, mint „átirányítani kimenetét egy fájlba killerr.txt, majd stderr hogy ugyanazon a helyen, mint a standard kimenetre.” Ha megszeged a rend, átirányítás végrehajtásra nem, mint ahogy várnánk.

Ennek eredményeként a find parancs segítségével killmozhno gyakran kell befejezni a kódot, kivéve, bármi legyen is az stdout vagy stderr. Annak érdekében, hogy teljes mértékben elveszíti azokat a kiadási, akkor egy univerzális „papírkosárba” Linux / dev / null, az alábbiak szerint:

$ Kill-január 1234> / dev / null2> fil

Valamint azt a következtetést lehet átirányítani bemenet. Például $ több

Folyamatokat lehet csatlakoztatni egy csatornát üzemeltető |. Példaként, akkor tudja használni a parancsot sortdlya válogatás komandyps kimenet.

Ha nem használja a csatornákat, meg kell használni néhány lépést, mint például a következő:

$ Sort psout.txt> pasoirt.out

A folyamat a összekötő csatorna adna elegáns megoldás:

Ha szükséges, a kimenet képernyőjének van osztva lapokra, lehet csatlakozni a harmadik folyamat még:

Tegyük fel, hogy szeretné látni a nevét az összes futó folyamatot, kivéve a kagylókat. Használhatja a következő parancsot:

Tart a kimenet a ps, ábécérendben, kivont feldolgozza a komandyuniq alkalmazott utilitagrep-vshdlya eltávolítási folyamat imenemshi a befejezése a lista oldalanként jelenik meg. Ez egy sokkal elegánsabb megoldás, mint egy sor különböző csapatok, mindegyik saját ideiglenes fájlokat.

Kapcsolódó cikkek