The Unix Programming Environment
This book is the most clear, concise and eloquent expression of the Unix and ‘tool’ philosophies to date.
The book starts with the basic Unix principles and building blocks: pipes, the shell and other core utilities; and then shows how one can combine them to create completely new tools.
This is followed by discussion of how to design and build your own tools in C.
The precursors for this book were the author’s ‘cat -v considered harmful’ presentation and the paper ‘Program Design in the UNIX Environment*’.