DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Coding
  3. Languages
  4. Top 6 Books For Unix And Shell Scripting Beginners

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.

Arnab Roy user avatar by
Arnab Roy
·
May. 06, 19 · Presentation
Like (5)
Save
Tweet
Share
11.88K Views

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.

Book Linux kernel shell dev

Published at DZone with permission of Arnab Roy. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Master Spring Boot 3 With GraalVM Native Image
  • Kubernetes-Native Development With Quarkus and Eclipse JKube
  • 10 Most Popular Frameworks for Building RESTful APIs
  • Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: