A Linux minden folyamata három adatfolyamot állít elő, stdin, stdout és stderr:
- stdin : A felhasználótól billentyűzeten keresztül fogad be adatokat
- stdout : A kimenetet jeleníti meg a képernyőn
- stderr : Hibaadatokat jelenít meg a képernyőn
Minden adatfolyamnak van numerikus azonosítója:
Numerikus azonosító | Név |
0 | stdin |
1 | stdout |
2 | stderr |
Magyarázzuk el egy kicsit részletesebben az átirányítást:
A standard kimenet és a standard hiba átirányítása a Bash -ben:
A parancs szabványos kimenetének átirányításához az 1 -et fogjuk használni a> jelnél nagyobb átirányítási operátorral:
$ls 1>stdout.txtA fenti parancs létrehoz egy fájlt, és elhelyezi az ls parancs szabványos kimenetét az stdout.txt fájlban.
Az stdout.txt fájl olvasásához használja:
$macskastdout.txt
A szabványos hibát fájlba is átirányíthatjuk a következő paranccsal:
$macskamyfile.txt2>stderr.txt
Az stderr.txt fájl megtekintéséhez használja:
$macskastderr.txt
Győződjön meg arról, hogy a 2 használata nagyobb, mint a> jel. Mivel a könyvtárban nincs myfile.txt fájl, a cat parancs hibát ad, amely hozzáfűződik az stderr.txt fájlhoz.
Ezeket a szabványos kimeneteket egyetlen paranccsal is át lehet irányítani, használja:
$ls 1>stdout.txt2>stderr.txt
Az ls parancs kimenete a stdout.txt fájl, de a stderr.txt üres marad, mert nem lesz hiba.
Most tegyük meg a stderr.txt fájlt:
$macskamyfile.txt1>stdout.txt2>stderr.txt
Az alábbi paranccsal olvassa el a stderr.txt fájlt.
$macskastderr.txt
És természetesen az stdout.txt üres lesz.
Következtetés :
A Linux parancs végrehajtásakor szabványos kimenetet ad, amely lehet sikeres vagy hibakimenet. Általában ezeket a kimeneteket nem lehet átirányítani az átirányítási operátorok segítségével; a> jellel meghatározott numerikus azonosítókat kell használnunk. Ebben az útmutatóban megtanultuk, hogyan lehet ezekkel a számgombokkal a szabványos kimenetet egy példákkal ellátott fájlba átirányítani.