standart I/O ve Pipes

Başlatan ecoxx, 09 Nisan 2010 - 16:58:53

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ecoxx

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 | command2

$ ls -l /etc | less

$ (cal 2010;cal 2011) | less

Birden Fazla Adrese Yonledirme (tee)

Bazi durumlarda bir programin ciktisini iki degisik yere yonlendirmeye gereksinim duyabilirsiniz.

$ command1 | tee filename | command2

$ sort adresler | tee adresler.sirali | less

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 | tr 'A-Z' 'a-z'

Kaynak: Kim Korkar Linux'tan 05.pdf
         RH033 - Red Hat Linux Essentials.pdf









hitokiri


ecoxx

wiki ' ye ekledim ama pipe kullanimindan dolayi eksiklikler var sayfada...

hitokiri

#3
Alıntı Yapwiki ' ye ekledim ama pipe kullanimindan dolayi eksiklikler var sayfada...
Bakıp gerekli düzenlemeleri yapıcam şimdi farkettim eline sağlık onun içinde :)
>> http://wiki.ubuntu-tr.net/index.php/Standart_I/O_ve_Pipes