Elk proces in Linux produceert drie datastromen, stdin, stdout en stderr:
- standaard : Neemt invoer van de gebruiker via het toetsenbord
- stout : Geeft de uitvoer weer op het scherm
- stderr : Toont foutinformatie op het scherm
Elke datastroom heeft een numerieke id:
Numerieke ID | Naam |
0 | standaard |
1 | stout |
2 | stderr |
Laten we de omleiding wat gedetailleerder uitleggen:
Hoe standaarduitvoer en standaardfout in Bash om te leiden:
Om de standaarduitvoer van de opdracht om te leiden, gebruiken we 1 met een omleidingsoperator die groter is dan het >-teken:
$ls 1>stdout.txtDe bovenstaande opdracht maakt een bestand aan en plaatst de standaarduitvoer van de opdracht ls in het bestand stdout.txt.
Om het bestand stdout.txt te lezen, gebruikt u:
$katstdout.txt
We kunnen de standaardfout ook naar een bestand omleiden door de opdracht te gebruiken:
$katmijnbestand.txt2>stderr.txt
Om het bestand stderr.txt te bekijken, gebruikt u:
$katstderr.txt
Zorg ervoor dat gebruik 2 groter is dan het > teken. Aangezien er geen myfile.txt-bestand in de directory staat, zal het cat-commando een foutmelding geven die zal worden toegevoegd aan het stderr.txt-bestand.
Deze standaarduitgangen kunnen ook worden omgeleid met een enkele opdracht, gebruik:
$ls 1>stdout.txt2>stderr.txt
De uitvoer van het ls-commando wordt geschreven in de stdout.txt bestand, maar de stderr.txt blijft leeg omdat er geen fout zou zijn.
Laten we nu doen voor stderr.txt:
$katmijnbestand.txt1>stdout.txt2>stderr.txt
Gebruik de onderstaande opdracht om stderr.txt te lezen.
$katstderr.txt
En natuurlijk zal stdout.txt leeg zijn.
Conclusie :
Linux-opdracht bij uitvoering geeft standaarduitvoer die een geslaagde uitvoer of een foutuitvoer kan zijn. Over het algemeen kunnen deze outputs niet worden omgeleid met behulp van omleidingsoperators; we moeten specifieke numerieke id's gebruiken met het > teken. In deze handleiding hebben we geleerd hoe we deze numerieke toetsen kunnen gebruiken om standaarduitvoer om te leiden naar een bestand met voorbeelden.