People follow several ways to learn a new programming language. Some follow blogs, some go for online tutorials, some invest in college courses and classes, and some like to sit with a well written book. Personally, I believe in the traditional manner of learning something through books. Coming to Unix, since its birth in 1960, the language has been constantly under development. Specially for mobile development and server environment management, it is very important to learn Unix, since it builds up the base for advanced programming.
In this article, I have listed down top books to read if you want to improve your proficiency in Unix and Shell scripting. Some of the books listed here are for beginners while others are for developers who already have some basic knowledge in Unix. Let’s get started without any further delay.
This book is one of the best available in the market. Sir Richard Steven wrote this book about 3 decades ago when Unix was first developed and developers consider this to be a timeless classic. Beginners in Unix language starts building up their concepts through some amazing features like
- Examples of practical code with line wise explanation.
- Graphical illustrations that makes you understand how different processes work.
- Different editions of the book are released, each updated with the latest tutorials according to version change of the Unix operating system.
If you want to learn Unix, this is the best book to get started. Also, for people who already know Unix and want to refresh some old concepts or learn new ones, this book is recommended by developers all around the world.
This is relatively a new book, unlike many older books followed by developers. Michael Kerrisk, who is a maintainer of Unix, wrote this book to help fellow developers. He was working on Unix since 1987 and his focus has been on Linux since 1990. However, to understand this book, one needs to have their basic concepts clear about Unix. It helps developers by
- The detailed explanation of the Linux interface that is behind the application development.
- Building up the basic knowledge of library functions.
- Detailed information of signals, clocks, and timers in Linux.
Readers of this book can create and execute processes efficiently since it follows a practical approach with coding examples. A reader can find sample codes of every basic concept that is used in Linux.
Richard Stones and Neil Mathew wrote this book. Several editions are available, the current being 4th. For beginners who are planning to become an expert in Unix programming, this is one of the best books to begin with. The book contains
- Explanation of C libraries used in Linux.
- Procedures explaining how to get the most out of development tools that are used in Linux.
- How to develop a graphical interface efficiently
- Basic understanding of TCP/IP network protocols.
Readers of this book easily becomes able to write programs that work well on different versions of Linux.
Programmers are often curious how stuff works. Written by Brian Ward, this book helps them take a deep dive under the hood. Programmers generally spent a lot of time in understanding how processes work behind most used technologies like .net of Java. Very few spent their time on Linux, which is more important and probably will help programmers in future also. Reading this book, developers can clearly understand how everything works by reading detailed information about
- How networking operates
- The process of system rebooting
And many more.
Written by Robert Love, this book mostly focuses on mistakes made by developers who are new in kernel level programming of Linux. Understanding the kernel is one of the basic requirements of a Linux developer. It does not matter whether you are an expert, or a beginner, this book will help you in many ways by
- A detailed explanation of interface, design, and implementation of kernel.
- Explaining kernel programming via practical as well as theoretical examples
- Chapters covering memory allocation using virtual memory, kernel data structure, industry level standards for working with kernel patches.
Mark J. Rochkind wrote the second edition of this book to provide developers with a more up to date way of gathering knowledge. This book can be used both as a workbook or a reference.
- It explains a bit about the history of Linux.
- Chapters cover signals, sockets, thread, etc. in details.
Earlier, the book by Stevens was considered to be the best for developers learning Linux, but in terms of readability, this book is slightly better.
The list mentioned above is based on reviews by readers as well as my personal opinion. Many other books are available in the market which a programmer will love to read. For becoming a better programmer, Linux is a language must learn since it teaches you a lot about networking, system programming, operating systems and also inter-process communications. So, hurry up, these books are available for purchase at any online retail store. Grab them and take a deep dive in the world of shell scripting and kernel programming.
Originally published at LambdaTest
Written by Arnab Roy Chowdhury