<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[mi.devops-journey]]></title><description><![CDATA[I will share my journey to becoming a Cloud and DevOps Engineer through hands-on learning, projects, practical labs, and real-world experiences.]]></description><link>https://mominur-islam.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 07:20:47 GMT</lastBuildDate><atom:link href="https://mominur-islam.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[DevOps Journey #1: Essential Linux Commands Every Beginner Should Know]]></title><description><![CDATA[Introduction
As I begin the technical phase of my DevOps Journey, I decided to start with Linux.
Linux isn't completely new to me. During my academic years and personal projects, I had opportunities t]]></description><link>https://mominur-islam.hashnode.dev/devops-journey-week1-linux-commands</link><guid isPermaLink="true">https://mominur-islam.hashnode.dev/devops-journey-week1-linux-commands</guid><category><![CDATA[Linux]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[linux-commands]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[#learning-in-public]]></category><dc:creator><![CDATA[Mominur Islam]]></dc:creator><pubDate>Sun, 27 Sep 2026 13:54:07 GMT</pubDate><content:encoded><![CDATA[<h2>Introduction</h2>
<p>As I begin the technical phase of my DevOps Journey, I decided to start with Linux.</p>
<p>Linux isn't completely new to me. During my academic years and personal projects, I had opportunities to use Linux for development, troubleshooting, and general system administration tasks. However, as I started exploring Cloud and DevOps more seriously, I realized that knowing Linux and understanding Linux are two different things.</p>
<p>This journey is not about learning Linux from scratch. It's about strengthening my fundamentals and building the level of Linux proficiency expected from a Cloud and DevOps Engineer.</p>
<p>In this article, I'll share some of the Linux commands that I consider essential for anyone starting their Linux journey.</p>
<hr />
<h1>Why Linux Matters in Cloud &amp; DevOps</h1>
<p>When I looked at the technologies I wanted to learn, such as AWS, Docker, Kubernetes, Jenkins, Terraform, and Ansible, one thing kept appearing everywhere: Linux.</p>
<p>Most cloud servers run Linux.</p>
<p>Most containers run Linux.</p>
<p>Most DevOps tools are designed around Linux environments.</p>
<p>The deeper I explored the Cloud and DevOps ecosystem, the more I realized that Linux is not just another technology to learn. It is the foundation on which many modern systems are built.</p>
<p>That's why I decided to revisit Linux first before moving on to more advanced topics.</p>
<hr />
<h1>Essential Linux Commands</h1>
<p>These are some of the commands I find myself using regularly while practicing and working in Linux environments.</p>
<hr />
<h2>1. pwd</h2>
<h3>Purpose</h3>
<p>Displays the current working directory.</p>
<h3><strong>Example</strong></h3>
<pre><code class="language-bash">pwdmomin@APL-:~$ pwd                                                                                  /home/momin   
                                                                                                 
