Most of the book is devoted to discussions of individual tools, but throughout run the themes of combining programs and of using programs to build programs--emphasizing how they fit in the environment.
From the Publisher
Designed for first-time and experienced users, this book describes the UNIX®programming environment and philosophy in detail. Readers will gain an understanding not only of how to use the system, its components, and the programs, but also how these fit into the total environment.
The Unix Programming Environment is a book written by Brian W. Kernighan and Rob Pike, both of Bell Labs. It is considered an important and early document of the Unix operating system. Often considered "the Bible"[by whom?], it is considered the most authoritative work on Unix. It was first published in 1984 by Prentice Hall.
The book starts off with an introduction to Unix for beginners. Next, it goes into the basics of the file system and shell. The reader is led through topics ranging from the use of filters, to how to use C for programming robust Unix applications, and the basics of grep, sed, make, and awk. The book closes with a tutorial on making a programming language parser with yacc and how to use troff with ms and mm to format documents, the preprocessors tbl, eqn, and pic, and making man pages with the man macro set. The appendices cover the ed editor and the abovementioned programming language, named hoc, which stands for "high-order calculator".
The book is perhaps most valuable for its exposition of the Unix philosophy of small cooperating tools with standardized inputs and outputs, a philosophy that also shaped the end-to-end philosophy of the Internet. It is this philosophy, and the architecture based on it, that has allowed open source projects to be assembled into larger systems such as Linux, without explicit coordination between developers.
The book was written before ANSI C was first drafted, therefore the programs in the book are nonstandard and follow K&R style. However, the source code available on the book's website has been updated for ANSI C conformance (but uses the implicit int rule, which is disallowed in C99).
ISBN 0-13-937681-X (paperback), 0-13-937699-2 (hardback).