<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arpit Mungone </title>
    <description>The latest articles on DEV Community by Arpit Mungone  (@arpit_mungone_0107).</description>
    <link>https://dev.to/arpit_mungone_0107</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3995276%2Ff00ee49b-11d3-461e-bf36-c357a43a00fd.jpg</url>
      <title>DEV Community: Arpit Mungone </title>
      <link>https://dev.to/arpit_mungone_0107</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arpit_mungone_0107"/>
    <language>en</language>
    <item>
      <title>🌐 Linux for DevOps #3: Understanding Linux Networking Through Hands-On Practice</title>
      <dc:creator>Arpit Mungone </dc:creator>
      <pubDate>Sat, 08 Aug 2026 11:32:26 +0000</pubDate>
      <link>https://dev.to/arpit_mungone_0107/linux-for-devops-3-understanding-linux-networking-through-hands-on-practice-3hof</link>
      <guid>https://dev.to/arpit_mungone_0107/linux-for-devops-3-understanding-linux-networking-through-hands-on-practice-3hof</guid>
      <description>&lt;p&gt;Welcome back to my &lt;strong&gt;DevOps learning journey!&lt;/strong&gt; 👋&lt;/p&gt;

&lt;p&gt;For the past two weeks, I've been building my Linux foundation.&lt;/p&gt;

&lt;p&gt;In Week 1, I learned how to navigate Linux and work with essential commands.&lt;/p&gt;

&lt;p&gt;In Week 2, I explored &lt;strong&gt;users, groups, file permissions, and process management&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This week, I decided to move one step further and understand something that I kept encountering everywhere in DevOps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Networking.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, networking felt like a completely different world.&lt;/p&gt;

&lt;p&gt;IP addresses, ports, DNS, TCP, UDP, routing, connectivity...&lt;/p&gt;

&lt;p&gt;There were a lot of terms to remember.&lt;/p&gt;

&lt;p&gt;But once I started practicing networking commands directly on Linux and connecting them with things I had already worked with in AWS, the picture started becoming much clearer.&lt;/p&gt;

&lt;p&gt;I realized something important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;As a DevOps engineer, you don't need to become a network engineer, but you absolutely need to understand how systems communicate.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, this week, I focused on the Linux networking commands that I believe every aspiring DevOps engineer should know.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 What Exactly Is Linux Networking?
&lt;/h2&gt;

&lt;p&gt;Before jumping into commands, I wanted to understand the basics.&lt;/p&gt;

&lt;p&gt;Networking is essentially about &lt;strong&gt;communication between systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When I open a website, connect to an AWS EC2 instance through SSH, pull a Docker image, or make an API request, different systems are communicating with each other.&lt;/p&gt;

&lt;p&gt;Linux provides several tools that allow us to inspect and troubleshoot this communication.&lt;/p&gt;

&lt;p&gt;And that's where the command line becomes extremely useful.&lt;/p&gt;




&lt;h1&gt;
  
  
  🖥️ 1. Finding My IP Address
&lt;/h1&gt;

&lt;p&gt;One of the first things I wanted to understand was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What is my machine's IP address?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The command I used was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip addr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It displays information about the network interfaces available on the machine.&lt;/p&gt;

&lt;p&gt;For example, you might see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inet 192.168.1.10/24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, &lt;code&gt;192.168.1.10&lt;/code&gt; is the IP address assigned to the interface.&lt;/p&gt;

&lt;p&gt;Another simple command I found useful was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;hostname&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It gives the IP addresses assigned to the system in a much simpler format.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is this useful in DevOps?
&lt;/h3&gt;

&lt;p&gt;When working with servers, especially AWS EC2 instances, knowing the server's IP address is fundamental.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-i&lt;/span&gt; my-key.pem ec2-user@&amp;lt;IP_ADDRESS&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without understanding the IP address, it's difficult to understand how we're actually reaching the server.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔁 2. Understanding Localhost
&lt;/h1&gt;

&lt;p&gt;One concept I wanted to understand better was &lt;strong&gt;localhost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You will often see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;127.0.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the IPv4 loopback address.&lt;/p&gt;

&lt;p&gt;It refers to the machine itself.&lt;/p&gt;

&lt;p&gt;For example, if I run a web application on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;127.0.0.1:5000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the application is accessible from the same machine through port &lt;code&gt;5000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I can test it using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://127.0.0.1:5000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This became particularly interesting when I started working with applications, Docker, and web servers.&lt;/p&gt;

