Suunake stdout ja stderr faili

Redirect Stdout Stderr File



Kui suunate mis tahes käsu väljundi faili, märkate, et veateated prinditakse terminaliaknasse. Mis tahes Linuxi kestas, näiteks bash, käivitatud käsk kasutab kolme tavalist I/O voogu. Iga voo esitamiseks kasutatakse numbrilist failikirjeldust.

  • Standardne sisendvoog (stdin): 0
  • Standardne väljundvoog (stdout): 1
  • Tavaline vigade voog (stderr): 2

Selles postituses mõistame teavet, mis kuulub stdout ja stderr failide ümbersuunamise alla.







Standardväljund (stdout):

Igal Linuxil põhineval operatsioonisüsteemil on veendumus täidetud käsu vaikekohas. Igaüks nimetab seda mõistet stdout või standardväljundiks, et see oleks lihtsam. Teie Bash või Zsh kest otsib pidevalt vaikimisi väljundi asukohta. Kui kest tuvastab uue väljundi, kuvab see selle terminaliekraanil, et seda näha. Vastasel juhul saadab see väljundi vaikimisi asukohta.



Tavaline viga (stderr):

Tavaline viga või stderr sarnaneb standardse sisendi ja väljundiga, kuid seda kasutatakse veateadete salvestamiseks. Tavalise vea saab terminali abil käsureale või faili suunata. Kui soovite sõnumeid salvestada või salvestada eraldi logifaili või peita tõrketeated, aitab teid suunamine stderr. Nüüd suundume stdouti ja stderri ümbersuunamise praktilise poole poole.



Stdouti ja stderri ümbersuunamine faili:

Kuna ümbersuunamine on meetod programmi väljundi jäädvustamiseks ja selle sisestamiseks teisele käsule või failile. Sisend-/väljundvooge saab ümber suunata, kui kasutate operaatorit n>, kus n on faili kirjeldusnumber. Stdouti ümbersuunamiseks kasutame 1> ja stderr jaoks lisatakse operaatorina 2>.





Oleme loonud faili nimega sample.txt, et salvestada ümbersuunatud väljund meie praegusesse kataloogi.



[Käsk> fail] loetakse klassikaliseks ümbersuunamisoperaatoriks, mis suunab ainult standardväljundi koos terminalis näidatud standardveaga. Näitame erinevaid võimalusi ka stderri ümbersuunamiseks.

Stderri ja stdouti ümbersuunamine eraldi failideks:

Allpool on käsu süntaks stdout ja stderr failide eraldamiseks ümbersuunamiseks.

käsk >välja2>viga

Allpool antud käsk suunab väljundi väljundfaili ja veateated tõrkefaili.

$kasssample.txt>välja2>viga

Stderri suunamine stdouti:

On tavaline tava suunata stderr programmi standardväljundiga, et salvestada kõik ühte faili. Siin on käsu süntaks stderri suunamiseks stdouti:

käsk >välja2> &1$ls >samplefile.txt2> &1

$kasssamplefile.txt

> out ümbersuunamised suunavad stdout faili samplefile.txt ja 2> & 1 suunab stderri stdouti praegusesse asukohta.

Kui stderr suunatakse kõigepealt stdouti, kasutage alltoodud käsku, et suunata stdout faili.

käsk 2> &1 > faili$ls -juurde 2> &1 >samplefile.txt

$kasssamplefile.txt

&> kasutatakse ka sama funktsiooni jaoks, mida 2> & 1 täidab.

käsk &> faili$ls &>samplefile.txt

$kasssamplefile.txt

Stdouti ja stderri ümbersuunamine ühte faili:

Kõik kestad ei toeta seda vormi ümbersuunamist, kuid bash ja Zsh toetavad seda. Stdouti ja stderrit saab suunata järgmise süntaksi abil.

käsk &>välja$kasssample.txt&>välja

Artikli eelseisvas osas vaatame eraldi näidet stdout ja stderr ümbersuunamise kohta.

Stdouti ümbersuunamine faili:

Standardväljundit tähistab failide kirjeldusnumbrite loendis 1. Ümbersuunamiskäsu jaoks ilma failikirjelduse numbrita määras terminal väärtuseks 1. Süntaks stdouti failile ümbersuunamiseks on järgmine:

käsk > faili

Me kasutame käsu ls -al standardväljundi salvestamiseks faili sample.file

$ls -juurde >sample.txt

$kasssample.txt

käsk 1> faili$ls 1>sample.txt

$kasssample.txt

Stderri ümbersuunamine faili:

Kasutage operaatorit 2>, et suunata stderr faili.

käsk 2> faili $ls -juurde 2>sample.txt

Me saame kombineerida stderr ja stdout täitmist ühe ümbersuunamiskäsuga.

käsk 2>error.txt1>output.txt

Allpool toodud näites salvestatakse veateated faili error.txt, kus output.txt saab standardse käsu ls.

$ls 2>error.txt1>output.txt

$kassoutput.txt

Järeldus:

Sisend-/väljundvoogude ümbersuunamise kontseptsiooni ja failide kirjelduste olemasolu on Linuxi terminalis töötades väga väärtuslik. Selles postituses oleme rääkinud tavalistest I/O voogudest, sealhulgas stdout ja stderr. Selle postituse esimene jaotis sisaldab üksikasjalikku teavet ümbersuunamise, I/O voogude ja numbrilise faili kirjelduse kohta. Järgmisena olete näinud praktilist näidet erinevate stdout- ja stderr -ümbersuunamisvormide kohta.