<?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>Forem: Frank A</title>
    <description>The latest articles on Forem by Frank A (@frank_a_64393c6f49a90e428).</description>
    <link>https://forem.com/frank_a_64393c6f49a90e428</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3536761%2Fb40a19d4-d597-41a4-b334-3e1b3eb8fceb.png</url>
      <title>Forem: Frank A</title>
      <link>https://forem.com/frank_a_64393c6f49a90e428</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/frank_a_64393c6f49a90e428"/>
    <language>en</language>
    <item>
      <title>The day I realized I didn't actually know Linux</title>
      <dc:creator>Frank A</dc:creator>
      <pubDate>Thu, 12 Mar 2026 14:00:22 +0000</pubDate>
      <link>https://forem.com/frank_a_64393c6f49a90e428/the-day-i-realized-i-didnt-actually-know-linux-1iii</link>
      <guid>https://forem.com/frank_a_64393c6f49a90e428/the-day-i-realized-i-didnt-actually-know-linux-1iii</guid>
      <description>&lt;p&gt;It was a Friday afternoon and my manager had just asked me to tail some logs on a production server to debug a weird issue we were seeing in staging. Simple enough task. I'd been using Linux casually for about two years at that point, watched probably 40 hours of tutorials, read half of &lt;a href="https://linuxcommand.org/tlcl.php" rel="noopener noreferrer"&gt;The Linux Command Line&lt;/a&gt; by William Shotts. I knew my stuff. Or so I thought.&lt;/p&gt;

&lt;p&gt;I SSH'd in, got to the right directory, and then just... sat there. I knew the command was something with &lt;code&gt;tail&lt;/code&gt;. I knew &lt;code&gt;-f&lt;/code&gt; was involved. But my hands were doing nothing. I was mentally Googling in my own head, which is a terrible place to search.&lt;/p&gt;

&lt;p&gt;My manager was watching. I typed &lt;code&gt;tail -f&lt;/code&gt; and then stared at the filename like it owed me money.&lt;/p&gt;

&lt;p&gt;That moment stuck with me for a long time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap nobody talks about
&lt;/h2&gt;

&lt;p&gt;The thing is, I had learned Linux the way most people do. Tutorials, documentation, courses. And all of that stuff teaches you &lt;em&gt;about&lt;/em&gt; Linux. It doesn't teach you to &lt;em&gt;use&lt;/em&gt; it. Those are genuinely different things and I wish someone had told me earlier.&lt;/p&gt;

&lt;p&gt;There's a version of learning where you absorb information and feel good about it, and then there's actually building the reflexes. With terminal work especially, if your fingers haven't typed a command a hundred times under mild pressure, it's not really in there. It's just floating around somewhere vague in your brain.&lt;/p&gt;

&lt;p&gt;I spent a long time in the first category pretending I was in the second.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually helped
&lt;/h2&gt;

&lt;p&gt;A friend of mine who does CTF competitions mentioned offhand that he learned more about Linux in three months of doing wargames than in two years of reading. I was skeptical. CTF always sounded like a hacker competition thing, not something relevant to a regular dev or sysadmin.&lt;/p&gt;

&lt;p&gt;But I tried it. The format is simple: you get a live terminal, you get a goal, you figure it out. No one shows you how. You either get the flag or you don't.&lt;/p&gt;

&lt;p&gt;The first few challenges I genuinely struggled with things I thought I knew. &lt;code&gt;find&lt;/code&gt; with the right flags. Redirecting stderr. Basic text parsing. It was humbling in a useful way.&lt;/p&gt;

&lt;p&gt;After maybe six weeks of doing a challenge here and there, I noticed I'd stopped hesitating. Not because I'd memorized more stuff, but because my hands had actually done the work. The commands weren't ideas anymore, they were habits.&lt;/p&gt;

&lt;p&gt;If you want somewhere to start that doesn't require setting up a VM or dealing with any configuration, &lt;a href="https://www.practicelinux.com" rel="noopener noreferrer"&gt;PracticeLinux&lt;/a&gt; is what I'd point you to. It runs right in the browser, no account needed for the first challenge. Good way to find out where your actual gaps are without any setup friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anyway
&lt;/h2&gt;