&lt;p&gt;It helped me understand the difference between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Is my application running?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can other machines reach my application?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those are two completely different questions.&lt;/p&gt;




&lt;h1&gt;
  
  
  📡 3. Testing Connectivity with &lt;code&gt;ping&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;One of the first networking commands almost everyone learns is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command sends ICMP echo requests to check whether the destination is reachable.&lt;/p&gt;

&lt;p&gt;A typical response might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;64 bytes from ...
time=20 ms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;time&lt;/code&gt; value gives an indication of the round-trip latency.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can &lt;code&gt;ping&lt;/code&gt; tell me?
&lt;/h3&gt;

&lt;p&gt;It can help answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can I reach the destination?&lt;/li&gt;
&lt;li&gt;Is there packet loss?&lt;/li&gt;
&lt;li&gt;Is the network responding?&lt;/li&gt;
&lt;li&gt;How much latency is there?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, one important lesson I learned is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A failed ping doesn't always mean the server is down.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some servers and firewalls simply block ICMP traffic.&lt;/p&gt;

&lt;p&gt;This is important when troubleshooting cloud environments.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌍 4. Understanding DNS with &lt;code&gt;nslookup&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;I used to think DNS was simply "the thing that converts domain names into IP addresses."&lt;/p&gt;

&lt;p&gt;But while practicing, I started understanding how important it is.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows us to query DNS and find the IP address associated with a domain.&lt;/p&gt;

&lt;p&gt;Another useful command is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;dig&lt;/code&gt; provides more detailed DNS information and is especially useful for troubleshooting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does DNS matter in DevOps?
&lt;/h3&gt;

&lt;p&gt;Imagine your application works when you access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://192.168.1.20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;but doesn't work when you access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://myapp.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application might be completely fine.&lt;/p&gt;

&lt;p&gt;The problem could simply be DNS.&lt;/p&gt;

&lt;p&gt;This is why understanding DNS is important when deploying applications and services.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌐 5. Using &lt;code&gt;curl&lt;/code&gt; to Test Applications
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; quickly became one of my favorite networking commands.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This sends an HTTP request and displays the response.&lt;/p&gt;

&lt;p&gt;But &lt;code&gt;curl&lt;/code&gt; is much more useful than simply opening websites.&lt;/p&gt;

&lt;p&gt;I can use it to test APIs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:5000/api/users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I can also inspect HTTP headers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can help me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP status codes&lt;/li&gt;
&lt;li&gt;Server responses&lt;/li&gt;
&lt;li&gt;Redirects&lt;/li&gt;
&lt;li&gt;Headers&lt;/li&gt;
&lt;li&gt;Application availability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A practical DevOps scenario
&lt;/h3&gt;

&lt;p&gt;Suppose I deployed an application behind Nginx.&lt;/p&gt;

&lt;p&gt;Instead of immediately assuming the application is broken, I can test it step by step:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If that works, I know the web server is responding.&lt;/p&gt;

&lt;p&gt;Then I can investigate whether the issue is related to DNS, security groups, load balancers, or something else.&lt;/p&gt;




&lt;h1&gt;
  
  
  📥 6. &lt;code&gt;wget&lt;/code&gt; – Downloading Files
&lt;/h1&gt;

&lt;p&gt;Another command I practiced was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://example.com/file.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;wget&lt;/code&gt; is commonly used to download files directly from the command line.&lt;/p&gt;

&lt;p&gt;This can be useful when working with Linux servers where there is no graphical browser.&lt;/p&gt;

&lt;p&gt;For example, I might need to download:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuration files&lt;/li&gt;
&lt;li&gt;Application packages&lt;/li&gt;
&lt;li&gt;Scripts&lt;/li&gt;
&lt;li&gt;Software archives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a simple command, but very useful when working on remote servers.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔌 7. Understanding Ports
&lt;/h1&gt;

&lt;p&gt;This was one of the concepts I found particularly important.&lt;/p&gt;

&lt;p&gt;An IP address tells us &lt;strong&gt;which machine&lt;/strong&gt; we're communicating with.&lt;/p&gt;

&lt;p&gt;A port helps identify &lt;strong&gt;which service&lt;/strong&gt; we're trying to communicate with on that machine.&lt;/p&gt;

