Linux for DevOps: What You Need to Know
Linux is the beautiful, strange kernel which runs everywhere. It powers your servers, clouds, pipelines, smartphones and so much more. But Linux can be difficult for beginners, and somewhat fugly. So, whether you’re a newbie or an
old mature hand in tech, let’s look at what you should know about Linux in DevOps, and how to learn it.
Once you’ve understood why it’s important to learn Linux for DevOps, and once you’ve learned about the basic components and concepts, you’ll be well on your way to being a pro. Linux is used everywhere in DevOps, so the better you understand it, the more you will feel comfortable taming those beastly cloud servers and containers. 🦁
This is a blog supported by you, the amazing reader! Some of the links on this page are affiliate links, and if you make a purchase then I earn a small commission, at no extra cost to you. This helps to fund my free tutorials (yassssss!)
How Linux is used in DevOps
Linux tasks in DevOps
A lot of people now think of the technical term “DevOps” as just a catch-all for those tasks which create infrastructure, build software, and get it running in production.
But what exactly are those tasks?
If you’re going to be doing DevOps, in a company that uses Linux to run applications and servers, then you’ll probably need to know how to use a Linux terminal 🐧💻, and know the top Linux commands, so that you can do things like these:
Creating and editing files
Managing users, groups and permissions
Understanding where programs and system files are kept – this is sometimes called the Linux directory structure
Configuring network connections and firewalls
Installing and configuring software – usually called packages in Linux
Monitoring programs and processes – e.g. using the command top
Automating all of the things above – using simple scripting like Bash
This isn’t an exhaustive list, by the way!
There are some more specialised tasks which a DevOps-skilled engineer might occasionally need to do.
But, these are at least the basic tasks that are involved in deploying software.
This might sound like a lot to learn, but you can pick up these skills step-by-step.
Is Linux required for DevOps?
What about Linux itself? Is it required for all DevOps work?
DevOps means closing the gap between the people who write the code, and the people who deploy and run it. In an ideal world, those two people work very closely together, or they’re even the same person.
It can also often mean that each team owns their application, “from code to cloud”.
DevOps is just a way of thinking – it doesn’t mandate any specific technologies.
So strictly speaking, Linux isn’t required for DevOps!
But since every organisation needs to run applications, tasks and services, they need operating systems to do it.
And every organisation does things differently, so you might find that some teams use Linux exclusively, while other teams don’t use it at all.
Check out this job listing for a DevOps Engineer. In the skills requirements, it lists some Microsoft technologies, and doesn’t talk about Linux anywhere:
(If you don’t understand what “AD” and “IIS” mean, then they are primarily Microsoft (Windows) technologies.)
So, you could have a DevOps role (or be “doing DevOps”) and never even touch Linux.
Is it hard to learn Linux?
It’s not difficult to learn Linux basics, like logging on to a server, creating and editing files.
And to be honest, that’s good enough for everyday knowledge.
If you’re chasing Linux , then it could take years to become an expert.
So you might find it easier if you have a natural level of “curiosity” towards Linux. For example, you’ll often ask questions like:
What does [x] command do?
Where can I configure this program?
Why is this program not working?
Since Linux (or GNU/Linux) is made up of a whole heap of different programs and utilities, you often have to spend time finding the utility which does the job that you want, and then you need to find the focus to read and understand documentation. That’s where your natural curiosity will help.
But every time you learn something new, your knowledge will grow.
Now we’ve seen a bit about using Linux for DevOps, let’s look into the distributions you might see at work.
Linux distributions for DevOps
Big companies often stick with well-known, established Linux distributions, usually because they want support, and because the applications they want to run are certified to run only on these distros.
Here are the most common distributions that you might use if you’re working in DevOps, in a corporate environment.
Red Hat Enterprise Linux, CentOS & Fedora (and Amazon Linux)
These Linux distributions are so closely related, they might as well be sharing the same bed. 🤨 They share a lot of the same characteristics and programs, so I’ve lumped them together under one heading.
CentOS (now CentOS Stream) is a more “stable” distribution designed for servers, with fewer packages available for it, and with less frequent releases. Many companies run CentOS because they want a slow, stable Linux distribution, but without the cost.
Red Hat Enterprise Linux (often called RHEL, and pronounced “rel”), is even more stable and slow-moving, and closely follows CentOS. It’s mostly used in large companies, such as banks. It’s commercial (💰💰💰), but you can get a free developer subscription from Red Hat if you want to try it out yourself.
Amazon Linux is also in this list. If you spin up a basic EC2 machine in AWS, you’ll probably be using Amazon Linux. It’s loosely similar to the other distributions above.
Fedora is a Linux distribution for home users and hobbyists. It’s less likely to be used in DevOps or to run a server. This is because it has regular releases, tends to change quite often, and is geared more towards personal desktop use.
Ubuntu and Debian are two distributions that are closely related to each other, because they share quite a few common packages and tools.
Ubuntu is massively popular, and for good reason. It’s easy to install and use, which is why it’s been adopted by everybody from gamers to developers.
You will also find it used in the enterprise, as some companies get enterprise support for it.
Alpine Linux isn’t about typing commands on lush Alpine meadows, whilst singing The Sound of Music (sadly).
Alpine is a Linux distribution designed primarily for small size. It doesn’t include a bunch of stuff you might get in other Linux distributions. And it’s gaining a lot of support because it’s stripped-back nature, which makes it ideal for running applications in containers.
If you want to install Linux in your home, and you’re trying to choose a distribution, then check out Distrochooser. You just enter your preferences and things you want to do with Linux, and it will help you choose a Linux distribution. Ace.
So assuming that you want to get started, what are some good paths for learning Linux for DevOps?
Top Linux courses
If you’re ready to put your toes in the water, you could try taking a free or a paid course to learn Linux.
For beginners, I recommend getting stuck into this course:
- Linux Upskill Challenge (free, Reddit) Recommended Beginners - This is an awesome way to get started with Linux! This course runs on Reddit, and starts on the first Monday of every month. Every day, a new exercise is posted, which gets you to learn a new Linux skill. It teaches you practical skills, and gets you hands-on with the command line. It’s a great way to blow away your fears and work on some tasks, in a supportive community. There’s also an accompanying Discord server if you want to chat with others. Highly recommended free hands-on course for beginners!
These paths below are for you if you have a little IT experience already, and both lead to a certification which can be handy if you’re applying for jobs. Don’t forget that certification is often a good way to learn about all areas of a technology, not just the areas that you like!
Since Linux is so massive, these courses can’t teach you everything, but they will get you pretty far:
Essentials of Linux System Administration (Linux Foundation) Intermediate - This is a very extensive course. And so it should be, considering that it’s from the Linux Foundation. It covers fundamentals like process monitoring, networking, storage, package management and lots more. It’s based on the main Linux distros used in DevOps (RHEL, Ubuntu, SUSE). Doesn’t include a virtual lab environment, but includes instructions on how to run Linux on your own machine using virtualisation software like VirtualBox. A great professional course with 50+ hours of course material.
From this course, you can go on to take the Linux Foundation Certified System Administrator (LFCS) exam if you want to add a certification to your resume. You can also save money by buying the training and exam together in a single bundle.
Red Hat Certified System Administrator (RHCSA) Complete Video Course (Sander Van Vugt) Intermediate - Sander Van Vugt is a minor celebrity in the Linux training world and he’s been doing it for a long time. His training course covers everything you need to know for Red Hat’s RHCSA exam ($500). This is ideal if you already have a little experience in IT. You can buy the course individually, or you can also access it as part of an O’Reilly subscription. The RHCSA is a well-recognised certification, a great way to learn Linux, and worth adding to your resume.
Top Linux books
If you’re thinking about investing in a book, then check out this selection of books to help you learn Linux. These books have been chosen because of their usefulness to the tasks you’ll do day-to-day, as a systems administrator or DevOps engineer.
The Linux Command Line, 2nd Edition
By William E. Shotts
This book sits perfectly in the middle ground between overly-basic beginner’s book, and deep low-level Linux bible. Reading this book, you’ll get to know the basic Linux commands, and when to use them. It also covers regular expressions which are very useful to know, and there’s a large section on writing shell scripts. Shell scripting is an essential skill if you’re going to be getting into DevOps, where automation is a fundamental part.
Linux Bible, 10th Edition
By Christopher Negus
Coming in at just under 1,000 pages, this is a weighty book and will cover most of the day-to-day things you’ll do with Linux. Why is it a perfect choice for DevOps? Because it also covers Ansible (for automation), Docker and Podman. Perfect! This 10th Edition is updated to cover recent Linux distributions: Red Hat Enterprise Linux (RHEL 8), Fedora 30, and Ubuntu 18.04 LTS.
Hello, Linux expert!
It might take a little while to get comfortable with Linux, especially if you’ve never used a command line before. But with a little perseverance, you’ll be
cding in no time, and Linuxing like the absolute boss you were born to be.
(If you want to find out what
cd do, check
man for the manpages!)