The best books for learning the Zen of Unix

Arnold Robbins Author Of Linux Programming by Example
By Arnold Robbins

Who am I?

I am a professional software developer and technical author, with a number of books published by O’Reilly and Prentice Hall. I have been working in the C / C++ / Unix / Linux world for over four decades. I am also the maintainer of the Free Software Foundation’s GNU Awk interpreter for the awk programming language. I have a passion for writing clear, correct, efficient, and portable code, and for applying the UNIX and Software Tools principles in my development. I hope that this book list will help you climb the learning curve of doing great Unix / Linux development.


I wrote...

Linux Programming by Example

By Arnold Robbins,

Book cover of Linux Programming by Example

What is my book about?

Assuming that you know only the C programming language, this book teaches you the fundamental Unix / Linux Application Programming Interfaces (APIs).  Based on industry standards, it helps you learn how to write correct, readable applications that deal with files, processes, signals, user information, and more. It brings example code from original Seventh Edition UNIX programs, as well as from more modern GNU programs, so that you can see how the APIs are used in real programs, and not just in toy examples.

The books I picked & why

Shepherd is reader supported. We may earn an affiliate commission when you buy through links on our website. This is how we fund this project for readers and authors (learn more).

C Programming Language

By Brian Kernighan, Dennis Ritchie,

Book cover of C Programming Language

Why this book?

Most heavy-duty Unix / Liniux programs are written in C or C++.  This book is the classic introduction to C. The information to page ratio is one of the highest I’ve ever seen; the book is dense but well worth the effort. The writing is clear and concise and this book has become the standard by which most other programming language books are judged.

In college, I read the first edition straight through in a few days. My head was spinning from so much information; I then read the book straight through a second time, and everything gelled. The second edition only improved on the first one.

If you are serious about learning C and Unix / Linux programming, start with this book.

C Programming Language

By Brian Kernighan, Dennis Ritchie,

Why should I read it?

1 author picked C Programming Language as one of their favorite books, and they share why you should read it.

What is this book about?

This edition describes C as defined by the ANSI standard. This book is meant to help the reader learn how to program in C. The book assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. A novice programmer should be able to read along and pick up the language.


Software Tools in Pascal

By Brian Kernighan, P.J. Plauger,

Book cover of Software Tools in Pascal

Why this book?

This book (an update to Software Tools by the same authors) codifies and instructs the principles by which the Unix / Linux toolset was designed. It emphasizes clear, robust code, and the building of tools, reusable, general purpose software components that can be hooked together to solve many kinds of programming and data management tasks. The lessons it teaches are timeless, and the current generation of programmers would be well served to try and learn them.

The original Software Tools was perhaps the single most influential software book that I ever read. It taught me how to think with the Unix mindset, how to make the best use of what the Unix system (and now Linux) offers, and how to focus on readability and maintainability in my own software.

Software Tools in Pascal

By Brian Kernighan, P.J. Plauger,

Why should I read it?

1 author picked Software Tools in Pascal as one of their favorite books, and they share why you should read it.

What is this book about?

With the same style and clarity that characterized their highly acclaimed The Elements of Programming Style and Software Tools, the authors have written Software Tools in Pascal to teach how to write good Pascal programs that make good tools. The programs contained in the book are not artificial, but are actual tools that have proved valuable in the production of other programs. Structured programming and top-down design are emphasized and applied to every program, as are principles of sound design, testing, efficiency, and portability. All of the programs are complete and have been tested directly from the text. The programs…


Advanced Programming in the Unix Environment

By W. Richard Stevens, Stephen Rago,

Book cover of Advanced Programming in the Unix Environment

Why this book?

Modern Unix systems (including Linux) offer a wealth of APIs. This book provides detailed instruction, including sample code, on how to make the best use of them. It is a one-stop-shop for mastering the details of Unix programming in C.

I recommend the book because it is thorough, authoritative, and clearly written. Richard Stevens was a well-known author and consultant and his books are models of clear exposition. Steven Rago is an experienced Unix developer and author as well.

Advanced Programming in the Unix Environment

By W. Richard Stevens, Stephen Rago,

Why should I read it?

1 author picked Advanced Programming in the Unix Environment as one of their favorite books, and they share why you should read it.

What is this book about?

For more than twenty years, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX (R) Environment. Now, once again, Rich's colleague Steve Rago has thoroughly updated this classic work. The new third edition supports today's leading platforms, reflects new technical advances and best practices, and aligns with Version 4 of the Single UNIX Specification.



Steve carefully retains the spirit and approach that have made this book so valuable. Building on Rich's pioneering work, he begins with files, directories,…


Lions' Commentary on Unix

By John Lions,

Book cover of Lions' Commentary on Unix

Why this book?

The previous books all cover programming at the user level – how to write regular programs for a Unix / Linux system. But what about the operating system itself?

This classic work explains the operating system code of the 6th Edition Unix system, which ran on Digital Equipment Corporation (DEC) PDP-11 systems. If you want to learn the basics of operating system implementation by reading real, working code, this is the place to start.

This is worth reading, even if you never intend to write kernel code, since an understanding of how the operating system works makes it easier for you to correctly use the system calls (APIs) that the operating system provides.

Lions' Commentary on Unix

By John Lions,

Why should I read it?

1 author picked Lions' Commentary on Unix as one of their favorite books, and they share why you should read it.

What is this book about?

The most famous suppressed book in computer history! * Used as an Operating System textbook at MIT"After 20 years, this is still the best expostion of the workings of a 'real' operating system." --- Ken Thompson (Developer of the UNIX operating system)After years of suppression (as trade secrets) by various owners of the UNIX code, this tome has been re-released, and we owe a debt to all involved in making this happen. I consider this to be the single most important book of 1996. Unix Review, June 1997"The Lions book", cherished by UNIX hackers and widely circulated as a photocopied…


The Design of the Unix Operating System

By Maurice Bach,

Book cover of The Design of the Unix Operating System

Why this book?

This book looks at UNIX System V Release 2 and Release 3, describing a more modern version of Unix.  It presents pseudo code of the internal algorithms with diagrams of the major data structures used by the system.

Here too, knowing how the operating system works will help you write better code to take advantage of the services provided to you.

Supposedly, Linus Torvalds read this book before he produced the first Linux kernel!

The Design of the Unix Operating System

By Maurice Bach,

Why should I read it?

1 author picked The Design of the Unix Operating System as one of their favorite books, and they share why you should read it.

What is this book about?

In this timely new book, Maurice J. Bach traces the popularity of the UNIX system throughout the computer industry. The author describes the internal algorithms and structures that form the basis of the operating system (the kernel) and their relationship to the programmer interface. Among its key features, the book: *Describes the outline of the kernel architecture *Introduces the system buffer cache mechanism *Includes data structures and algorithms used internally by the file system *Covers the system calls that provide the user interface to the file system *Defines the context of a process and investigates the internal kernel primitives that…


1 book lists we think you will like!

Interested in operating system, computers, and zen?

7,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about operating system, computers, and zen.

Operating System Explore 7 books about operating system
Computers Explore 24 books about computers
Zen Explore 70 books about zen

And, 3 books we think you will enjoy!

We think you will like Unix for the Beginning Mage, Effective C++, and Computers Ltd. if you like this list.