&lt;p&gt;Some common ports are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Common Usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;td&gt;HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3306&lt;/td&gt;
&lt;td&gt;MySQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5432&lt;/td&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8080&lt;/td&gt;
&lt;td&gt;Common application/web port&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;means we're trying to reach port &lt;code&gt;80&lt;/code&gt; on that machine.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔎 8. Checking Listening Ports with &lt;code&gt;ss&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;One of the most useful commands I learned was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tuln&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps display listening network sockets.&lt;/p&gt;

&lt;p&gt;The options mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;t&lt;/code&gt; → TCP&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;u&lt;/code&gt; → UDP&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;l&lt;/code&gt; → Listening&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;n&lt;/code&gt; → Don't resolve service names&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If Nginx is running, I might see port &lt;code&gt;80&lt;/code&gt; listening.&lt;/p&gt;

&lt;p&gt;This gives me a very useful troubleshooting question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Is the application actually listening on the port I'm trying to access?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's much better than randomly restarting services and hoping they work.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧭 9. Understanding Network Routes
&lt;/h1&gt;

&lt;p&gt;Another command I explored was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This shows the routing table used by Linux.&lt;/p&gt;

&lt;p&gt;It helped me understand that packets don't simply "go to the internet."&lt;/p&gt;

&lt;p&gt;Linux needs to know where traffic should be sent and which interface or gateway should be used.&lt;/p&gt;

&lt;p&gt;For example, you might see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;default via 192.168.1.1 dev eth0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default route tells Linux where to send traffic when there isn't a more specific route available.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛣️ 10. Tracing Network Paths
&lt;/h1&gt;

&lt;p&gt;I also explored:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;traceroute google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This attempts to show the path packets take through the network to reach the destination.&lt;/p&gt;

&lt;p&gt;This can be useful when troubleshooting where connectivity problems might be occurring.&lt;/p&gt;

&lt;p&gt;Depending on the environment, &lt;code&gt;traceroute&lt;/code&gt; may need to be installed first.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧪 Putting Everything Together
&lt;/h1&gt;

&lt;p&gt;This is where networking became much more interesting for me.&lt;/p&gt;

&lt;p&gt;Instead of memorizing commands individually, I started thinking about them as a &lt;strong&gt;troubleshooting workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Imagine I deploy a web application, but I can't access it.&lt;/p&gt;

&lt;p&gt;Instead of immediately restarting everything, I can ask a series of questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Is the server reachable?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping &amp;lt;server-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2 — Is the application listening?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tuln&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3 — Can I reach the application locally?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4 — Is DNS resolving?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup myapp.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig myapp.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5 — What routes are being used?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This way, troubleshooting becomes a process instead of guesswork.&lt;/p&gt;

&lt;p&gt;And I think that's one of the biggest things I'm learning from DevOps:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Good troubleshooting starts with asking the right questions.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  ☁️ Connecting This to AWS
&lt;/h1&gt;

&lt;p&gt;Learning Linux networking also made some AWS concepts easier to understand.&lt;/p&gt;

&lt;p&gt;For example, when I work with an EC2 instance, several networking components come into play:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Private IP&lt;/li&gt;
&lt;li&gt;Public IP&lt;/li&gt;
&lt;li&gt;Security Groups&lt;/li&gt;
&lt;li&gt;Ports&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;li&gt;Internet Gateway&lt;/li&gt;
&lt;li&gt;Subnets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I can't connect to an EC2 instance through SSH, the problem might not be Linux itself.&lt;/p&gt;

&lt;p&gt;It could be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;My Computer
     ↓
Internet
     ↓
AWS Security Group
     ↓
EC2 Network Interface
     ↓
Port 22
     ↓
SSH Service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Understanding Linux networking gives me a much better foundation for understanding what happens inside the server.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤔 What I Learned This Week
&lt;/h1&gt;

&lt;p&gt;The biggest lesson for me wasn't actually learning &lt;code&gt;ping&lt;/code&gt;, &lt;code&gt;curl&lt;/code&gt;, or &lt;code&gt;ss&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It was learning how to &lt;strong&gt;think about connectivity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Before this week, if an application wasn't opening, I might have immediately assumed:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The application is broken."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now I try to break the problem down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I reach the server?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is DNS working?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the required port open?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is something listening on that port?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the application responding locally?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there a firewall, security group, or routing issue?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This way of thinking is something I want to carry forward into my DevOps career.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ Commands I Practiced This Week
&lt;/h1&gt;

&lt;p&gt;Here's my Linux networking cheat sheet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Network interfaces&lt;/span&gt;
ip addr
&lt;span class="nb"&gt;hostname&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;

