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 dosyaları yazıcıya aktarmak için,
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.
Yönlendirme ve kanallama 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 kanallama 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.