</code></pre>
<h3>Why It Matters</h3>
<p>When working across multiple directories and projects, knowing exactly where we are prevents mistakes and confusion. Like the above path shows that we are currently under home directory.</p>
<h2>2. ls</h2>
<h3>Purpose</h3>
<p>Lists files and directories.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~$ ls
m.c  net
momin@APL-5CG5413W1K:~$
</code></pre>
<p>using <strong>$ls,</strong> here we can see there is one file and one directory exist under the home directory of momin. To know more about those directory we can use different variations of this command. Like-</p>
<h3>Useful Variations</h3>
<blockquote>
<p><strong>$ls -l ,</strong> Displays detailed file information about those files and directories.</p>
</blockquote>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~$ ls -l
total 4
-rw-r--r-- 1 root root    0 Sep 10 12:29 m.c
drwxr-xr-x 2 root root 4096 Sep 10 11:56 net
</code></pre>
<blockquote>
<p>To show hidden files we use <strong>'$ls -a'</strong> command</p>
</blockquote>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~$ ls -a
.   .bash_history  .bashrc  .landscape  .local       .profile                   .viminfo  net
..  .bash_logout   .cache   .lesshst    .motd_shown  .sudo_as_admin_successful  m.c
</code></pre>
<blockquote>
<p><strong>$ls -la</strong> used to show all files, including hidden ones, in detailed format.</p>
</blockquote>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~$ ls -la
total 60
drwxr-x--- 6 momin momin 4096 Sep 24 11:36 .
drwxr-xr-x 5 root  root  4096 Sep 10 14:03 ..
-rw------- 1 momin momin 7452 Sep 25 10:36 .bash_history
-rw-r--r-- 1 momin momin  220 Sep  9 12:14 .bash_logout
-rw-r--r-- 1 momin momin 3771 Sep  9 12:14 .bashrc
drwx------ 2 momin momin 4096 Sep  9 12:15 .cache
drwxr-xr-x 2 momin momin 4096 Sep 10 11:53 .landscape
-rw------- 1 momin momin   43 Sep 24 11:36 .lesshst
drwxr-xr-x 3 momin momin 4096 Sep  9 12:29 .local
-rw-rw-r-- 1 momin momin    0 Sep 27 11:45 .motd_shown
-rw-r--r-- 1 momin momin  807 Sep  9 12:14 .profile
-rw-r--r-- 1 momin momin    0 Sep  9 12:15 .sudo_as_admin_successful
-rw------- 1 momin momin 9156 Sep 11 10:26 .viminfo
-rw-r--r-- 1 root  root     0 Sep 10 12:29 m.c
drwxr-xr-x 2 root  root  4096 Sep 10 11:56 net
</code></pre>
<h3>Why It Matters</h3>
<p>One of the most frequently used commands for navigating and understanding directory contents.</p>
<hr />
<h2>3. cd</h2>
<h3>Purpose</h3>
<p>Navigate between directories.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~$ ls
m.c  net
momin@APL-5CG5413W1K:~$ cd net
momin@APL-5CG5413W1K:~/net$
</code></pre>
<blockquote>
<p>With the help of 'ls' we can see the directories and files inside the current directory. Then with the help of 'cd' we navigate to the net directory. 'momin@APL-5CG5413W1K:~/net$' clearly shows that we are in the 'net' directory.</p>
</blockquote>
<p>Now, Move back to the home directory:</p>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/net$ cd ..
momin@APL-5CG5413W1K:~$
</code></pre>
<p>if we wanted to directly return to the home directory over two or more directories:</p>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/net/new$ cd ~
momin@APL-5CG5413W1K:~$
</code></pre>
<h3>Why It Matters</h3>
<p>Directory navigation is one of the most fundamental Linux skills and something we'll use constantly.</p>
<hr />
<h2>4. mkdir</h2>
<h3>Purpose</h3>
<p>Create directories.</p>
<h3>Example</h3>
<p>With the help of 'mkdir' we are able to make a new directory.</p>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell$ pwd
/home/momin/tell
momin@APL-5CG5413W1K:~/tell$ mkdir non
momin@APL-5CG5413W1K:~/tell$ ls
non
</code></pre>
<blockquote>
<p>here we can see the directory named 'non' created inside 'tell'</p>
</blockquote>
<h3>Why It Matters</h3>
<p>It's like a creating Folder inside the Folder that helps maintain a clean and organized workspace, especially when working on multiple projects.</p>
<hr />
<h2>5. touch</h2>
<h3>Purpose</h3>
<p>Create new files inside a directory</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell$ touch maintain.txt
momin@APL-5CG5413W1K:~/tell$ ls
maintain.txt  non
momin@APL-5CG5413W1K:~/tell$
</code></pre>
<h3>Why It Matters</h3>
<p>A quick and efficient way to generate files while testing, practicing, or creating configuration files.</p>
<hr />
<h2>6. cp</h2>
<h3>Purpose</h3>
<p>Copy files and directories.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell$ ls
maintain.txt  non
momin@APL-5CG5413W1K:~/tell$ cp maintain.txt non
momin@APL-5CG5413W1K:~/tell$ ls
maintain.txt  non
momin@APL-5CG5413W1K:~/tell$ cd non
momin@APL-5CG5413W1K:~/tell/non$ ls
maintain.txt
momin@APL-5CG5413W1K:~/tell/non$
</code></pre>
<blockquote>
<p>In here, inside the 'tell' directory we have a file named 'maintain.txt' , with the help of 'cp' command we have copied that file onto 'non' directory.</p>
</blockquote>
<h3>Why It Matters</h3>
<p>Creating backups before making modifications is a good habit and can save time when mistakes happen.</p>
<hr />
<h2>7. mv</h2>
<h3>Purpose</h3>
<p>With the help 'mv' we can move or rename files.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell/non$ rm maintain.txt
momin@APL-5CG5413W1K:~/tell/non$ ls
momin@APL-5CG5413W1K:~/tell/non$ cd ..
momin@APL-5CG5413W1K:~/tell$ ls
maintain.txt  non
momin@APL-5CG5413W1K:~/tell$ mv maintain.txt non
momin@APL-5CG5413W1K:~/tell$ ls
non
momin@APL-5CG5413W1K:~/tell$ cd non
momin@APL-5CG5413W1K:~/tell/non$ ls
maintain.txt
momin@APL-5CG5413W1K:~/tell/non$
</code></pre>
<blockquote>
<p>After remove 'maintain.txt' file from the 'non' directory, we have move the same file from the 'tell' directory to the 'non' directory.</p>
</blockquote>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell/non$ ls
maintain.txt
momin@APL-5CG5413W1K:~/tell/non$ mv maintain.txt main.txt
momin@APL-5CG5413W1K:~/tell/non$ ls
main.txt
momin@APL-5CG5413W1K:~/tell/non$
</code></pre>
<blockquote>
<p>Now with the help of 'mv' we have rename the file 'maintain.txt' to 'main.txt'</p>
</blockquote>
<h3>Why It Matters</h3>
<p>Useful for organizing files, restructuring directories, and maintaining naming standards.</p>
<hr />
<h2>8. rm</h2>
<h3>Purpose</h3>
<p>Delete files and directories.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell/non$ ls
index  main.txt
momin@APL-5CG5413W1K:~/tell/non$ rm main.txt
momin@APL-5CG5413W1K:~/tell/non$ ls
index
momin@APL-5CG5413W1K:~/tell/non$
</code></pre>
<blockquote>
<p>Here we deleted the file named 'main.txt' with the help of 'rm'</p>
</blockquote>
<p>Delete a directory:</p>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell/non$ ls
index
momin@APL-5CG5413W1K:~/tell/non$ rm -r index
momin@APL-5CG5413W1K:~/tell/non$ ls
momin@APL-5CG5413W1K:~/tell/non$
</code></pre>
<blockquote>
<p>Now we deleted the 'index' directory with the help of 'rm -r'. We can use 'rmdir' instead of this command.</p>
</blockquote>
<h3>Why It Matters</h3>
<p>A powerful command used frequently in Linux administration. However, it should be used carefully because deleted files are not easily recoverable.</p>
<h2>9. cat</h2>
<h3>Purpose</h3>
<p>With the help of this command we can print and read file contents directly from the terminal.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell$ cat m.c
#include&lt;stdio.h&gt;
int main()
{
        printf("hello");
        return 0;
}
momin@APL-5CG5413W1K:~/tell$
</code></pre>
<h3>Why It Matters</h3>
<p>Allows quick inspection of files without opening a text editor</p>
<h2>10. grep</h2>
<h3>Purpose</h3>
<p>Search for specific patterns or text within files.</p>
<h3>Example</h3>
<pre><code class="language-bash">momin@APL-5CG5413W1K:~/tell$ grep r m.c
        printf("hello");
        return 0;