&lt;span class="c"&gt;# Connectivity&lt;/span&gt;
ping google.com

&lt;span class="c"&gt;# DNS&lt;/span&gt;
nslookup google.com
dig google.com

&lt;span class="c"&gt;# HTTP requests&lt;/span&gt;
curl https://example.com
curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://example.com

&lt;span class="c"&gt;# Download files&lt;/span&gt;
wget https://example.com/file.zip

&lt;span class="c"&gt;# Listening ports&lt;/span&gt;
ss &lt;span class="nt"&gt;-tuln&lt;/span&gt;

&lt;span class="c"&gt;# Routing&lt;/span&gt;
ip route

&lt;span class="c"&gt;# Trace network path&lt;/span&gt;
traceroute google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🚀 Key Takeaways
&lt;/h1&gt;

&lt;p&gt;This week helped me understand that networking isn't just about memorizing protocols and port numbers.&lt;/p&gt;

&lt;p&gt;It's about understanding &lt;strong&gt;how systems communicate&lt;/strong&gt; and, more importantly, how to troubleshoot when they don't.&lt;/p&gt;

&lt;p&gt;My main takeaways:&lt;/p&gt;

&lt;p&gt;✅ IP addresses identify systems.&lt;/p&gt;

&lt;p&gt;✅ Ports help identify services.&lt;/p&gt;

&lt;p&gt;✅ DNS translates human-readable names into IP addresses.&lt;/p&gt;

&lt;p&gt;✅ &lt;code&gt;curl&lt;/code&gt; is extremely useful for testing applications and APIs.&lt;/p&gt;

&lt;p&gt;✅ &lt;code&gt;ss&lt;/code&gt; helps identify listening network services.&lt;/p&gt;

&lt;p&gt;✅ &lt;code&gt;ip route&lt;/code&gt; helps understand how Linux routes traffic.&lt;/p&gt;

&lt;p&gt;✅ Troubleshooting should be systematic rather than based on guesses.&lt;/p&gt;




&lt;h1&gt;
  
  
  📚 Linux for DevOps Series
&lt;/h1&gt;

&lt;p&gt;🐧 &lt;strong&gt;Part 1:&lt;/strong&gt; Learning Linux from Scratch: My First Week in DevOps&lt;/p&gt;

&lt;p&gt;🐧 &lt;strong&gt;Part 2:&lt;/strong&gt; Users, File Permissions &amp;amp; Process Management&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Part 3:&lt;/strong&gt; Understanding Linux Networking &lt;em&gt;(You are here)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔜 &lt;strong&gt;Part 4:&lt;/strong&gt; Bash Scripting — From Commands to Automation&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

&lt;p&gt;Now that I have a better understanding of how Linux systems communicate, I want to take the next step:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the next part of this series, I'll start exploring &lt;strong&gt;Bash Scripting&lt;/strong&gt; and see how I can turn repetitive Linux tasks into simple automated workflows.&lt;/p&gt;

&lt;p&gt;I'm still learning, still making mistakes, and still figuring things out—but that's exactly what makes this journey interesting.&lt;/p&gt;

&lt;p&gt;If you're also learning Linux, DevOps, or Cloud, I'd love to hear what you're currently working on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's learn and build together. 🚀&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  linux #devops #networking #aws #cloudcomputing #bash #learninginpublic
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>linux</category>
      <category>networking</category>
    </item>
    <item>
      <title>🐧 Linux for DevOps #2: Mastering Users, File Permissions &amp; Process Management</title>
      <dc:creator>Arpit Mungone </dc:creator>
      <pubDate>Mon, 06 Jul 2026 17:02:31 +0000</pubDate>
      <link>https://dev.to/arpit_mungone_0107/linux-for-devops-2-mastering-users-file-permissions-process-management-1e53</link>
      <guid>https://dev.to/arpit_mungone_0107/linux-for-devops-2-mastering-users-file-permissions-process-management-1e53</guid>
      <description>&lt;p&gt;Welcome back to Part 2 of my Linux for DevOps series.&lt;/p&gt;

&lt;p&gt;In my previous blog, I covered Linux fundamentals, the file system, and essential commands that every beginner should know. If there's one thing I've learned so far, it's that Linux isn't just about memorizing commands—it's about understanding how the operating system works.&lt;/p&gt;

&lt;p&gt;This week, I explored three of the most important Linux administration concepts that every DevOps Engineer should master:&lt;/p&gt;

