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.
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.
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.
Diğer bir filtre program sort komutu ise sıralanacak satırları bir dosyadan alır ve standart bir çıkışa yönlendirir.
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.
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.
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.
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.
Eğer bu komutu terminale her girdiğimizde görmek istiyorsak kullanıcısı olduğumuz ana dizindeki “.bashrc” dosyasına bu komutu ekleyebiliriz.
Terminale artık her girdiğimizde karşımıza sistemde kaç kullanıcı olduğuna dair bilgi verecektir.
Kaynak: Kim Korkar Linux’tan – Can/Ömer Ayfer,
How Linux Works – Brian Ward