momin@APL-5CG5413W1K:~/tell$
</code></pre>
<blockquote>
<p>When we search 'r' inside the 'm.c' file it shows in which line r has matching.</p>
</blockquote>
<h3>Why It Matters</h3>
<p>One of the most powerful commands for troubleshooting, log analysis, and searching through large amounts of data.</p>
<blockquote>
<h3><code>These commands help me navigate directories, inspect files, verify information, and troubleshoot issues quickly.</code></h3>
</blockquote>
<h3>Key Takeaways</h3>
<h3><code>✅ Linux is one of the most important foundational skills in Cloud and DevOps.</code></h3>
<p><code>✅Strong Linux fundamentals make advanced tools easier to understand.</code>  <br /><code>✅ Command-line proficiency improves efficiency and troubleshooting capabilities.</code>  <br /><code>✅ Practical usage is more valuable than memorizing commands.</code>  <br /><code>✅ Consistent practice builds confidence and develops long-term skills.</code></p>
<h2>What's Next?</h2>
<p>Now that I've revisited some of the essential Linux commands, the next step is understanding how Linux organizes files and directories.</p>
<h2>N<strong>ext Article</strong></h2>
<h3><code>DevOps Journey #2: Understanding the Linux File System</code></h3>
<h2><strong>Conclusion</strong></h2>
<p>Although I had previous exposure to Linux, revisiting the fundamentals has been a valuable experience. Instead of rushing toward advanced tools and technologies, I'm focusing on building a solid foundation that will support everything that comes later in my Cloud and DevOps journey.  <br />Linux is more than just an operating system kernel. It is a core skill that powers cloud platforms, servers, containers, and many of the tools used in modern DevOps practices.  <br />This is only the beginning, and I'm excited to continue learning, building, and sharing my journey along the way.  <br />If you're also learning Linux, Cloud Computing, or DevOps, feel free to follow along as we continue exploring this roadmap together.</p>
<p>Thank you..</p>
]]></content:encoded></item><item><title><![CDATA[DevOps Journey #0: Why I Started Learning Cloud and DevOps
]]></title><description><![CDATA[Introduction
Hello everyone,
I'm Mominur Islam, an Information Technology graduate and currently working as a Scholar Trainee at Wipro. Over the past few months, I have developed a strong interest in ]]></description><link>https://mominur-islam.hashnode.dev/devops-journey-0-why-i-started-learning-cloud-and-devops</link><guid isPermaLink="true">https://mominur-islam.hashnode.dev/devops-journey-0-why-i-started-learning-cloud-and-devops</guid><category><![CDATA[Devops]]></category><category><![CDATA[Linux]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[Git]]></category><category><![CDATA[#learning-in-public]]></category><dc:creator><![CDATA[Mominur Islam]]></dc:creator><pubDate>Sun, 20 Sep 2026 20:10:51 GMT</pubDate><content:encoded><![CDATA[<h2>Introduction</h2>
<p>Hello everyone,</p>
<p>I'm <strong>Mominur Islam</strong>, an Information Technology graduate and currently working as a <strong>Scholar Trainee at Wipro</strong>. Over the past few months, I have developed a strong interest in Cloud Computing, Linux, Automation, and DevOps technologies.</p>
<p>This article marks the beginning of my <strong>DevOps Journey</strong>. Through this series, I will document my learning experiences, projects, challenges, and achievements as I work toward becoming a Cloud and DevOps Engineer.</p>
<p>My goal is not only to learn but also to share what I learn with others who are on a similar path.</p>
<h2>Why Cloud and DevOps?</h2>
<p>Throughout my academic journey and early professional experience, I gradually discovered that what I enjoy most is <strong>solving problems through technology</strong>. Whether it was learning a new tool, building a project, or finding a better way to complete a task, I was always curious about how technology can make people's lives easier.</p>
<p>One of the best examples was my academic project, where I developed a <strong>Hostel and Billing Management System</strong>. The goal was to simplify the process of calculating students' meal costs and expenses. What previously took hours of manual calculations could be completed in a single click with real-time accuracy. Seeing how a technical solution could save time and reduce effort was incredibly satisfying and reinforced my interest in building practical solutions.</p>
<p>As I continued exploring different areas of technology, I realized that DevOps combines many of the things I genuinely enjoy:</p>
<ul>
<li><p>Problem Solving</p>
</li>
<li><p>Linux Administration</p>
</li>
<li><p>Cloud Computing</p>
</li>
<li><p>Automation</p>
</li>
<li><p>Scripting</p>
</li>
<li><p>Infrastructure Management</p>
</li>
<li><p>Continuous Learning</p>
</li>
</ul>
<p>What attracted me to DevOps the most is that it is not about mastering a single tool. Instead, it involves learning various technologies and using them together to solve real-world problems, automate repetitive tasks, improve efficiency, and build reliable systems that can scale.</p>
<p>For someone who enjoys learning new things and continuously improving processes, Cloud and DevOps felt like a natural career path. It perfectly aligns with my curiosity, problem-solving mindset, and passion for creating solutions that make complex tasks simpler.</p>
<p>This is one of the main reasons why I decided to start this journey and document my progress along the way.</p>
<h2>My Current Learning Roadmap</h2>
<p>To build a strong foundation, I have organized my learning journey into different stages.</p>
<h2>Phase 1: Linux Fundamentals</h2>
<ul>
<li><p>Linux Commands</p>
</li>
<li><p>File System Management</p>
</li>
<li><p>Permissions and Ownership</p>
</li>
<li><p>Process Management</p>
</li>
<li><p>Shell Basics</p>
</li>
</ul>
<h2>Phase 2: Automation &amp; Scripting</h2>
<ul>
<li><p>Bash Scripting</p>
</li>
<li><p>Python Basics</p>
</li>
<li><p>Task Automation</p>
</li>
<li><p>Linux Automation</p>
</li>
</ul>
<h2>Phase 3: Networking Fundamentals</h2>
<ul>
<li><p>OSI &amp; TCP/IP Models</p>
</li>
<li><p>IP Addressing &amp; Subnetting</p>
</li>
<li><p>DNS, DHCP &amp; Routing</p>
</li>
<li><p>HTTP, HTTPS &amp; SSH</p>
</li>
<li><p>Firewalls &amp; Network Security</p>
</li>
</ul>
<h2>Phase 4: Cloud Computing</h2>
<ul>
<li><p>Cloud Fundamentals</p>
</li>
<li><p>AWS Core Services</p>
</li>
<li><p>IAM</p>
</li>
<li><p>EC2</p>
</li>
<li><p>S3</p>
</li>
<li><p>Cloud Networking</p>
</li>
</ul>
<h2>Phase 5: Version Control</h2>
<ul>
<li><p>Git Fundamentals</p>
</li>
<li><p>Branching &amp; Merging</p>
</li>
<li><p>GitHub Workflows</p>
</li>
<li><p>Collaboration Best Practices</p>
</li>
</ul>
<h2>Phase 6: CI/CD</h2>
<ul>
<li><p>Continuous Integration</p>
</li>
<li><p>Continuous Delivery</p>
</li>
<li><p>Continuous Deployment</p>
</li>
<li><p>Pipeline Design</p>
</li>
<li><p>Automation Workflows</p>
</li>
</ul>
<h2>Phase 7: Containerization</h2>
<ul>
<li><p>Docker Fundamentals</p>
</li>
<li><p>Docker Images &amp; Containers</p>
</li>
<li><p>Docker Networking</p>
</li>
<li><p>Docker Compose</p>
</li>
</ul>
<h2>Phase 8: Container Orchestration</h2>
<ul>
<li><p>Kubernetes Architecture</p>
</li>
<li><p>Pods, Deployments &amp; Services</p>
</li>
<li><p>Scaling Applications</p>
</li>
<li><p>Cluster Management</p>
</li>
</ul>
<h2>Phase 9: DevSecOps</h2>
<ul>
<li><p>Secure Development Practices</p>
</li>
<li><p>Vulnerability scanning</p>
</li>
<li><p>Secrets Management</p>
</li>
<li><p>Container &amp; Cloud Security</p>
</li>
</ul>
<h2>Phase 10: Infrastructure as Code (IaC)</h2>
<ul>
<li><p>Terraform</p>
</li>
<li><p>Ansible</p>
</li>
<li><p>Infrastructure Provisioning</p>
</li>
<li><p>Configuration Management</p>
</li>
</ul>
<h2>Phase 11: GitOps</h2>
<ul>
<li><p>GitOps Principles</p>
</li>
<li><p>Argo CD</p>
</li>
<li><p>Continuous Deployments</p>
</li>
<li><p>Kubernetes GitOps Workflows</p>
</li>
</ul>
<h2>Phase 12: Observability</h2>
<ul>
<li><p>Prometheus</p>
</li>
<li><p>Grafana</p>
</li>
<li><p>Logging &amp; Monitoring</p>
</li>
<li><p>Alerting &amp; Troubleshooting</p>
</li>
</ul>
<h2>Phase 13: AI Infrastructure &amp; AIOps</h2>
<ul>
<li><p>AI Infrastructure Fundamentals</p>
</li>
<li><p>GPU &amp; Compute Platforms</p>
</li>
<li><p>AIOps Operations</p>
</li>
<li><p>Intelligent Monitoring &amp; Automation</p>
</li>
</ul>
<h2>Phase 14: Real-World Projects</h2>
<ul>
<li><p>End-to-End DevOps Projects</p>
</li>
<li><p>CI/CD Pipelines</p>
</li>
<li><p>Cloud Deployments</p>
</li>
<li><p>Infrastructure Automation</p>
</li>
<li><p>Monitoring Solutions</p>
</li>
</ul>
<h2>What You Can Expect From This Series</h2>
<p>This series will focus on practical learning rather than theory alone.</p>
<p>I will share:</p>
<ul>
<li><p>Concepts explained in simple language</p>
</li>
<li><p>Hands-on labs and exercises</p>
</li>
<li><p>Commands and configurations</p>
</li>
<li><p>Mistakes and lessons learned</p>
</li>
<li><p>Project walkthroughs</p>
</li>
<li><p>Certification preparation insights</p>
</li>
<li><p>Useful resources and references</p>
</li>
</ul>
<p>Each article will represent a milestone in my learning journey.</p>
<hr />
<h2>My Goal</h2>
<p>My long-term goal is to become a skilled <strong>Cloud and DevOps Engineer</strong> capable of designing, automating, and managing modern cloud infrastructure.</p>
<p>I believe that consistency is more important than speed. Even small progress every day can lead to significant growth over time.</p>
<p>This blog series will help me:</p>
<ul>
<li><p>Track my progress</p>
</li>
<li><p>Reinforce my learning</p>
</li>
<li><p>Build a public portfolio</p>
</li>
<li><p>Connect with like-minded learners and professionals</p>
</li>
</ul>
<h2>What's Next?</h2>
<p>In the next article, I'll share my experience setting up and using a Linux environment, along with some essential Linux commands.</p>
<p>Stay tuned for:</p>
<p><strong>DevOps Journey #1: Essential Linux Commands Every Beginner Should Know</strong></p>
<blockquote>
<h3><strong>A Special Thank you for reading this far............</strong></h3>
</blockquote>
]]></content:encoded></item></channel></rss>