&lt;p&gt;👤 User &amp;amp; Group Management&lt;br&gt;
🔐 File Permissions&lt;br&gt;
⚙️ Process Management&lt;/p&gt;

&lt;p&gt;These concepts are used every day by system administrators and DevOps engineers to manage servers securely and efficiently.&lt;/p&gt;

&lt;p&gt;Let's dive in!&lt;/p&gt;

&lt;p&gt;👤 User &amp;amp; Group Management&lt;/p&gt;

&lt;p&gt;Linux is a multi-user operating system, meaning multiple users can access the same system while maintaining their own files, permissions, and settings.&lt;/p&gt;

&lt;p&gt;Managing users correctly is essential for maintaining both security and organization.&lt;/p&gt;

&lt;p&gt;Types of Users&lt;br&gt;
Root User&lt;/p&gt;

&lt;p&gt;The root user has unrestricted access to the entire system. It can install software, modify system files, create users, and perform administrative tasks.&lt;/p&gt;

&lt;p&gt;Because it has complete control over the system, it's recommended to avoid logging in as root for everyday work.&lt;/p&gt;

&lt;p&gt;Regular User&lt;/p&gt;

&lt;p&gt;A regular user has limited permissions and cannot make system-wide changes unless granted administrative privileges using sudo.&lt;/p&gt;

&lt;p&gt;This follows the Principle of Least Privilege, which is a security best practice.&lt;/p&gt;

&lt;p&gt;System Users&lt;/p&gt;

&lt;p&gt;System users are created automatically by Linux for running services like Nginx, MySQL, Docker, and other background processes.&lt;/p&gt;

&lt;p&gt;Important Files&lt;/p&gt;

&lt;p&gt;Linux stores user and group information in a few important files.&lt;/p&gt;

&lt;p&gt;/etc/passwd&lt;/p&gt;

&lt;p&gt;Stores basic information about every user.&lt;/p&gt;

&lt;p&gt;/etc/shadow&lt;/p&gt;

&lt;p&gt;Stores encrypted passwords and password-related information.&lt;/p&gt;

&lt;p&gt;/etc/group&lt;/p&gt;

&lt;p&gt;Stores information about all user groups.&lt;/p&gt;

&lt;p&gt;Understanding these files helps you troubleshoot authentication and permission issues more effectively.&lt;/p&gt;

&lt;p&gt;Common User Management Commands&lt;/p&gt;

&lt;p&gt;Create a new user:&lt;/p&gt;

&lt;p&gt;sudo useradd arpit&lt;/p&gt;

&lt;p&gt;Set a password:&lt;/p&gt;

&lt;p&gt;sudo passwd arpit&lt;/p&gt;

&lt;p&gt;Switch to another user:&lt;/p&gt;

&lt;p&gt;su arpit&lt;/p&gt;

&lt;p&gt;Check the current user:&lt;/p&gt;

&lt;p&gt;whoami&lt;/p&gt;

&lt;p&gt;Display user information:&lt;/p&gt;

&lt;p&gt;id arpit&lt;/p&gt;

&lt;p&gt;Create a group:&lt;/p&gt;

&lt;p&gt;sudo groupadd developers&lt;/p&gt;

&lt;p&gt;Add a user to a group:&lt;/p&gt;

&lt;p&gt;sudo usermod -aG developers arpit&lt;/p&gt;

&lt;p&gt;Delete a user:&lt;/p&gt;

&lt;p&gt;sudo userdel arpit&lt;br&gt;
DevOps Use Case&lt;/p&gt;

&lt;p&gt;Imagine a development team deploying applications to a production server.&lt;/p&gt;

&lt;p&gt;Instead of giving everyone root access, each developer gets their own account and is added to a deployment group with only the permissions they need.&lt;/p&gt;

&lt;p&gt;This improves security, accountability, and makes auditing much easier.&lt;/p&gt;

&lt;p&gt;🔐 Linux File Permissions&lt;/p&gt;

&lt;p&gt;Permissions are one of Linux's strongest security features.&lt;/p&gt;

&lt;p&gt;Every file and directory has permissions that determine who can read, write, or execute it.&lt;/p&gt;

&lt;p&gt;You can view permissions using:&lt;/p&gt;

&lt;p&gt;ls -l&lt;/p&gt;

&lt;p&gt;Example output:&lt;/p&gt;

&lt;p&gt;-rwxr-xr--&lt;/p&gt;

