Omdirigere stdout og stderr til å arkivere

Omdirigere stdout og stderr til å arkivere

Når du omdirigerer enhver kommandoutgang til en fil, vil du merke at feilmeldingene skrives ut i terminalvinduet. Enhver kommando utført i et hvilket som helst Linux -skall, for eksempel bash, bruker tre vanlige I/O -strømmer. En numerisk filbeskrivelse brukes til å representere hver strøm.

  • Standard inngangsstrøm (stdin): 0
  • Standard utgangsstrøm (stdout): 1
  • Standardfeilstrømmen (STDERR): 2

I dette innlegget vil vi forstå informasjonen som kommer under omdirigering av stdout og stderr for å arkivere.

Standard utgang (stdout):

Hvert operativsystem basert på Linux har en overbevisning om et standardsted for den utførte kommandoen. Alle refererer til denne forestillingen som "stdout" eller "standardutgang" for å få det til å høres lettere. Bash- eller Zsh -skallet ditt leter stadig etter standardutgangsstedet. Når skallet oppdager ny utgang, viser det det på terminalskjermen for deg å se det. Ellers vil den sende utdataene til standardplassering.

Standardfeil (STDERR):

Standardfeil eller stderr ligner på standardinngang og utgang, men den brukes til lagring av feilmeldinger. Standardfeilen kan omdirigeres til kommandolinjen eller en fil ved hjelp av en terminal. Hvis du vil registrere eller lagre meldinger i en egen loggfil eller skjule feilmeldingene, vil omdirigering av stderr hjelpe deg. La oss nå ta turen mot den praktiske siden av stdout og stderr -omdirigering.

Omdirigere stdout og stderr til en fil:

Ettersom omdirigering er en metode for å fange opp en programutgang og sende den som en inngang til en annen kommando eller fil. I/O -strømmene kan omdirigeres ved å bruke n> operatøren i bruk, der n er filbeskrivelsesnummeret. For å omdirigere stdout, bruker vi “1>” og for stderr, “2>” blir lagt til som operatør.

Vi har laget en fil som heter “Eksempel.txt ”for å lagre den omdirigerte utdata i vår nåværende katalog.

(Command> -filen) regnes som den klassiske omdirigeringsoperatøren som bare omdirigerer standardutgangen med standardfeilen vist i terminalen. Vi vil også demonstrere forskjellige alternativer for å omdirigere stderr.

Omdirigere stderr og stdout for å skille filer:

Nedenfor er kommandosyntaks for å omdirigere stdout og stderr for å skille filer.

Kommando> ut 2> Feil

Den undergitte kommandoen vil omdirigere utdataene til "ut" -filen og feilmeldingene til "Feil" -filen.

$ katteprøve.txt> out 2> feil

Omdirigere stderr til stdout:

Det er en vanlig praksis å omdirigere Stderr med standardutgangen til et program for å lagre alt i en enkelt fil. Her er kommandosyntaks for å omdirigere stderr til stdout:

Kommando> ut 2> & 1
$ LS> Samplefile.txt 2> & 1
$ katteprøvefil.tekst

> Out Redirects omdirigerer stdout til prøvefilen.txt, og 2> & 1 vil omdirigere stderr til den nåværende plasseringen av stdout.

Hvis stderr blir omdirigert til stdout først, bruk den undergitte kommandoen for å omdirigere stdout til en fil.

Kommando 2> & 1> Fil
$ ls -al 2> & 1> Samplefile.tekst
$ katteprøvefil.tekst

“&>” Brukes også til samme funksjonalitet som “2> & 1” utfører.

Kommando og> fil
$ LS &> Samplefile.tekst
$ katteprøvefil.tekst

Omdirigere stdout og stderr til en enkelt fil:

Alle skjellene støtter ikke denne skjemaets omdirigering, men bash og zsh støtter det. Stdout og Stderr kan omdirigeres ved å bruke følgende syntaks.

Kommando og> ut
$ katteprøve.txt &> out

I den kommende delen av artikkelen vil vi sjekke ut det separate eksemplet for stdout og stderr -omdirigering.

Omdirigere stdout til en fil:

Standardutgangen er representert med “1” i listen over filbeskrivelsesnumre. For omdirigeringskommando uten noe filbeskrivelsesnummer, satte terminalen verdien til “1”. Syntaksen for å omdirigere stdout til en fil er gitt som følger:

Kommando> Fil

Vi bruker “prøven.fil ”for lagring av standardutgangen til“ LS -al ”-kommandoen

$ ls -al> prøve.tekst
$ katteprøve.tekst
Kommando 1> Fil
$ ls 1> prøve.tekst
$ katteprøve.tekst

Omdirigere stderr til en fil:

Bruk “2>” -operatøren for å omdirigere Stderr til en fil.

Kommando 2> Fil
$ ls -al 2> prøve.tekst

Vi kan kombinere utførelsen for stderr og stdout i en enkelt omdirigeringskommando.

Kommando 2> Feil.txt 1> output.tekst

I det undergitte eksemplet vil feilmeldingene bli lagret i “Feil.txt, ”der“ output.TXT ”vil ha sin standardutgang på“ LS -kommandoen.”

$ LS 2> Feil.txt 1> output.tekst
$ katteutgang.tekst

Konklusjon:

Å ha begrepet omdirigering og filbeskrivelser for I/O -strømmer er veldig verdifullt mens du jobber i en Linux -terminal. I dette innlegget har vi snakket om de vanlige I/O -strømmer, inkludert stdout og stderr. Den første delen av dette innlegget gir deg detaljert informasjon om omdirigering, I/O -strømmer og den numeriske filbeskrivelsen. Deretter har du sett det praktiske eksemplet for forskjellige former for stdout og stderr -omdirigering.