Potok () – jeden z mechanizmów komunikacji międzyprocesowej umożliwiający wymianę danych pomiędzy dwoma procesami. Odbywa się to najczęściej poprzez połączenie standardowego wyjścia jednego procesu ze standardowym wejściem drugiego.

Historia Mechanizm potoku i jego notacja (pionowa linia) zostały wymyślone przez Douglasa McIlroya, jednego z autorów wczesnych powłok systemowych po tym, jak zaobserwował, że w wielu przypadkach wyjście jednego programu stanowiło wejście dla drugiego. Jego pomysł został zaimplementowany w 1973 roku, przez Kena Thompsona w systemie operacyjnym UNIXhttp://www.linfo.org/pipe.html Pipes: A Brief Introduction by The Linux Information Project (LINFO).. Mechanizm potoku został następnie dodany w innych systemach operacyjnych, takich jak DOS, OS/2, Microsoft Windows i BeOS, często z tą samą notacją.

Potoki procesowe W uniksowych powłokach systemowych używa się symbolu „|” (pionowej linii), aby połączyć dwa lub więcej procesów w potok.

Przykład wykorzystania potoków w systemie UNIX: $ ps -a | sort | uniq | grep -v sh Powyższa konstrukcja zwróci listę uruchomionych procesów (), posortowaną alfabetycznie (), niezawierającą powtórzeń (), oraz bez linii zawierających wzorzec sh ().