&lt;p&gt;Let's break it down.&lt;/p&gt;

&lt;p&gt;Owner → rwx&lt;br&gt;
Group → r-x&lt;br&gt;
Others → r--&lt;br&gt;
Understanding Permissions&lt;br&gt;
Read (r)&lt;/p&gt;

&lt;p&gt;Allows viewing the contents of a file.&lt;/p&gt;

&lt;p&gt;Write (w)&lt;/p&gt;

&lt;p&gt;Allows modifying or deleting a file.&lt;/p&gt;

&lt;p&gt;Execute (x)&lt;/p&gt;

&lt;p&gt;Allows executing a file or entering a directory.&lt;/p&gt;

&lt;p&gt;Numeric Permissions&lt;/p&gt;

&lt;p&gt;Linux also represents permissions using numbers.&lt;/p&gt;

&lt;p&gt;Number  Permission&lt;br&gt;
7   Read + Write + Execute&lt;br&gt;
6   Read + Write&lt;br&gt;
5   Read + Execute&lt;br&gt;
4   Read Only&lt;br&gt;
0   No Permission&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;chmod 755 script.sh&lt;br&gt;
chmod 644 file.txt&lt;br&gt;
chmod 600 private_key.pem&lt;br&gt;
Changing Ownership&lt;/p&gt;

&lt;p&gt;Change the owner of a file:&lt;/p&gt;

&lt;p&gt;sudo chown arpit file.txt&lt;/p&gt;

&lt;p&gt;Change the group:&lt;/p&gt;

&lt;p&gt;sudo chgrp developers file.txt&lt;br&gt;
Why You Should Avoid chmod 777&lt;/p&gt;

&lt;p&gt;One of the biggest mistakes beginners make is giving every user full permissions.&lt;/p&gt;

&lt;p&gt;chmod 777 file.txt&lt;/p&gt;

&lt;p&gt;Although it solves permission issues quickly, it creates serious security risks because anyone can modify or delete the file.&lt;/p&gt;

&lt;p&gt;A better approach is to assign only the permissions that are actually required.&lt;/p&gt;

&lt;p&gt;DevOps Use Case&lt;/p&gt;

&lt;p&gt;When connecting to an AWS EC2 instance using SSH, the private key must have secure permissions.&lt;/p&gt;

&lt;p&gt;chmod 400 my-key.pem&lt;/p&gt;

&lt;p&gt;If the permissions are too open, SSH will refuse the connection to protect your credentials.&lt;/p&gt;

&lt;p&gt;⚙️ Linux Process Management&lt;/p&gt;

&lt;p&gt;Whenever you run an application, Linux creates a process.&lt;/p&gt;

&lt;p&gt;Every running process has a unique Process ID (PID).&lt;/p&gt;

&lt;p&gt;Understanding processes is essential because applications, web servers, databases, and containers all run as processes.&lt;/p&gt;

&lt;p&gt;View Running Processes&lt;br&gt;
ps -ef&lt;/p&gt;

&lt;p&gt;This command displays all running processes.&lt;/p&gt;

&lt;p&gt;Monitor Processes&lt;br&gt;
top&lt;/p&gt;

&lt;p&gt;This provides a real-time view of CPU usage, memory usage, and running processes.&lt;/p&gt;

&lt;p&gt;For a more user-friendly interface, you can use:&lt;/p&gt;

&lt;p&gt;htop&lt;br&gt;
Stop a Process&lt;/p&gt;

&lt;p&gt;Kill a process using its PID:&lt;/p&gt;

&lt;p&gt;kill 1234&lt;/p&gt;

&lt;p&gt;Forcefully terminate it:&lt;/p&gt;

&lt;p&gt;kill -9 1234&lt;br&gt;
Run a Process in the Background&lt;br&gt;
command &amp;amp;&lt;/p&gt;

&lt;p&gt;View background jobs:&lt;/p&gt;

&lt;p&gt;jobs&lt;/p&gt;

&lt;p&gt;Bring a process back to the foreground:&lt;/p&gt;

&lt;p&gt;fg&lt;br&gt;
Keep a Process Running After Logout&lt;br&gt;
nohup python app.py &amp;amp;&lt;/p&gt;

&lt;p&gt;This is especially useful when running applications on remote Linux servers.&lt;/p&gt;

&lt;p&gt;DevOps Use Case&lt;/p&gt;

&lt;p&gt;Suppose your Nginx server becomes unresponsive.&lt;/p&gt;

