Skip to main content

Command Palette

Search for a command to run...

Feeling Stuck in Linux? Read One Man Page a Day

Published
4 min read
Feeling Stuck in Linux? Read One Man Page a Day
F
I’m FlareXes. I work around Linux, networking, security, and internet infrastructure as part of my job. University was mostly trash, honestly. The people were good. The content wasn’t. Staying didn’t make sense, so I left.

Once you've spent years on an operating system, things soon start becoming stagnant. I hit that wall recently. I realized I'm spending most of my time at a full-time job, so I have very little time left to experiment—and experimentation is how you actually learn new things.

So, I came up with a plan. The idea is simple: read a random Linux man page daily (or realistically, whenever I have free time or feel like it), at least 3–4 times a week. It’s lightweight, flexible, and doesn’t require long focused sessions.

Today, I’ll walk you through exactly how I do it and how you can try the same.

Man's Automation

Reading a random man page is easy, you can fully automate it with one command:

man -k . | grep ' (1)' | shuf -n 1 | awk '{print $1}' | xargs man

It's a simple one-line command that you can set as an alias. It lists all man pages, selects one at random, and opens it.

grep ' (1)' is the interesting part here.

If you don't already know, man pages are grouped into 8–9 sections. Some of the most notable are:

  • 1 → user commands

  • 2 → system calls

  • 3 → library functions

  • 5 → file formats

  • 8 → admin commands

  • 9 → kernel internals

With grep ' (1)', we’re focusing only on user commands the ones you’ll actually interact with day to day. Starting here makes learning more approachable, since you build from practical usage before diving into deeper layers.
Reading man pages for library functions or internals can be useful, but it’s usually more relevant when you’re working on something specific or intentionally exploring the system in depth.

Sometimes pure randomness isn’t what you want. You might be in the mood to explore a specific area like networking or processes.

That’s where this variation comes in:

man -k network | grep ' (1)' | shuf -n 1 | awk '{print $1}' | xargs man

The only change is the first part: man -k network.

Instead of listing everything, this searches for man pages that contain the word "network" in their name or description.

It’s not 100% accurate, but it’s good enough to cluster related commands together.

Here are a few solid categories to explore:

  • filesystem → file, directory, path, mount

  • process → process, signal, thread, job

  • network → network, socket, TCP, IP

  • text → text, stream, filter

  • system → system, kernel, memory

  • user → user, group, permission

  • archive → archive, compression, tar, gzip

  • disk → disk, partition, filesystem

Mental Models

  1. **Just Explore
    **This is my default mode. I open a random man page and read just enough to get a feel for it. Usually:

    • NAME

    • DESCRIPTION

    • maybe a quick scan of OPTIONS

    If it clicks, I keep going. If not, I move on without guilt.

    Most days, I go through 3–5 man pages in about 5–10 minutes total. I also pair this with quick tools: tldr& cheat.sh for fast examples and practical usage snippets.

    Always refer to tldr & cheat.sh when reading man pages.

  2. Go Deep
    Once in a while, I find a man page that complements my existing knowledge or fits well into a script I'm writing. That’s when I switch modes.

    I spend more time on it maybe a week or however long I feel like. I sit with ChatGPT on the side, remove the grep (1) filter, and explore system calls, library functions, and deeper internals.

    My recent work on Docker IPC falls under this category, and my current obsession with netfilter and TLS inspection fits here as well.

    Explore widely, then go deep selectively.

Complement Your Knowledge

Man pages are powerful but they’re not always the fastest way to understand something.

So I combine them with a few tools:

  • tldr and cheat.sh for quick, real-world examples

  • Explainshell to break complex commands into understandable pieces

  • ChatGPT when I want explanations, comparisons, or “why would I use this?” insights

And most importantly: a running Linux system.

Reading is good but typing commands, breaking things, and fixing them is where things actually stick.

TL;DR

You don’t need hours every day to improve your Linux skills.

You just need a system that fits into your life.

For me, it’s this:

  • Pick something randomly

  • Follow curiosity when it shows up

  • Go deeper when it matters

That’s it.

It keeps things fresh, avoids burnout, and slowly builds understanding over time.

Okay Bye... Have a Great Day Ahead!