Standart I/O ve Pipes
Standart I/O ve Borulama (pipes)
"Standart Giris" ve "Standart Cikis", LINUX isletim sisteminin cok onemli iki kavramidir.
Linux konsol komutlarinin yuzde doksani, islevlerini standart giris biriminden okuyacaklari veriler uzerinde yerine getirip,varsa sonuclarini standart cikis birimine gonderir.Bir baska deyisle,Linuxkonsol komutlarinin yuzde doksani,gorevlerini klavyeden okuyacaklari veriler uzerinde yerine getirip,varsa sonuclarini ekrana gonderir.
Standart giris birimine Linux terminolojisinde "STDIN",standart cikis birimini de "STDOUT" denir.
Standart Giris ve Cikis
Linux, programlara 3 giris ve cikis kanali saglamaktadir.
1- Standart giris (STDIN) - varsayilan klavye 2- Standart cikis (STDOUT) - varsayilan terminal penceresi (monitor) 3- Standart hata (STDERR) - varsayilan terminal penceresi (monitor)
Cikisi Bir Dosyaya Yonlendirme
STDOUT ve STDERR dosyalara yeniden yonlendirilebilir.
$ command operator filename
Desteklenen operatorler
> STDOUT u dosyaya yonlendirir.
2> STDERR u dosyaya yonlendirir.
&> Tum cikisi dosyaya yonlendirir.
Asagidaki komutu root olmadan calistirirsaniz cikis ve hatalar verecektir.
$ find /etc -name passwd
Operatorler, cikisi ve hatlari saklamak icin kullanilabilirler.
$ find /etc -name passwd > dosya.txt
Yukaridaki komutu verdiginizde; etc klasoru icersindeki ismi passwd olan dosya,dosya.txt adi altinda home klasorunuzde saklanacaktir.Iceriginde ise komutun verdigi hatalar (errors) degilde sadece ciktilar (output) olacaktir.Hatalar komutu verdiginizde ekraninizda gozukecek ama dosyaya kayit edilmeyecektir. " > "
$ find /etc -name passwd 2> dosya.txt
Yukaridaki komutu verdiginizde; etc klasoru icersindeki ismi passwd olan dosya,dosya.txt adi altinda home klasorunde saklancaktir.Dosya iceriginde ise sadece komutun verdigi hatalar olacaktir. " 2> "
$ find /etc -name passwd &> dosya.txt
Yukaridaki komutu verdiginizde; hata ve cikislar beraber saklanacaktir. " &> "
Not1:Bazi durumlarda,standart ciktinin yonlendirilecegi dosyada bulunan eski kayitlari bozmadan yenilerini arkasina eklemek isteyebilirsiniz.Bu durumda yonlendirmeyi " >> " ile yapmaniz yeterli olacaktir.
Standart Ciktiyi Bir Programa Yonlendirme (Piping)
Pipe kavrami ile " | " komutlari baglayabilirsiniz.
$ command1
$ ls -l /etc
$ (cal 2010;cal 2011)
Birden Fazla Adrese Yonledirme (tee)
Bazi durumlarda bir programin ciktisini iki degisik yere yonlendirmeye gereksinim duyabilirsiniz.
$ command1
$ sort adresler
komutu "adresler" dosyasini siralayarak sirali halini tee programina yonlendirecek; tee programi standart girdisinden gelen verilerihem adresler.sirali dosyasina hem de kendi standart ciktisina yonlendirecek;son olarak da "less" komutu bu satirlari sayfa sayfa listeleyecektir.
Dosyadan Standart Girise Yonlendirme
$ tr 'A-Z' 'a-z' < .bash_profile
komutu ".bash_profile" dosyasidaki buyuk harfle baslayan karakterleri,kucuk harflere donusturecektir.
Ayni isi asagidaki komut ile de yapabilirsiniz.
$ cat .bash_profile
Kaynak: Kim Korkar Linux'tan 05.pdf RH033 - Red Hat Linux Essentials.pdf