Unix and Linux System Administration Handbook book cover. Illustration by: Lisa Haney
Unix and Linux System Administration Handbook book cover. Illustration by: Lisa Haney

Read and Review the Pillars of System Administration

Computer programmers, website developers, and people learning the basics as production managers of Linux and Unix systems will be able to acquire new information from this handbook.

After reading this book, I wanted to share some of the key points with advanced engineers, as well as people starting out like myself.

Now in the fifth edition, Unix and Linux System Administration Handbook was written by: Evi Nemeth, Ben Whaley, Dan Mackin, Trent R. Hein, and Garth Snyder.

During the release of the book, Dan Mackin and Trent R. Hein were on hand at the Applied Trust office to help showcase the latest edition. Dan shared with me his inspiration for writing the book.

“I was inspired by the incredible community and support from other engineers in our field.” – Dan Mackin

One year ago I started attending DevOps meetings called Meetups in the Boulder area. I was able to expand my comfort zone past front-end development, and find out more on how system operations worked. The Meetups continue to be an excellent way for people to acquire new skills in networking and operations.

The first few chapters contained information and vocabulary that was over my head at times, but I found out that after reading and reviewing new terms, it expanded my ability to learn new information. I suggest you read the latest edition to stay up to date on Linux and Unix systems, as well as refresh yourself with the latest cloud computing trends.

I covered the first ten chapters of this book to give readers a quick overview, and to push people to read the entire handbook.

Section 1: Basic Administration

Before we break into Chapter 1, the authors added a tribute to Evi Nemeth. She was one of the main authors for the first four editions of the book, and was as passionate about traveling as she was about computer science. It is an honor to be one of the people that she inspired.

A long list of editors and support helped bring this book to life. The illustrations were produced by Lisa Haney.

1. Where to Start

The opening of the book helps identify which readers will get the most out of the content. As a person that does not operate in Linux or Unix, I questioned the value that this book would add to my learning process. After reading through it, I found out that for those that want to learn; the information is there to inspire them regardless their level of management or personal use with Unix or Linux. When able, I will transfer over to one of these operating systems to have more control and security over my workflow.

In college one of my professors would help show students how to install and operate Linux and Unix on a Raspberry Pi. I realized that even though I haven’t used one of these platforms in years, it did not detract from my desire to learn more about them.

Regardless of the hardware that a programmer uses to install Unix or Linux, the open source software will be able to function and provide a vast amount of options to work with overall. The first chapter notes that using Ubuntu is one of the versions that they use. They also include several other versions in Chapter 1 such as FreeBSD for Unix distribution. In regards to a Linux distribution, they note that the Debian version is one of the most commonly used operating system.

There is several different versions of Unix and Linux available to download online. For those wanting to expand their script writing skills, the authors recommend using Bash, Ruby and Python as default command shells.

2. Booting and System Management Daemons

This section of the handbook covers management and development tools when booting the system. As I read through this section of the book, I did see some terms such as init, and systemd that I had experienced before. After reading through this part of the handbook, I had a much better understanding of how programs loaded when starting a computer.

One of the machines at my gym must use a similar processor. I noticed when trying to reboot one of the ellipticals that the terms that I just became more familiar with were being displayed on the screen. Sadly, I did not have a keyboard to access the software to try and update and debug the system processor.

3. Access Control and Rootly Powers

This chapter was important to me because I have wondered for years about the root folder when setting up websites on my personal computer. I have accessed this folder, but lacked the understanding of how it worked.

By reading this handbook, I was better able to understand how to manage the root user, and how to operate permissions setup by Linux and Unix. They dive into the kernel with the root user, and show how a person can manage different accounts and operations.

Also during this chapter, I was able to find out more about how the filesystem is setup. The authors talk more about this subject in chapter 5.

4. Process Control

In comparison to the pervious chapter on how to access programs and operations, this chapter focuses on the administration side to managing programs.

Most people that have used computer programs have probably experienced issues with them running slow at some point in time. I’ve personally seen memory issues with smartphones, laptops and desktops. This chapter helped inform me about how to control those issues.

One example they share is a term called runaway that explains how some programs have technical issues. I found this interesting because I have wondered about when programs malfunction if it is the program or the computer that is causing the problem. I’ve experienced memory issues that will cause programs to run slow, and the more I research how to manage them, the easier my workflow is on different computers.

5. The Filesystem

