DEV Community

Cover image for Starting My DevOps Learning Journey: Understanding Linux
Samkeliso Dube
Samkeliso Dube

Posted on

Starting My DevOps Learning Journey: Understanding Linux

Introduction

Hello everyone! πŸ‘‹

I'm starting to share my DevOps learning journey here on Dev.to.

I've been learning about cloud engineering and DevOps, and I'm currently revisiting the fundamentals to strengthen my understanding of the technologies behind modern applications and infrastructure.

As I continue learning, I want to document what I discover, share concepts in a beginner-friendly way, and learn from others in the tech community.

For my first article, I'm starting with Linux.

What is Linux? Why do we use it? What are Linux distributions? And why is Linux an important skill for anyone learning DevOps?

1. What Is Linux?

Linux is an open-source operating system kernel.

Let's break that down.

An operating system (OS) is software that manages a computer's resources and allows applications to run. Examples include Windows, macOS, and Linux-based operating systems.

The **kernel **is the core part of an operating system. It helps software communicate with the computer's hardware and manages resources such as the CPU and memory.

For example, when you open an application, it needs memory and processing power to work. The kernel helps manage those resources.

Linus Torvalds began developing Linux in 1991. Linux became open-source software, allowing developers to study its source code, modify it, and share it according to its licence.

Over time, developers combined the Linux kernel with other software and tools to build complete operating systems for different purposes.

These are called Linux distributions, also known as Linux distros.

Let's look at some popular distributions and what they are used for.

2. What Are Linux Distributions?

A Linux distribution combines the Linux kernel with other software and tools to create a usable operating system.

Think of distributions as different versions of Linux, each designed to meet different needs.

Here are some popular examples.

Popular Linux distributions and their uses

1. Ubuntu

  • Ubuntu is a popular Linux distribution that is relatively easy to learn, great for beginners
  • It is used on personal computers, servers, and cloud platforms such as AWS.

2. Debian

  • Debian is a Linux distribution known for its stability.
  • It is commonly used for servers and can also be used on personal computers.

3. Red Hat Enterprise Linux (RHEL)

  • RHEL is designed for businesses that need a professionally supported operating system.
  • It is used to run business applications and servers.

4. Fedora

  • Fedora often introduces newer software and technologies.
  • It is used by developers and people who want to explore modern Linux features.

5. Amazon Linux

  • Amazon Linux is provided by AWS and is designed for use in the AWS cloud.
  • For example, you can use it to run applications on an Amazon EC2 virtual server.

6. Kali Linux

  • Kali Linux includes tools used for security testing and ethical hacking.
  • Security professionals use it to test systems they have permission to assess

Which distribution should a beginner start with?

Ubuntu is a good starting point because it is beginner-friendly and has plenty of learning resources. As you progress in DevOps, you can explore Amazon Linux and other distributions.

3. Why Do We Use Linux?

You might be wondering, why do so many people and companies use Linux?

Linux has several advantages that make it useful for everyday computing, servers, and cloud infrastructure.

Open source

  • Linux is open source, meaning people can study its source code, modify it, and share it according to its licence.
  • This allows developers around the world to contribute to its development.

Stability and reliability

  • Imagine a website that needs to be available day and night. The server running that website needs an operating system that can support it reliably.
  • Linux is widely used on servers because it can run for long periods when properly configured and maintained.

Security and permissions

  • Linux allows administrators to control who can access files and perform certain actions.
  • For example, not every user should be allowed to change important system files. Linux permissions help control that access.

Efficient resource management

  • Linux can run on small devices, personal computers, and powerful servers.
  • It can also run without a graphical desktop, which is useful when managing servers remotely reducing unnecessary overhead.

Automation

  • Imagine having to perform the same task on 20 servers manually. That could take a lot of time.
  • Linux provides tools such as Bash that allow you to write scripts to automate repetitive tasks.

Cloud compatibility

  • Cloud platforms such as AWS and Azure allow you to create virtual machines running Linux.
  • This means you can use Linux to host websites, run applications, and manage cloud infrastructure.


These advantages make Linux useful across many areas of technology. But why is it particularly important for DevOps engineers?

4. Why Do DevOps Engineers Need Linux?

DevOps brings software development and IT operations together to help teams build, test, release, and operate software more reliably.

Linux is important in this work because many applications and infrastructure tools run on Linux-based systems.

Let's look at some practical examples.

1. Managing servers

A DevOps engineer may need to connect to a remote Linux server, check disk space, inspect files, or investigate why an application is not responding.

For example, these Linux commands are useful:

  • ls - lists files and directories.
  • df -h - shows disk space usage.
  • free -h- shows memory usage.

Learning these commands helps you understand what is happening on a server.

2. Troubleshooting applications

Imagine that you deploy an application to a Linux server, but the application is not responding.

You may need to check whether the application is running, inspect its logs, check the port it uses, verify file permissions, or investigate network connectivity.

Linux knowledge helps you investigate these problems instead of guessing.

3. Writing automation scripts

DevOps engineers use tools such as Bash to automate repetitive tasks.

For example, you could write a script to check whether a service is running or automate part of an application deployment.

Instead of repeating the same commands manually, you can create a reusable process.

4. Working with Docker and containers

Docker is used to package applications and their dependencies into containers.

Many containers use Linux-based environments. Understanding Linux processes, filesystems, permissions, and networking helps you troubleshoot container-related problems.

5. Working with Kubernetes

Kubernetes manages containerised applications across a group of machines called a cluster.

Many Kubernetes worker nodes run Linux. Linux knowledge is useful when investigating application failures, resource problems, and networking issues.

6. Managing cloud infrastructure

When you create a Linux virtual machine on AWS or Azure, you may need to connect using SSH, install software, configure services, and secure the machine.

Cloud platforms provide the infrastructure, but Linux knowledge helps you manage the operating system running on it.

7. Using CI/CD pipelines

  • Continuous integration and continuous delivery (CI/CD) pipelines automate activities such as building, testing, and deploying software.
  • Many pipeline jobs execute shell commands in Linux environments. Understanding Linux makes it easier to read pipeline scripts, diagnose failed jobs, and automate deployments.

8. Working with Terraform and Ansible

Terraform and Ansible are tools commonly used in DevOps.

Terraform helps provision infrastructure, such as creating a virtual machine. Ansible can then configure that machine by installing software and setting up services.

Understanding Linux helps you troubleshoot the systems these tools manage.

The key lesson: Linux is not just about learning commands. It helps you understand the systems on which applications run and gives you practical skills for troubleshooting and automation.

Conclusion

Linux is more than a collection of commands. It is a foundation for understanding how computers run applications, manage resources, and support modern infrastructure.

As I continue my DevOps learning journey, I'm starting with the fundamentals because understanding the foundation makes it easier to understand the tools built on top of it.

My goal is not simply to memorise commands. I want to understand what they do, when to use them, and how they help solve real-world problems.

This is just the beginning, and I look forward to sharing more as I continue learning.

One step at a time, one concept at a time. 🌱

What Linux distribution did you start with, and which one do you use today? I'd love to learn from your experience.

Linux #DevOps #CloudComputing #LinuxForBeginners

Top comments (0)