DEV Community

Arpit Mungone
Arpit Mungone

Posted on

Learning Linux from Scratch: My First Week in DevOps

🚀 Week 1 of My DevOps Journey: Learning Linux Fundamentals and Essential Commands

Hello everyone! 👋

Welcome to Week 1 of my DevOps learning journey.

As a final-year BCA student specializing in Cloud Computing, I have decided to document my journey toward becoming a DevOps Engineer. This blog series will cover everything I learn, from Linux fundamentals to cloud computing, containers, CI/CD, Kubernetes, and monitoring tools.

Since Linux is the backbone of most DevOps environments, I decided to start my journey by learning Linux fundamentals and essential commands.

Why Linux Matters in DevOps

Most servers in cloud environments run Linux. Whether you're working with AWS EC2 instances, Docker containers, Kubernetes clusters, or CI/CD pipelines, Linux knowledge is essential.

As a DevOps Engineer, you'll frequently:

  • Manage Linux servers
  • Deploy applications
  • Troubleshoot issues
  • Monitor system performance
  • Automate tasks using shell scripts

That's why Linux is often considered the first skill every DevOps engineer should master.

What I Learned This Week

Understanding the Linux File System

One of the first things I learned was how Linux organizes files and directories.

Some important directories include:

  • / – Root directory
  • /home – User home directories
  • /etc – Configuration files
  • /var – Logs and variable data
  • /tmp – Temporary files
  • /usr – User programs and utilities

Understanding the file system structure helps navigate servers more effectively.

Basic Navigation Commands

I practiced several commands used daily by Linux administrators.

Check Current Directory

pwd
Enter fullscreen mode Exit fullscreen mode

List Files and Directories

ls
ls -l
ls -la
Enter fullscreen mode Exit fullscreen mode

Change Directory

cd /home
Enter fullscreen mode Exit fullscreen mode

Create Directory

mkdir project
Enter fullscreen mode Exit fullscreen mode

Remove Directory

rmdir project
Enter fullscreen mode Exit fullscreen mode

File Management Commands

Working with files is a common task in Linux.

Create a File

touch file.txt
Enter fullscreen mode Exit fullscreen mode

Copy Files

cp file.txt backup.txt
Enter fullscreen mode Exit fullscreen mode

Move Files

mv file.txt documents/
Enter fullscreen mode Exit fullscreen mode

Delete Files

rm file.txt
Enter fullscreen mode Exit fullscreen mode

View File Content

cat file.txt
Enter fullscreen mode Exit fullscreen mode

Viewing System Information

I also learned how to check system details.

Check CPU Information

lscpu
Enter fullscreen mode Exit fullscreen mode

Check Memory Usage

free -h
Enter fullscreen mode Exit fullscreen mode

Check Disk Usage

df -h
Enter fullscreen mode Exit fullscreen mode

Check Running Processes

ps -ef
Enter fullscreen mode Exit fullscreen mode

Monitor Processes in Real Time

top
Enter fullscreen mode Exit fullscreen mode

Understanding Permissions

Linux uses permissions to control access to files and directories.

I learned about:

  • Read (r)
  • Write (w)
  • Execute (x)

Viewing permissions:

ls -l
Enter fullscreen mode Exit fullscreen mode

Changing permissions:

chmod 755 script.sh
Enter fullscreen mode Exit fullscreen mode

Changing ownership:

chown user:user file.txt
Enter fullscreen mode Exit fullscreen mode

Permissions are critical for maintaining system security.

Service Management

One interesting topic was managing services using systemctl.

Check Service Status

systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

Start a Service

systemctl start nginx
Enter fullscreen mode Exit fullscreen mode

Stop a Service

systemctl stop nginx
Enter fullscreen mode Exit fullscreen mode

Restart a Service

systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

This is especially useful when managing web servers and applications.

Viewing Logs

Logs help identify issues and troubleshoot systems.

tail -f /var/log/messages
Enter fullscreen mode Exit fullscreen mode
journalctl -xe
Enter fullscreen mode Exit fullscreen mode

Understanding logs is one of the most important skills for troubleshooting production systems.

My First Bash Script

I wrote a simple script to check whether Nginx is running.

#!/bin/bash

if systemctl is-active --quiet nginx
then
    echo "Nginx is running"
else
    echo "Nginx is not running"
fi
Enter fullscreen mode Exit fullscreen mode

This helped me understand:

  • if-else conditions
  • shell scripting basics
  • automation concepts

It was my first step toward infrastructure automation.

Challenges I Faced

During my learning, I encountered a few challenges:

  • Understanding Linux permissions
  • Navigating directories quickly
  • Reading system logs
  • Writing Bash scripts correctly

After practicing commands repeatedly and experimenting on AWS EC2 instances, these concepts became much clearer.

Key Takeaways

This week taught me that Linux is much more than just a command-line operating system.

I learned:

✅ Linux file system structure

✅ Essential Linux commands

✅ File and directory management

✅ System monitoring basics

✅ Service management

✅ Log analysis

✅ Bash scripting fundamentals

Most importantly, I realized that strong Linux fundamentals make learning DevOps tools much easier.

What's Next?

In Week 2, I plan to learn:

  • Advanced Linux Commands
  • User and Group Management
  • Networking Basics
  • SSH and Remote Access
  • Package Management
  • More Bash Scripting

Final Thoughts

Every DevOps Engineer starts somewhere, and Linux is the perfect place to begin.

This week gave me a solid foundation and increased my confidence in working with servers and cloud environments. I'm excited to continue learning and sharing my progress through this blog series.

If you're also starting your DevOps journey, feel free to connect and share your experiences.

See you in Week 2! 🚀

linux #devops #aws #cloudcomputing #bash #opensource #learninginpublic #career

Top comments (0)