Hver prosess i Linux produserer tre datastrømmer, "stdin", "stdout" og "stderr":
- stdin: Tar input fra brukeren via tastaturet
- stdout: Viser utdata på skjermen
- stderr: Viser feilinformasjon på skjermen
Hver datastrøm har en numerisk id:
Numerisk ID | Navn |
0 | stdin |
1 | stdout |
2 | stderr |
La oss forklare omdirigering litt mer med detaljer:
Slik omdirigerer du standardutdata og standardfeil i Bash:
For å omdirigere standardutgangen til kommandoen, bruker vi “1” med en viderekoblingsoperator som er større enn “>” -tegnet:
$ ls 1> stdout.tekstOvennevnte kommando vil opprette en fil og plassere standardutdata for “ls” -kommandoen i “stdout.txt ”-fil.
Å lese “stdout.txt ”-fil, bruk:
$ cat stdout.tekst
Vi kan også omdirigere standardfeil til en fil ved å bruke kommandoen:
$ cat myfile.tekst 2> stderr.tekst
For å se “stderr.txt ”-fil, bruk:
$ katt stderr.tekst
Forsikre deg om at bruk “2” vil være større enn “>” -tegnet. Siden det ikke er noe “myfile.txt ”-fil i katalogen, vil“ cat ”-kommandoen gi en feil som vil bli lagt til i“ stderr.txt ”-fil.
Disse standardutgangene kan også omdirigeres med en enkelt kommando, bruk:
$ ls 1> stdout.tekst 2> stderr.tekst
Resultatet av kommandoen “ls” vil skrives i “stdout.tekst”-Filen, men“stderr.tekst”Forblir tom fordi det ikke ville være noen feil.
La oss nå gjøre for “stderr.tekst":
$ cat myfile.tekst 1> stdout.tekst 2> stderr.tekst
Bruk kommandoen nedenfor for å lese “stderr.tekst.”
$ katt stderr.tekst
Og selvfølgelig, "stdout.txt ”vil være tomt.
Konklusjon:
Linux-kommando ved utførelse gir standardutgang som kan være en suksessutgang eller en feilutgang. Generelt kan ikke disse utgangene omdirigeres ved hjelp av viderekoblingsoperatorer. vi må bruke spesifikke numeriske ID-er med ">" -tegnet. I denne guiden lærte vi hvordan du bruker disse numeriske tastene for å omdirigere standardutdata til en fil med eksempler.