&lt;p&gt;I'm not saying tutorials are useless. I still read documentation. But I think a lot of people, myself included, stay in the comfortable zone of passive learning way longer than they should because it &lt;em&gt;feels&lt;/em&gt; like progress.&lt;/p&gt;

&lt;p&gt;The Friday afternoon log thing was embarrassing but probably necessary. Sometimes you need the gap to become visible before you do anything about it.&lt;/p&gt;

&lt;p&gt;If your Linux feels more theoretical than practical right now, that's fixable. Just takes different practice than most people think.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>security</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Hacked: Input validation in app</title>
      <dc:creator>Frank A</dc:creator>
      <pubDate>Mon, 27 Oct 2025 07:48:05 +0000</pubDate>
      <link>https://forem.com/frank_a_64393c6f49a90e428/hacked-input-validation-in-app-5eb</link>
      <guid>https://forem.com/frank_a_64393c6f49a90e428/hacked-input-validation-in-app-5eb</guid>
      <description>&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/t1HeFKM7Zss"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;Input validation is crucial for web app security. In this video, you'll see a Python web app get p0wned, because the inputs are not validated. A shell gets opened on the server that's running the web app. From there, I explain what happens if there is validation, but incorrectly implemented and the whole thing contains demo's.&lt;/p&gt;

&lt;p&gt;Timestamps show you every step, you can jump to the parts you like, whether it’s command execution, reverse shell or the Python code itself. Have fun!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Watch on&lt;/em&gt; &lt;a href="https://www.youtube.com/watch?v=t1HeFKM7Zss" rel="noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>webdev</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Linux Scripting in 10 Minutes</title>
      <dc:creator>Frank A</dc:creator>
      <pubDate>Sat, 25 Oct 2025 09:43:46 +0000</pubDate>
      <link>https://forem.com/frank_a_64393c6f49a90e428/linux-scripting-in-10-minutes-1719</link>
      <guid>https://forem.com/frank_a_64393c6f49a90e428/linux-scripting-in-10-minutes-1719</guid>
      <description>&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/YIF9-hE3lOs"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;If you can type a few commands in the terminal, you can write your first Linux Script. Let’s make Linux work for you.&lt;/p&gt;

&lt;p&gt;To make a Linux bash script, open your favorite text editor (vim,nano,sublime text whatever). Then write this line on top&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;From then on, you can simply write Linux commands one by one. Once you have all your commands, save the file as a &lt;strong&gt;.sh&lt;/strong&gt; file.&lt;/p&gt;

&lt;p&gt;Next, make your script executable. You can achieve this with the command&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod +x filename.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You now have an runnable scirpt. So how do you run it? &lt;br&gt;
Use the command below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;./filename.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Many more details in the Youtube video. Hope this helps :-)&lt;/p&gt;

</description>
      <category>linux</category>
      <category>ubuntu</category>
      <category>archlinux</category>
      <category>cli</category>
    </item>
    <item>
      <title>Built a tiny app to practice Linux commands</title>
      <dc:creator>Frank A</dc:creator>
      <pubDate>Tue, 07 Oct 2025 12:13:05 +0000</pubDate>
      <link>https://forem.com/frank_a_64393c6f49a90e428/built-a-tiny-app-to-practice-linux-commands-4mc1</link>
      <guid>https://forem.com/frank_a_64393c6f49a90e428/built-a-tiny-app-to-practice-linux-commands-4mc1</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;I’ve been teaching Linux and realized that a lot of beginner tutorials are either too dry or assume some prior knowledge. So, I decided to build a small app that teaches Linux command-line basics through interactive challenges.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8ufr77w77917efoo9sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8ufr77w77917efoo9sg.png" alt="linux challenges" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app gives you small challenges, and you get immediate feedback so you can see how you’re doing. I’m hoping it can help people who want to learn Linux but don’t know where to start.&lt;/p&gt;

&lt;p&gt;If you’re interested, you can check it out here: &lt;a href="https://linuxlabs.app" rel="noopener noreferrer"&gt;https://linuxlabs.app&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Would love any feedback or ideas for improvements!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
