Linux Redirection ve Pipes Kavramı

Yeniden yönlendirme ve boru kavramı süreçlerle(process) ilişkilidir. Her Linux süreci , en az 3 dosya tanımlayıcısını açar bunlar;

1-Standart Giriş(Input)
2-Standart Çıkış(Output)
3-Standart Hata(Error)’dur.

Linux’ta birçok komut işlevlerini standart giriş biriminden okuyacakları veriler üzerinde yerine getirip, varsa sonuçlarını standart çıkış biriminie gönderir. Çalıştırılan komutu herhangi bir disk üzerindeki dosya üzerine yazma işlemini standart I/O operatörleri ile yapabiliriz. Yeniden yönlendirmeyi aşağıdaki örnek ile açıklayalım. Varsayalım ki “ornek” adlı bir dizinimiz var ve bu dizin içindeki bütün dosya isimlerini başka bir dosyaya yönlendirmek istiyoruz.
v1.png
Gösterdiğimiz gibi yapabiliriz ancak eğer sistemde hali hazırda başka bir dosya2 adlı dosya var ise üzerine yazar. Bu durumlarda standart çıktının yönlendirileceği dosyada bulunan eski kayıtları bozmandan yenilerini bunların arkasına eklemek isteyebiliriz. bu işlemi ise “>>” operatörü ile yapabiliriz.
v2.png

Filtre Program
Verilerini standart giriş ten okuyup çıktısını standart bir çıkışa yönlendiren programalara “filtre” programlar denir. İlk örneğimiz “wc” komutudur. Eğer dosya2 içersinde kaç tane dosya ismi akatarıldığını bulmak istersek “wc” komutunu kullanabiliiz. Bu komutu -l opsiyonu ile kullanırsak dosyadaki satır sayısını standart çıkış ortamına yazar. Burada “<” operatörü standart giriş operatörüdür.
v3
Diğer bir filtre program sort komutu ise sıralanacak satırları bir dosyadan alır ve standart bir çıkışa yönlendirir.
v4.png
Standart hataları da yönlendirmek bazı durumlarda faydalı olabilir. Örneğin normal bir kullanıcı olarak ” du -s /” komutunu yazdığımızda aşağıdaki gibi bir hata alırız.
v5.png
Bu mesajlar aslında STDERR’e gönderilmektedir. Bu yüzden özellikle geri planda çalışan işlerin hata mesajlarıyla terminal penceresini kirletmelerini önlemek için veya kaybolmasın diye hata mesjalarını ayrı bir dosyaya yönlendirebiliriz. Yönlendirme işlemi “2>” parametresi ile olur.
v6.png

Pipe Kavramı
Boru ifadesi , giriş ve çıkışa ait yeniden yönlendirme ifadelerinin birleşiminden oluşur. Bir programın standart çıktısı , bir başka programın standart girdisi olarak yönlendirir. Daha önce “wc” komutu ile yapmış olduğumuz örneği şimdi pipe “|”  ile yapalım.
v7.png
Başka bir pipe örneğimizde ise komut satırında birkaç kademeli işlem yapılması gerekiyor. Echo komutu terminalde ekrana klavyeden girilen değeri yazdırmak için kullanılılır ve içersinde diğer komutların çalışması için de “`” komutu ile tırnak içine alabiliriz.
v8.png
Eğer bu komutu terminale her girdiğimizde görmek istiyorsak kullanıcısı olduğumuz ana dizindeki “.bashrc” dosyasına bu komutu ekleyebiliriz.
v9.png
Terminale artık her girdiğimizde karşımıza sistemde kaç kullanıcı olduğuna dair bilgi verecektir.
v10.png

Kaynak: Kim Korkar Linux’tan – Can/Ömer Ayfer,
How Linux Works – Brian Ward

Yorum bırakın