Boru (pipe) İşlemleri

Next: Çokgörevlilik Up: Kabuk İşlemleri Previous: Standart Girdi, Çıktı ve

# Boru (pipe) İşlemleri

Bazı durumlarda, bir komutun çıktısı diğer bir komuta yönlendirilebilir. Başka bir deyişle, komutun standart çıktısını bir dosyaya değil, bu çıktıyı işleyecek başka bir komuta yönlendirmek istiyorsunuz. Bu amaçla UNIX altında (yine DOS'ta olduğu gibi) boru () karakteri kullanılır. Bu karakter, kendinden önce gelen komut veya komut serisinin çıktısını, kendinden sonra gelen komuta gönderir. Örneğin bir dizinde yeralan tüm detaylı dosya bilgilerini yazıcıya aktarmak için,

    $ ls -al | lpr

komutları kullanılabilir. Artık `ls -al` komutunun ekrana vermesi gereken tüm bilgiler, `lpr` komutu aracılığıyla yazıcıya gönderilmiştir. İlk komutun standart çıktısı, ikinci komuta standart girdi olarak atanır. Diğer bir örnekte, `README` dosyasında kaç satır olduğu bulunuyor. Bir dosyadaki veya komut çıktısındaki satır, karakter ve kelime sayılarını bulmak için `wc` komutunu kullanabilirsiniz.

    $ who | wc -l
    40

Yönlendirme ve pipe işlemleri bazen insanın kafasını karıştırabilir. Yönlendirme, bir programdan bir dosyaya yapılabilir, fakat bir programdan başka bir programa yönlendirme yapamazsınız. Benzer şekilde, iki dosyanın arasında pipe işlemi uygulamak mümkün olmaz.

Şimdi de biraz karışık bir örnek:

    # ps -aux | grep inetd | grep -v grep|awk '{print $2}' | xargs kill -1

Yukarıdaki örnek zorlama bir örnek değil, bir Linux sistem yöneticisinin her an kullanması gerekebilecek türden. Bu örneği burada ayrıntılı olarak açıklamayacağız, sadece pipe kullanarak ne kadar fazla sayıda komutun birbirine bağlanabildiğini göstemek amacıyla verdik. Bu ve benzeri komutların ayrıntılı açıklamalarını kabuk programlamayla ilgili bölümde bulabilirsiniz.

Next: Çokgörevlilik Up: Kabuk İşlemleri Previous: Standart Girdi, Çıktı ve