Svaki proces u Linuxu proizvodi tri toka podataka, stdin, stdout i stderr:
- stdin : Uzima unos od korisnika putem tipkovnice
- stdout : Prikazuje izlaz na ekranu
- stderr : Prikazuje informacije o pogrešci na zaslonu
Svaki tok podataka ima numerički ID:
Numerički ID | Ime |
0 | stdin |
1 | stdout |
2 | stderr |
Objasnimo malo preusmjeravanje s detaljima:
Kako preusmjeriti standardni izlaz i standardnu pogrešku u Bashu:
Za preusmjeravanje standardnog izlaza naredbe koristit ćemo 1 s operatorom preusmjeravanja koji je veći od znaka>:
$ls 1>stdout.txtGornja naredba će stvoriti datoteku i postaviti standardni izlaz naredbe ls u datoteku stdout.txt.
Da biste pročitali datoteku stdout.txt, upotrijebite:
$mačkastdout.txt
Standardnu pogrešku možemo preusmjeriti i u datoteku pomoću naredbe:
$mačkamyfile.txt2>stderr.txt
Za pregled stderr.txt datoteke upotrijebite:
$mačkastderr.txt
Uvjerite se da će upotreba 2 biti veća od znaka>. Budući da u direktoriju nema datoteke myfile.txt, naredba cat će dati pogrešku koja će biti dodana u datoteku stderr.txt.
Ovi standardni izlazi mogu se preusmjeriti i jednom naredbom, upotrijebite:
$ls 1>stdout.txt2>stderr.txt
Izlaz naredbe ls bit će zapisan u stdout.txt datoteku, ali stderr.txt će ostati prazna jer ne bi došlo do greške.
Učinimo sada za stderr.txt:
$mačkamyfile.txt1>stdout.txt2>stderr.txt
Za čitanje stderr.txt upotrijebite dolje navedenu naredbu.
$mačkastderr.txt
I naravno, stdout.txt će biti prazan.
Zaključak :
Naredba Linuxa nakon izvršavanja daje standardni izlaz koji bi mogao biti uspješan izlaz ili izlaz pogreške. Općenito, ti se izlazi ne mogu preusmjeriti pomoću operatora preusmjeravanja; moramo koristiti određene numeričke ID -ove sa znakom>. U ovom smo vodiču naučili kako pomoću ovih numeričkih tipki preusmjeriti standardni izlaz u datoteku s primjerima.