The best books for learning the Zen of Unix

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.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

The books I picked & why

Book cover of C Programming Language

Arnold Robbins Why did I love 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.

By Brian Kernighan, Dennis Ritchie,

Why should I read it?

3 authors 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.

Book cover of Software Tools in Pascal

Arnold Robbins Why did I love 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.

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…

Book cover of Advanced Programming in the Unix Environment

Arnold Robbins Why did I love 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.

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,…

Book cover of Lions' Commentary on Unix

Arnold Robbins Why did I love 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.

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…

Book cover of The Design of the Unix Operating System

Arnold Robbins Why did I love 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!

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…

5 book lists we think you will like!

Interested in operating system, software engineering, and computer programming?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about operating system, software engineering, and computer programming.

Operating System Explore 11 books about operating system
Software Engineering Explore 25 books about software engineering
Computer Programming Explore 39 books about computer programming