Unix rendszerekben a shellnek (parancsértelmező) fontos szerepe van. Ez biztosítja, hogy a felhasználó parancsokat adhasson az operációs rendszernek. E mellett egy különálló és teljesértékű programozási nyelv is. A parancsértelmező segítségével nem csak már meglévő programokat futtathatunk, hanem saját magunk is írhatunk úgynevezett scripteket (shell programokat).
Mire jó mindez? A Unix filozófiája szerint az egyes feladatokra nem nagy és komplex programok születnek, hanem a feladatokat részekre bontják, és ezeket a részfeladatokat oldják meg, majd összeillesztik őket. Erre az összekötő feladatra a shell kiválóan alkalmas. Nézzünk egy gyakorlati példát.
Tegyük fel, hogy van egy fájlunk, amelyben a leveleinket tároljuk. Tudjuk, hogy minden levelben van egy From: sor, amelyben a küldő neve található. Azt szeretnénk megtudni, hogy hány levél érkezett Kovács Jánostól.
$ cat levelek | grep "From:" | grep "Kovács István" | wc -l 7
Mint látható 7 levelet találtunk. A feladat megoldásához használt programokat külön-külön már ismertük, de együtt bonyolultabb feladatokat is meg tudunk velük oldani. Jelen esetben a programok közötti kommunkációt a a shell pipe (csővezeték) funkciója tette lehetővé, amellyel korábban már foglalkoztunk.