Standart I/O ve Pipes: Revizyonlar arasındaki fark

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
(Sayfa oluşturdu, içeriği: 'Standart I/O ve Borulama (pipes) "Standart Giris" ve "Standart Cikis", LINUX isletim sisteminin cok onemli iki kavramidir. Linux konsol komutlarinin yuzde doksani, i…')
 
Değişiklik özeti yok
1. satır: 1. satır:
Standart I/O ve Borulama (pipes)
=='''Standart I/O ve Borulama (pipes)'''==


"Standart Giris" ve "Standart Cikis", LINUX isletim sisteminin cok onemli iki kavramidir.
"'''Standart Giris'''" ve "'''Standart Cikis'''", LINUX işletim sisteminin çok önemli iki kavramıdır.


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.
Linux konsol komutlarının yüzde doksanı, işlevlerini standart giriş biriminden okuyacakları veriler üzerinde yerine getirip,varsa sonuclarını standart çıkış birimine gönderir.Bir baska deyişle,'''Linuxkonsol''' komutlarının yüzde doksanı,görevlerini klavyeden okuyacakları veriler üzerinde yerine getirip,varsa sonuclarını ekrana gönderir.


Standart giris birimine Linux terminolojisinde "STDIN",standart cikis birimini de "STDOUT" denir.
Standart giris birimine Linux terminolojisinde "STDIN",standart cikis birimini de "STDOUT" denir.


Standart Giris ve Cikis
===Standart Giris ve Cıkış===


Linux, programlara 3 giris ve cikis kanali saglamaktadir.
Linux, programlara 3 giris ve cikis kanali saglamaktadir.
{| style="background-color:#f9eaaf;" width="440"
!Giriş!!    Tanım
|-
|1- Standart giris (STDIN) ||- varsayılan klavye
|-
|2- Standart cikis (STDOUT) || - varsayılan terminal penceresi (monitor)
|-
|3- Standart hata (STDERR) || - varsayılan terminal penceresi (monitor)
|}
===Çıkışı Bir Dosyaya Yönlendirme===


1- Standart giris (STDIN) - varsayilan klavye
'''STDOUT''' ve '''STDERR''' dosyalara yeniden yonlendirilebilir.
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.


{{Kod||$ command operator filename}}
{{Kod||$ command operator filename}}


Desteklenen operatorler
Desteklenen operatörler


> STDOUT  u dosyaya yonlendirir.
> STDOUT  u dosyaya yönlendirir.


2> STDERR u dosyaya yonlendirir.
2> STDERR u dosyaya yönlendirir.


&> Tum cikisi dosyaya yonlendirir.  
&> Tum cikisi dosyaya yönlendirir.  


Asagidaki komutu root olmadan calistirirsaniz cikis ve hatalar verecektir.
Aşağıdaki komutu root olmadan calıştırırsanız çıkış ve hatalar verecektir.


{{Kod||$ find /etc -name passwd}}
{{Kod||$ find /etc -name passwd}}


Operatorler, cikisi ve hatlari saklamak icin kullanilabilirler.
Operatorler, çıkışı ve hatları saklamak icin kullanılabilirler.


