Aşağıdakiler yeni kullanıcılara yardımcı olmak için biraz daha basitleştirilmiştir.
İlk önce standart girdi ve standart çıktı kavramını anlamak gerekir.
Linux ve diğer UNIX benzeri işletim sistemlerinde, her işlemin bir standart girişi ( stdin) ve standart bir çıkışı ( stdout) vardır. Genel durum bu stdinsizin klavyeniz ve stdoutekranınız veya terminal pencerenizdir.
Bu yüzden kaçtığın zaman ls, bunun çıktısını atar stdout. Başka bir şey yapmazsanız, ekranınıza veya terminal pencerenize gider ve siz onu görürsünüz.
Şimdi, bazı Linux komutları kullanıcıyla etkileşime giriyor ve stdinbunu yapmak için kullanıyor ; metin editörünüz bunlardan biri. stdinTuş vuruşlarınızı kabul etmek, bir şeyler yapmak ve ardından bir şeyler yazmak için okur stdout.
Ancak, etkileşimli olarak çalışmayan, ancak bir demet veri isteyen etkileşimli olmayan veya "filtre" komutları da vardır. Bu komutlar herşeye stdinsahip olacak , ona bir şey yapacak ve sonra ona fırlatacakstdout
Diyelim başka bir komuta bakalım du- disk kullanımı için duruyor. du /usrörneğin, ( stdoutdiğer Linux komutlarını beğenmek için), bu dizindeki her dosyanın bir listesini ve boyutunu yazdıracaktır :
# du /usr
2312 /usr/games
124 /usr/lib/tc
692 /usr/lib/rygel-1.0
400 /usr/lib/apt/methods
40 /usr/lib/apt/solvers
444 /usr/lib/apt
6772 /usr/lib/gnash
Hemen yarasadan söyleyebileceğiniz gibi, sıralanmamıştır ve büyüklük sırasına göre sıralanmasını istersiniz.
sortondan bir sürü şey alacak stdinve sıralayacak olan "filtre" komutlarından biridir .
Yani, eğer bunu yaparsak:
# du /usr | sort -nr
Bunu daha iyi anlıyoruz:
4213348 /usr
2070308 /usr/lib
1747764 /usr/share
583668 /usr/lib/vmware
501700 /usr/share/locale
366476 /usr/lib/x86_64-linux-gnu
318660 /usr/lib/libreoffice
295388 /usr/lib/vmware/modules
290376 /usr/lib/vmware/modules/binary
279056 /usr/lib/libreoffice/program
216980 /usr/share/icons
Ve şimdi "boru" nun stdoutbir komutun stdindiğerini diğerine bağladığını görebilirsiniz . Genellikle, komutun çıktısını filtrelemek, sıralamak ya da değiştirmek istediğiniz durumlarda bu gibi durumlarda kullanırsınız. Birden fazla filtre tipi komut aracılığıyla çıktıyı işlemek istiyorsanız bunlar basamaklandırılabilir.
sortKendi kendine yazarsanız , yine de okumaya çalışacaktır stdin. Yana stdinDenetim-D tuşlarına dek yazıp süreç işler için klavyenizin bağlanır, bu bekleyecek. Gerçekten de etkileşimli olarak kullanılmadığı için size bilgi vermeyecektir.
Bir programın stdinetkileşimli olup olmadığını söylemesi mümkündür , bu nedenle bazı programlar bunları kendi başlarına veya bir borunun sonunda yayınlarsanız farklı davranabilir.
Ayrıca, yalnızca etkileşimli olarak çalışan bir programın oluşturulması, vikötü zaman geçirmenize neden olur.
Borular, hiçbir yerde saklanmadan verilerin bir komuttan diğerine karıştırıldığı yönlendirme işleminden farklıdır. Yani, yukarıdaki örnekte, duçıktısı hiçbir yerde saklanmaz. Bunu borularla istemediğiniz zamanların çoğu, çünkü boruları kullanmanın nedeni bir komutun çıktısını bir şekilde işlemektir - ama, teepastanızı almanızı ve yemenizi sağlayan bir komut vardır. stdinikisinden aldıklarını stdoutve seçtiğiniz bir dosyayı kopyalayın . Bunu, bashbilmediğim bir işaret ve köşeli parantez içeren bazı gizli sözdizimi ile de yapabilirsiniz.
|bir isim kullanmamasıdır, l-el komutundan çıkan çıktı doğrudan borunun el-tarafındaki komut girişine iletilir.