Fiecare proces din Linux produce trei fluxuri de date, stdin, stdout și stderr:
- stdin : Preia date de la utilizator prin intermediul tastaturii
- stdout : Afișează ieșirea pe ecran
- stderr : Afișează informații de eroare pe ecran
Fiecare flux de date are un cod numeric:
Numeric Id | Nume |
0 | stdin |
1 | stdout |
2 | stderr |
Să explicăm redirecționarea puțin mai detaliat:
Cum să redirecționați ieșirea standard și eroarea standard în Bash:
Pentru a redirecționa ieșirea standard a comenzii, vom folosi 1 cu un operator de redirecționare care este mai mare decât semnul>:
$eu sunt 1>stdout.txtComanda de mai sus va crea un fișier și va plasa ieșirea standard a comenzii ls în fișierul stdout.txt.
Pentru a citi fișierul stdout.txt, utilizați:
$pisicăstdout.txt
Putem redirecționa și eroarea standard către un fișier folosind comanda:
$pisicămyfile.txt2>stderr.txt
Pentru a vizualiza fișierul stderr.txt, utilizați:
$pisicăstderr.txt
Asigurați-vă că utilizarea 2 va fi mai mare decât semnul>. Deoarece nu există fișier myfile.txt în director, comanda cat va da o eroare care va fi adăugată în fișierul stderr.txt.
Aceste ieșiri standard pot fi redirecționate cu o singură comandă, de asemenea, utilizați:
$eu sunt 1>stdout.txt2>stderr.txt
Ieșirea comenzii ls va fi scrisă în stdout.txt fișier, dar stderr.txt va rămâne gol, deoarece nu ar exista nicio eroare.
Acum să facem pentru stderr.txt:
$pisicămyfile.txt1>stdout.txt2>stderr.txt
Utilizați comanda menționată mai jos pentru a citi stderr.txt.
$pisicăstderr.txt
Și, desigur, stdout.txt va fi gol.
Concluzie :
Comanda Linux la executare oferă ieșire standard care ar putea fi o ieșire de succes sau o ieșire de eroare. În general, aceste ieșiri nu pot fi redirecționate folosind operatori de redirecționare; trebuie să folosim ID-uri numerice specifice cu semnul>. În acest ghid, am învățat cum să folosim aceste taste numerice pentru a redirecționa ieșirea standard către un fișier cu exemple.