The filesystem is a new concept to myself. The authors define the filesystem as the representation of the system’s storage resources.

Within the filesystem, the API, application programming interface is managed.

Later in chapter 20 the handbook connects the filesystem with storage components. I have worked with partitioning disk space on personal computers, and have found out this material is very important.

Filesystems or file trees have the following file types:

  • Regular files
  • Directories
  • Character device files
  • Block device files
  • Local domain sockets
  • Named pipes (FIFOs)
  • Symbolic links

6. Software Installation and Management

System administrators will always be in charge of managing and updating software to work properly with hardware components.

In addition to preexisting programs, this chapter helps provide information on being ready to manage upcoming and the latest programs. Similar to this book, programs within a computer will have new editions, and staying up to date is extremely important.

With the rise of smartphones, keeping applications and programs up to date is vital to keeping personal information secure. This is also true for computers using Unix and Linux.

7. Scripting and the Shell

Each section of this book works in combination like a computer overall. I found this part of the handbook to be key when developing skills on coding in Ruby and Python. Additionally, these languages work with automation and configuration.

When scripting sysadmins will keep a library of commands known as scriptlets. During my current job, I have these setup to save time overall. I find that creating shortcuts to manage code is vital for time management.

It was interesting to find out that the authors of this book used Adobe InDesign to create this handbook. Furthermore, they added methods of automation with macOS and PC computers for users to easily try out to save time on different tasks.

I personally want to learn more on automation in regards to Puppet and Chef. Browse over chapter 23 to learn more on those languages.

They add a scripting languages cheat sheet with some important tips. I have listed a few of them below.

  • Bourne shell – Simple series of commands, portable scripts.
  • bash – Like Bourne shell, but less portable.
  • C shell – Never for scripting.
  • JavaScript – Web development, app scripting.
  • Perl – Quick hacks, one-liners, text processing.
  • PHP – You’ve been bad and deserve punishment.
  • Python – General purpose scripting, data wrangling.
  • Ruby – General purpose scripting, web.

The above cheat sheet is some vital information for programmers.

I would often ask engineers, ‘what coding language do I need to learn?’ And they would often respond, ‘it depends what you want to do.’ This confused me for months before I started to realize the each language is used for a specific platform.

When I read reviews for this handbook on Reddit, I often see people questioning if they need to read the latest edition.

One reason I find this edition to be important is the updates to coding languages. Python 3 is an excellent example of a language that has been updated, and continues to evolve.

In addition to my introduction to Python 2 and 3, I was also introduced to Ruby programming. I’m excited about learning how Chef and Puppet work in chorus with Ruby. As a Web developed, I plan to expand my knowledge in each of these coding languages.

8. User Management

As a website manager, I have worked with some user management operations. I admit it is at a basic level, but creating login information is one task that I have some experience.

The book provides a list of user management tasks that are common:

  • Login name.
  • Encrypted password placeholder.
  • UID (user ID) number.
  • Default GID (group ID) number.
  • Optional “GECOS” information, full name, office, extension, home phone.
  • Home directory.
  • Login shell.

When I was helping students build their first website, I would stress the importance of creating an encrypted password to make it as hard as possible for hackers to obtain their information. This book focuses more on the Unix and Linux side of adding users to a system, but there is some similarities to it as well.

9. Cloud Computing

Another reason to acquire this latest edition is the continuous updates happening within cloud computing.

With my current job we utilize the cloud service known as Rackspace. The Google Cloud platform is another service I have worked with for several years. I’ve been able to work in those virtual environments, but I continue to want to learn more about Amazon Web Services.

  • Infrastructure-as-a-Service (IaaS) – also known as virtual private servers.
  • Platform-as-a-Service (PaaS) – a method where the vendor manages the OS on the network.
  • Software-as-a-Service (SaaS) – web applications such as WordPress.

In regards to Net Neutrality and server technology, I find that several large-scale companies can afford to pay to have servers located around the country. It is my point of view that these companies can already speed up their delivery time before the regulations behind Net Neutrality are repealed.

10. Logging

Log management contains the following aspects:

  • Collecting logs from a variety of sources.
  • Providing a structured interface for querying, analyzing, filtering, and monitoring messages.
  • Managing the retention and expiration of messages so that information is kept as long as it is potentially useful of legally required but not indefinitely.

After reading through the book, I have also included this YouTube video to browse over to get a quick look at how system administration works.