Hver proces i Linux producerer tre datastrømme, stdin, stdout og stderr:
- stdin : Tager input fra brugeren via tastatur
- stdout : Viser output på skærmen
- stderr : Viser fejloplysninger på skærmen
Hver datastrøm har et numerisk id:
Numerisk id | Navn |
0 | stdin |
1 | stdout |
2 | stderr |
Lad os forklare omdirigering lidt mere med detaljer:
Sådan omdirigeres standardoutput og standardfejl i Bash:
For at omdirigere kommandoens standardoutput bruger vi 1 med en omdirigeringsoperator, der er større end> -tegnet:
$ls 1>stdout.txtOvenstående kommando opretter en fil og placerer standardoutput for ls -kommandoen i filen stdout.txt.
For at læse filen stdout.txt skal du bruge:
$katstdout.txt
Vi kan også omdirigere standardfejl til en fil ved hjælp af kommandoen:
$katmyfile.txt2>stderr.txt
For at se filen stderr.txt skal du bruge:
$katstderr.txt
Sørg for, at brug 2 er større end> -tegnet. Da der ikke er nogen myfile.txt -fil i biblioteket, giver cat -kommandoen en fejl, der tilføjes i filen stderr.txt.
Disse standardudgange kan også omdirigeres med en enkelt kommando, brug:
$ls 1>stdout.txt2>stderr.txt
Outputtet af ls -kommandoen skrives i stdout.txt fil, men stderr.txt forbliver tom, fordi der ikke ville være nogen fejl.
Lad os nu gøre for stderr.txt:
$katmyfile.txt1>stdout.txt2>stderr.txt
Brug kommandoen nedenfor til at læse stderr.txt.
$katstderr.txt
Og selvfølgelig vil stdout.txt være tomt.
Konklusion :
Linux -kommando ved udførelse giver standardoutput, der kan være et succesoutput eller et fejloutput. Generelt kan disse output ikke omdirigeres ved hjælp af omdirigeringsoperatorer; vi skal bruge specifikke numeriske id'er med> -tegnet. I denne vejledning lærte vi, hvordan man bruger disse numeriske taster til at omdirigere standardoutput til en fil med eksempler.