Living in the Shell
Jan 15, 2025 · 2 min · linux , bash , git , fundamentals
The terminal is not a black box and it never was. It is the most literal coworker you will ever have: it does exactly what you say and nothing more. That is either terrifying or the most reliable relationship in your life, depending entirely on how comfortable your hands are.
For offensive work that comfort is not optional. Every engagement eventually collapses down to you, a shell, and a problem. If you are still thinking about how to chain grep, find, xargs, cut, and sort, you have no spare attention left for the actual target. Fluency in the environment is the thing that frees your brain to work on the problem instead of the tooling.
I keep my hands sharp the cheap way: OverTheWire Bandit, top to bottom, no notes. The premise is simple and a little mean: the password for the next level is hidden somewhere on the machine, and the only way forward is to actually use the tools instead of pasting a spell off a cheat sheet. find . -type f -size 1033c should be a sentence you write, not an incantation you copy.
The other reflex worth drilling until it disappears is git. Add, commit, push, branch, checkout, log, diff, stash, reset. A notes repo, a commit a day, even when the commit is embarrassingly small. The point is not good commits. The point is for git to stop being something you think about and start being something you do.
None of this is the interesting part of the job. That is exactly why it has to be automatic. You cannot pick a lock while you are still afraid of the door.