&lt;p&gt;The first step is to identify the running process.&lt;/p&gt;

&lt;p&gt;ps -ef | grep nginx&lt;/p&gt;

&lt;p&gt;If necessary, restart the service.&lt;/p&gt;

&lt;p&gt;sudo systemctl restart nginx&lt;/p&gt;

&lt;p&gt;Being able to inspect and manage processes quickly is an essential troubleshooting skill for DevOps engineers.&lt;/p&gt;

&lt;p&gt;Common Mistakes Beginners Make&lt;/p&gt;

&lt;p&gt;Here are a few mistakes I encountered while learning:&lt;/p&gt;

&lt;p&gt;Logging in as the root user for everything.&lt;br&gt;
Using chmod 777 without understanding the security risks.&lt;br&gt;
Forgetting to use sudo when administrative privileges are required.&lt;br&gt;
Killing the wrong process by mistake.&lt;br&gt;
Not checking file ownership before changing permissions.&lt;/p&gt;

&lt;p&gt;Learning from these mistakes helped me better understand how Linux manages security and system resources.&lt;/p&gt;

&lt;p&gt;Quick Command Cheat Sheet&lt;br&gt;
User Management&lt;br&gt;
whoami&lt;br&gt;
id&lt;br&gt;
useradd&lt;br&gt;
passwd&lt;br&gt;
usermod&lt;br&gt;
userdel&lt;br&gt;
groupadd&lt;br&gt;
groups&lt;br&gt;
File Permissions&lt;br&gt;
ls -l&lt;br&gt;
chmod&lt;br&gt;
chown&lt;br&gt;
chgrp&lt;br&gt;
Process Management&lt;br&gt;
ps -ef&lt;br&gt;
top&lt;br&gt;
htop&lt;br&gt;
kill&lt;br&gt;
kill -9&lt;br&gt;
jobs&lt;br&gt;
bg&lt;br&gt;
fg&lt;br&gt;
nohup&lt;br&gt;
Key Takeaways&lt;/p&gt;

&lt;p&gt;This week helped me understand that Linux administration isn't just about knowing commands—it's about managing systems securely and efficiently.&lt;/p&gt;

&lt;p&gt;Here's what I learned:&lt;/p&gt;

&lt;p&gt;How Linux manages users and groups.&lt;br&gt;
Why file permissions are critical for security.&lt;br&gt;
How ownership affects file access.&lt;br&gt;
How to monitor and manage running processes.&lt;br&gt;
Why following security best practices is essential in DevOps.&lt;/p&gt;

&lt;p&gt;Every concept I learned this week is directly applicable to real-world cloud environments and production servers.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;If you're also learning Linux or DevOps, I'd love to hear about your journey. Feel free to share your thoughts, suggestions, or favorite Linux commands in the comments.&lt;/p&gt;

&lt;p&gt;Happy Learning! 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  linux #devops #aws #beginners #cloud
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Learning Linux from Scratch: My First Week in DevOps</title>
      <dc:creator>Arpit Mungone </dc:creator>
      <pubDate>Mon, 22 Jun 2026 11:17:20 +0000</pubDate>
      <link>https://dev.to/arpit_mungone_0107/learning-linux-from-scratch-my-first-week-in-devops-2of2</link>
      <guid>https://dev.to/arpit_mungone_0107/learning-linux-from-scratch-my-first-week-in-devops-2of2</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Week 1 of My DevOps Journey: Learning Linux Fundamentals and Essential Commands
&lt;/h1&gt;

&lt;p&gt;Hello everyone! 👋&lt;/p&gt;

&lt;p&gt;Welcome to Week 1 of my DevOps learning journey.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Since Linux is the backbone of most DevOps environments, I decided to start my journey by learning Linux fundamentals and essential commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Linux Matters in DevOps
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;As a DevOps Engineer, you'll frequently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manage Linux servers&lt;/li&gt;
&lt;li&gt;Deploy applications&lt;/li&gt;
&lt;li&gt;Troubleshoot issues&lt;/li&gt;
&lt;li&gt;Monitor system performance&lt;/li&gt;
&lt;li&gt;Automate tasks using shell scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's why Linux is often considered the first skill every DevOps engineer should master.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned This Week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Understanding the Linux File System
&lt;/h3&gt;

&lt;p&gt;One of the first things I learned was how Linux organizes files and directories.&lt;/p&gt;

