Iga Linuxi protsess toodab kolme andmevoogu: „stdin”, „stdout” ja „stderr”:
- stdin: Võtab kasutajalt sisestuse klaviatuuri kaudu
- stdout: Kuvab väljundi ekraanil
- stderr: Kuvab veateabe ekraanil
Igal andmevoolul on arvuline ID:
Numbriline ID | Nimi |
0 | stdin |
1 | stdout |
2 | stderr |
Selgitame ümbersuunamist natuke üksikasjalikumalt:
Kuidas standardväljund ja standardviga Bashis ümber suunata:
Käsu standardväljundi ümbersuunamiseks kasutame ümbersuunamisoperaatoriga tähist „1”, mis on suurem kui märk „>”:
$ ls 1> stdout.txtÜlaltoodud käsk loob faili ja paigutab käsu “ls” standardväljundi “stdout.txt ”fail.
Et lugeda “stdout.txt ”fail, kasuta:
$ cat stdout.txt
Saame standardvea ka faili ümber suunata, kasutades käsku:
$ cat myfile.txt 2> stderr.txt
„Stderr.txt ”fail, kasuta:
$ kassi stderr.txt
Veenduge, et kasutamine "2" oleks suurem kui märk ">". Kuna puudub “myfile.txt ”kataloogis, annab käsk“ cat ”vea, mis lisatakse“ stderr.txt ”fail.
Neid standardväljundeid saab suunata ühe käsuga, kasutage ka järgmist:
$ ls 1> stdout.txt 2> stderr.txt
Käsu “ls” väljund kirjutatakse “stdout.txtFaili, kuidstderr.txt”Jääb tühjaks, sest viga ei oleks.
Nüüd teeme “stderr.txt ”:
$ cat myfile.txt 1> stdout.txt 2> stderr.txt
Kasutage allpool mainitud käsku "stderr.txt.”
$ kassi stderr.txt
Ja muidugi: “stdout.txt ”jääb tühjaks.
Järeldus:
Linuxi käsk käivitamisel annab standardväljundi, mis võib olla edukas väljund või veaväljund. Üldiselt ei saa neid väljundeid ümbersuunamisoperaatorite abil ümber suunata; peame kasutama märke “>” sisaldavaid konkreetseid numbrilisi ID-sid. Selles juhendis õppisime, kuidas neid numbriklahve kasutades suunata standardväljund näidetega faili.