Top 6 Books For Unix And Shell Scripting Beginners
Whether you're learning or simply want to learn more, check out this list of Linux books to get you started.
Join the DZone community and get the full member experience.Join For Free
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. Especially 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 the 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.
Advanced Programming in the UNIX Environment
This book is one of the best available in the market. Sir Richard Steven wrote this book about three decades ago when Unix was first developed and developers consider this to be a timeless classic. Beginners in Unix language start building up their concepts through some amazing features like:
- Examples of practical code with line-by-line explanations.
- Graphical illustrations that make you understand how different processes work.
- Different editions of the book are released, each updated with the latest tutorials according to the version change of the Unix operating system.
If you want to learn Unix, this is the best book to get started. 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.
The Linux Programming Interface
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:
- Providing a 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.
Beginning Linux Programming
Richard Stones and Neil Mathew wrote this book. Several editions are available, the current being the fourth edition. For beginners who are planning to become experts 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 become able to write programs that work well on different versions of Linux.
How Linux Works
Programmers are often curious about 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 understand how processes work behind most used technologies like .NET or Java. Very few spent their time on Linux, which is more important and probably will help programmers in the future. Reading this book, developers can clearly understand how everything works by reading detailed information about
- What is done by the Linux kernel
- How networking operates
- Process of system rebooting
Linux Kernel Development
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 the 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.
Advanced Unix Programming
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 of the history of Linux.
- Chapters cover signals, sockets, thread, etc. in details.
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 would find valuable to read. For becoming a better programmer, Linux is a language you must learn since it teaches you a lot about networking, system programming, operating systems, and inter-process communications. Grab them and take a deep dive in the world of shell scripting and kernel programming.
Published at DZone with permission of Arnab Roy. See the original article here.
Opinions expressed by DZone contributors are their own.