To be honest, I find The Unix Programming Environment by Brian W. Kernighan and Rob Pike much, much better. The book truly captures the Unix philosophy and teaches you the idioms. It's unsurprisingly since it comes from the original Bell Labs Computing Sciences Research Center and the authors are extraordinary technical writers.
This is an excellent book and the one that made me truly "get" the philosophy of Unix (e.g. using multiple processes, data over code, OOP is not the end-all be-all of abstraction, etc.)<p>Apparently ESR pissed a lot of people off, but that doesn't make the book bad -- it is truly excellent, and contains material you won't find anywhere else (really). Yes I can see from his writing style why people are irritated, but it actually helps the clarity of the book, oddly.<p>Those recommending the Unix Programming Environment must not have read this book -- they're missing the fact it covers completely different subject matter. Neither substitutes for the other.<p>Compare the TOC:<p><a href="http://www.pearsonhighered.com/educator/product/The-UNIX-Programming-Environment/9780139376818.page" rel="nofollow">http://www.pearsonhighered.com/educator/product/The-UNIX-Pro...</a><p><a href="http://www.catb.org/~esr/writings/taoup/html/" rel="nofollow">http://www.catb.org/~esr/writings/taoup/html/</a>
I'm surprised this hasn't been submitted before. It's been around for quite some time now.<p>Regardless of what you think of ESR's personality, politics or hacking skills, I found this to be a pretty good read.<p>There's lots of good things in here that apply - not just to software written for Unix systems - but for software in general (I guess it's not really a coincidence that a lot of the good practices on Unix are good practices in general).<p><i>Edit</i>: Joel Spolsky's take on it: <a href="http://www.joelonsoftware.com/articles/Biculturalism.html" rel="nofollow">http://www.joelonsoftware.com/articles/Biculturalism.html</a>
His essay on enterprise vs. free approaches to development titled The Cathedral and the Bazaar is also an interesting read and provides some interesting insights behind the unix philosophy: <a href="http://catb.org/~esr/writings/homesteading/cathedral-bazaar/" rel="nofollow">http://catb.org/~esr/writings/homesteading/cathedral-bazaar/</a>
It's a good book to read, but not in anyway essential or required reading and its badly mis-titled as it contains very little discussion on actual UNIX programming.<p>The main issue I had with the book was that ESR seem to conveniently decided that the only post 1995 UNIX worth talking about is Linux, largely ignoring the *BSDs and OS Xs of the world. The later sections on licences seems out of place and drift a little bit too far into Open Source dogma for my tastes.<p>In summary its a bit of a curates egg as it seems to be a bunch of separate essay's that ESR has tried to jam together under a single topic that don't quite fit together.
Joel Spolsky take on it <a href="http://www.joelonsoftware.com/articles/Biculturalism.html" rel="nofollow">http://www.joelonsoftware.com/articles/Biculturalism.html</a>
I referenced the above article in a blog post not too terribly long ago.<p><a href="http://www.robertames.com/blog.cgi/entries/the-unix-way-command-line-arguments-options.html" rel="nofollow">http://www.robertames.com/blog.cgi/entries/the-unix-way-comm...</a><p>"How to be unix-y in eleventy billion steps"
esr is a complete idiot fyi<p>why would you read a book about unix programming from someone who never wrote a unix program that was worth a crap?<p>read the unix programming environment instead.