Varje process i Linux producerar tre dataströmmar, "stdin", "stdout" och "stderr":
- stdin: Tar inmatning från användaren via tangentbordet
- stdout: Visar utdata på skärmen
- stderr: Visar felinformation på skärmen
Varje dataström har ett numeriskt id:
Numeriskt ID | namn |
0 | stdin |
1 | stdout |
2 | stderr |
Låt oss förklara omdirigering lite mer med detaljer:
Så här omdirigerar du standardutdata och standardfel i Bash:
För att omdirigera standardutgången för kommandot använder vi “1” med en omdirigeringsoperator som är större än tecknet “>”:
$ ls 1> stdout.TextOvanstående kommando skapar en fil och placerar standardutmatningen för kommandot “ls” i “stdout.txt ”-fil.
Att läsa “stdout.txt ”-fil, använd:
$ cat stdout.Text
Vi kan också omdirigera standardfel till en fil genom att använda kommandot:
$ cat myfile.txt 2> stderr.Text
För att se “stderr.txt ”-fil, använd:
$ katt stderr.Text
Se till att användningen "2" är större än tecknet ">". Eftersom det inte finns någon ”minfil.txt ”-fil i katalogen kommer kommandot“ cat ”att ge ett fel som läggs till i“ stderr.txt ”-fil.
Dessa standardutgångar kan också omdirigeras med ett enda kommando, använd:
$ ls 1> stdout.txt 2> stderr.Text
Utgången från kommandot "ls" kommer att skrivas i "stdout.Text”-Filen, men“stderr.Text”Förblir tom eftersom det inte skulle finnas något fel.
Låt oss nu göra för “stderr.Text":
$ cat myfile.txt 1> stdout.txt 2> stderr.Text
Använd kommandot nedan för att läsa “stderr.Text.”
$ katt stderr.Text
Och naturligtvis, "stdout.txt ”kommer att vara tomt.
Slutsats:
Linux-kommando vid körning ger standardutdata som kan vara en framgång eller en felutgång. I allmänhet kan dessa utgångar inte omdirigeras med omdirigeringsoperatorer. vi måste använda specifika numeriska id: n med ">" -tecknet. I den här guiden lärde vi oss hur man använder dessa siffertangenter för att omdirigera standardutdata till en fil med exempel.