The UNIX™ Philosophy

The UNIX philosophy is enunciated in the preface of the book The UNIX Programming Environment by Brian W. Kernighan and Rob Pike, published in 1984 by Prentice Hall, Inc.


Kernighan and Pike say:

Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well. Instead, what makes it effective is an approach to programming, a philosophy of using the computer. Although that philosophy can't be written down in a single sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. Many UNIX programs do quite trivial tasks in isolation, but, combined with other programs, become general and useful tools.

Kernighan and Pike go on to say:

To use the UNIX system and its components well, you must understand not only how to use the programs, but also how they fit into the environment.

As the UNIX system has spread, the fraction of its users who are skilled in its application has decreased. Time and again, we have seen experienced users, ourselves included, find only clumsy solutions to a problem, or write programs to do jobs that existing tools handle easily. Of course, the elegant solutions are not easy to see without some experience and understanding. … We want you to use the UNIX system well.