Învelișul din sistemele de operare ale Unix au un mecanism numit tub , conductă sau țeavă ( / paɪp / ). Acest mecanism face posibilă înlănțuirea proceselor, astfel încât ieșirea unui proces ( stdout ) să alimenteze direct intrarea ( stdin ) a următorului. Fiecare conexiune este stabilită de un tub anonim . Programele de filtrare sunt adesea utilizate în această configurație. Douglas McIlroy a inventat acest concept pentru shell-urile Unix și numele englezesc derivă din analogia cu o conductă fizică.
Simbolul folosit pentru a crea țevi în cochilii Unix este bara verticală | , denumit în mod obișnuit tub sau țeavă prin extensie.
De exemplu : programme1 | programme2
Programul program1 este executat de sistem care trimite rezultatele către program2 care, la rândul său, returnează rezultatele la ieșirea standard a sistemului.
Tubul este utilizat pe scară largă pe Unix, de exemplu pentru a asocia mai multe comenzi ale căror procese sunt legate.
De exemplu, comanda:
cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | lessVă permite să preluați și să afișați adresele IP ale clienților care au accesat cel mai frecvent un server web Apache .
În sistemele de operare monotâches ca MS-DOS , procesul înlănțuit trebuie să fie efectuat secvențial, adică unul după altul. Ieșirea fiecărui proces este apoi salvată într-un fișier temporar, care este apoi citit de următorul proces. Prin urmare, pe de o parte, dimensiunea necesară pe disc pentru a efectua aceste comenzi poate fi foarte mare și, prin urmare, executarea foarte lentă, pe de altă parte, achiziția permanentă este imposibilă, deoarece nu va returna niciodată „mâna” și în cele din urmă aceste comenzi nu pot procesa real- achiziții de date de timp, deoarece totul trebuie scris pe discuri înainte de a se face a doua procesare. Totuși, sintaxa este identică cu cea a conductelor shell UNIX. Prin urmare, vorbim de pseudo-tuburi.
Prelucrarea "dir | soarta | mai mult "de către interpretul de comandă permite afișarea pe pagină a listei fișierelor din director într-un mod sortat. Pentru a face acest lucru, sistemul execută:
Windows PowerShell , echivalentul shell-ului pentru sistemele de operare Microsoft multitasking , implementează, de asemenea, acest tip de mecanism. Dar, spre deosebire de conductele UNIX care vă permit să manipulați un flux de date brut sub formă de octeți sau biți, conductele PowerShell vă permit să manipulați obiecte .NET , o metodă care, implicit de către interpretul de comandă, verifică natura fluxului.