The pipe is the mechanism that lets the output of one Unix program become the input of the next without either program knowing about the other. In the foreword to the 1978 Bell System Technical Journal issue devoted to the Unix Time-Sharing System, Doug McIlroy, Pinson, and Tague set out the design attitude behind it: make each program do one thing well, and have programs work together by passing text streams, because text is a universal interface.
This style is often called “pipes and filters.” A filter is a small program that reads a stream of text, transforms it, and writes a stream of text. A pipe connects filters end to end. Because each tool is small and speaks the same simple language of text, tools written years apart and by different people can be combined in ways none of their authors planned.
The payoff is leverage. Instead of one large program that tries to do everything, a user assembles a pipeline from existing pieces, a search tool feeding a sort tool feeding a counter, and gets a custom result in a single line. The Unix research group at Bell Labs built much of its working environment this way, and the approach became one of the most copied ideas in software design.
The philosophy also disciplines how programs are written. A tool meant to sit in a pipeline avoids chatty prompts and decorative output, sticking to clean text so the next program can read it. That restraint is why the 1978 foreword’s short rules are still quoted as the core of the Unix philosophy.