&lt;p&gt;Some important directories include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/&lt;/code&gt; – Root directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/home&lt;/code&gt; – User home directories&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/etc&lt;/code&gt; – Configuration files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/var&lt;/code&gt; – Logs and variable data&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/tmp&lt;/code&gt; – Temporary files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/usr&lt;/code&gt; – User programs and utilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding the file system structure helps navigate servers more effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Navigation Commands
&lt;/h3&gt;

&lt;p&gt;I practiced several commands used daily by Linux administrators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check Current Directory&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;List Files and Directories&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls
ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Change Directory&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create Directory&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Remove Directory&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rmdir &lt;/span&gt;project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  File Management Commands
&lt;/h3&gt;

&lt;p&gt;Working with files is a common task in Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a File&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Copy Files&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;file.txt backup.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Move Files&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv &lt;/span&gt;file.txt documents/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Delete Files&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm &lt;/span&gt;file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;View File Content&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Viewing System Information
&lt;/h3&gt;

&lt;p&gt;I also learned how to check system details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check CPU Information&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lscpu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check Memory Usage&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check Disk Usage&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check Running Processes&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Monitor Processes in Real Time&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Understanding Permissions
&lt;/h3&gt;

&lt;p&gt;Linux uses permissions to control access to files and directories.&lt;/p&gt;

&lt;p&gt;I learned about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read (r)&lt;/li&gt;
&lt;li&gt;Write (w)&lt;/li&gt;
&lt;li&gt;Execute (x)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Viewing permissions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Changing permissions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Changing ownership:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chown &lt;/span&gt;user:user file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permissions are critical for maintaining system security.&lt;/p&gt;

&lt;h3&gt;
  
  
  Service Management
&lt;/h3&gt;

&lt;p&gt;One interesting topic was managing services using systemctl.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check Service Status&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Start a Service&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl start nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Stop a Service&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl stop nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Restart a Service&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is especially useful when managing web servers and applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Viewing Logs
&lt;/h3&gt;

&lt;p&gt;Logs help identify issues and troubleshoot systems.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; /var/log/messages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-xe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Understanding logs is one of the most important skills for troubleshooting production systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  My First Bash Script
&lt;/h3&gt;

&lt;p&gt;I wrote a simple script to check whether Nginx is running.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;systemctl is-active &lt;span class="nt"&gt;--quiet&lt;/span&gt; nginx
&lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Nginx is running"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Nginx is not running"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helped me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;if-else conditions&lt;/li&gt;
&lt;li&gt;shell scripting basics&lt;/li&gt;
&lt;li&gt;automation concepts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was my first step toward infrastructure automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;During my learning, I encountered a few challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding Linux permissions&lt;/li&gt;
&lt;li&gt;Navigating directories quickly&lt;/li&gt;
&lt;li&gt;Reading system logs&lt;/li&gt;
&lt;li&gt;Writing Bash scripts correctly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After practicing commands repeatedly and experimenting on AWS EC2 instances, these concepts became much clearer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;This week taught me that Linux is much more than just a command-line operating system.&lt;/p&gt;

&lt;p&gt;I learned:&lt;/p&gt;

&lt;p&gt;✅ Linux file system structure&lt;/p&gt;

&lt;p&gt;✅ Essential Linux commands&lt;/p&gt;

&lt;p&gt;✅ File and directory management&lt;/p&gt;

&lt;p&gt;✅ System monitoring basics&lt;/p&gt;

&lt;p&gt;✅ Service management&lt;/p&gt;

&lt;p&gt;✅ Log analysis&lt;/p&gt;

&lt;p&gt;✅ Bash scripting fundamentals&lt;/p&gt;

&lt;p&gt;Most importantly, I realized that strong Linux fundamentals make learning DevOps tools much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;In Week 2, I plan to learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced Linux Commands&lt;/li&gt;
&lt;li&gt;User and Group Management&lt;/li&gt;
&lt;li&gt;Networking Basics&lt;/li&gt;
&lt;li&gt;SSH and Remote Access&lt;/li&gt;
&lt;li&gt;Package Management&lt;/li&gt;
&lt;li&gt;More Bash Scripting&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Every DevOps Engineer starts somewhere, and Linux is the perfect place to begin.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;If you're also starting your DevOps journey, feel free to connect and share your experiences.&lt;/p&gt;

&lt;p&gt;See you in Week 2! 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  linux #devops #aws #cloudcomputing #bash #opensource #learninginpublic #career
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>devjournal</category>
      <category>devops</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