{{Kod||$ find /etc -name passwd > dosya.txt}}
{{Kod||$ 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. " > "
Yukarıdaki komutu verdiğinizde; '''etc''' klasöru içersindeki ismi '''passwd''' olan dosya,dosya.txt adı altında''' home''' klasörünüzde saklanacaktır.İçeriğinde ise komutun verdiği hatalar '''(errors)''' değilde sadece çıktılar ('''output''') olacaktir.Hatalar komutu verdiğinizde ekranınızda gözükecek ama dosyaya kayıt edilmeyecektir. " '''>''' "


{{Kod||$ find /etc -name passwd 2> dosya.txt}}
{{Kod||$ 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> "
Yukarıdaki komutu verdiğinizde; '''etc''' klasorü içersindeki ismi '''passwd''' olan dosya,dosya.txt adi altinda home klasorunde saklancaktır.Dosya içeriğinde ise sadece komutun verdigi hatalar olacaktir. " 2> "


{{Kod||$ find /etc -name passwd &> dosya.txt}}
{{Kod||$ find /etc -name passwd &> dosya.txt}}


Yukaridaki komutu verdiginizde; hata ve cikislar beraber saklanacaktir. " &> "
Yukarıdaki komutu verdiğinizde; 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.
Not1:Bazi durumlarda,standart ciktinin yonlendirilecegi dosyada bulunan eski kayitlari bozmadan yenilerini arkasina eklemek isteyebilirsiniz.Bu durumda yonlendirmeyi " >> " ile yapmaniz yeterli olacaktir.
67. satır: 71. satır:
{{Kod||$ sort adresler | tee adresler.sirali | less}}
{{Kod||$ 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.
komutu "'''adresler'''" dosyasını sıiralayarak sıralı halini '''tee''' programina yönlendirecek; '''tee''' programi standart girdisinden gelen verileri hem adresler.sıralı dosyasına hem de kendi standart ciktisina yonlendirecek;son olarak da "less" komutu bu satirlari sayfa sayfa listeleyecektir.


Dosyadan Standart Girise Yonlendirme
Dosyadan Standart Girise Yonlendirme

17.33, 9 Nisan 2010 tarihindeki hâli

Standart I/O ve Borulama (pipes)

"Standart Giris" ve "Standart Cikis", LINUX işletim sisteminin çok önemli iki kavramıdır.

Linux konsol komutlarının yüzde doksanı, işlevlerini standart giriş biriminden okuyacakları veriler üzerinde yerine getirip,varsa sonuclarını standart çıkış birimine gönderir.Bir baska deyişle,Linuxkonsol komutlarının yüzde doksanı,görevlerini klavyeden okuyacakları veriler üzerinde yerine getirip,varsa sonuclarını ekrana gönderir.

Standart giris birimine Linux terminolojisinde "STDIN",standart cikis birimini de "STDOUT" denir.

Standart Giris ve Cıkış

Linux, programlara 3 giris ve cikis kanali saglamaktadir.

Giriş Tanım
1- Standart giris (STDIN) - varsayılan klavye
2- Standart cikis (STDOUT) - varsayılan terminal penceresi (monitor)
3- Standart hata (STDERR) - varsayılan terminal penceresi (monitor)

Çıkışı Bir Dosyaya Yönlendirme

STDOUT ve STDERR dosyalara yeniden yonlendirilebilir.


$ command operator filename

Desteklenen operatörler

> STDOUT u dosyaya yönlendirir.

2> STDERR u dosyaya yönlendirir.

&> Tum cikisi dosyaya yönlendirir.

Aşağıdaki komutu root olmadan calıştırırsanız çıkış ve hatalar verecektir.


$ find /etc -name passwd

Operatorler, çıkışı ve hatları saklamak icin kullanılabilirler.


$ find /etc -name passwd > dosya.txt

Yukarıdaki komutu verdiğinizde; etc klasöru içersindeki ismi passwd olan dosya,dosya.txt adı altında home klasörünüzde saklanacaktır.İçeriğinde ise komutun verdiği hatalar (errors) değilde sadece çıktılar (output) olacaktir.Hatalar komutu verdiğinizde ekranınızda gözükecek ama dosyaya kayıt edilmeyecektir. " > "


$ find /etc -name passwd 2> dosya.txt

Yukarıdaki komutu verdiğinizde; etc klasorü içersindeki ismi passwd olan dosya,dosya.txt adi altinda home klasorunde saklancaktır.Dosya içeriğinde ise sadece komutun verdigi hatalar olacaktir. " 2> "


$ find /etc -name passwd &> dosya.txt

Yukarıdaki komutu verdiğinizde; 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" dosyasını sıiralayarak sıralı halini tee programina yönlendirecek; tee programi standart girdisinden gelen verileri hem adresler.sıralı dosyasına 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