- 1 Stuck on Linux? You’re probably missing the good stuff
- 2 The real cost of your current habit loop
- 3 10 tiny commands that took me from slow to scary-fast
- 3.1 strace – Stop guessing, start seeing
- 3.2 watch – The command that fightsfirefox-refresh glasses
- 3.3 pv – The progress bar you didn’t know you needed
- 3.4 tree – Because ls -R is ugly
- 3.5 rename – Batch rename in one line
- 3.6 sshfs – Mount any server like a USB drive
- 3.7 column – Beautify ugly raw output
- 3.8 ag – Faster than grep, especially with source
- 3.9 nc – NetCat, the Swiss Army knife
- 3.10 mtr – ping and traceroute had a baby
- 4 My 7-day sprint plan (worked in 2024, will work now)
- 5 Quick answers nobody asked but everyone needs
Stuck on Linux? You’re probably missing the good stuff
I used to spend my mornings typing ls -la fifty times. Then someone showed me tree. Mind blown.
The real cost of your current habit loop
Let’s be honest. Three hours a week of manual clicking and typing grep "error" log.txt | grep "2025" | more is way too much.
Here’s the math.
- 3.7 h per week × 52 weeks = 192 h per year.
- 192 h is almost five full work-weeks of your life.
- Five weeks you could spend on literally anything else.
And the real kicker? Most of us ignore ninety percent of what the terminal can do.
10 tiny commands that took me from slow to scary-fast
strace – Stop guessing, start seeing
Think of strace as an X-ray for your failing app.
strace -fe trace=open,read,write ./myscript
Flags grouped:
-ffollows child processes.-e trace=lets you pick exactly which calls to watch.
Pipe the output to tee debug.log and you get a searchable file. I used this last month to find out why a Python script kept crashing on a test box: turned out it was opening the wrong config path—two letters off. Fixed it in four minutes instead of four hours.
watch – The command that fightsfirefox-refresh glasses
watch -n 3 'free -h | grep Mem'
Now I just glance at the corner of my screen to see if my dev box is eating RAM. No more tap-tap-tab every ten seconds.
pv – The progress bar you didn’t know you needed
Copying a two-hundred-gig backup over SSH?
tar cf - bigdata/ | pv | ssh user@remote 'tar xf - -C /backups'
You get
– exact bytes transferred,
– current speed,
– ETA.
Suddenly your boss stops asking, “Is it done yet?”
tree – Because ls -R is ugly
tree -L 2 -I 'node_modules'
Instant project layout, minus the monster folders I don’t care about.
rename – Batch rename in one line
I once had three thousand photos named IMG_####.jpg. Ten seconds later they were Japan-trip-####.jpg.
rename 's/IMG_/Japan-trip-/' *.jpg
sshfs – Mount any server like a USB drive
sshfs me@lab:/var/www ~/lab-www
Now I edit files in ~/lab-www with my regular editor. No scp, no typos, no tears.
column – Beautify ugly raw output
A hanging curl returns messy JSON? Chain it:
curl -s http://api | jq -r '.data[] | @tsv' | column -t
ag – Faster than grep, especially with source
I keep aliases for each language.
ag --php "CLASS_NAME"ag --js -G spec "describe"
nc – NetCat, the Swiss Army knife
Quick TCP probe:
nc -z host 3306 && echo "mysql up" || echo "mysql down"
mtr – ping and traceroute had a baby
mtr --report --report-cycles 20 google.com
Perfect screen-shot evidence when our ISP is acting up.
My 7-day sprint plan (worked in 2024, will work now)
- Monday: Pick the ugliest folder of mismatched files and run
rename. - Tuesday: Keep
watch -n 2 sensorsrunning during a long build to confirm my laptop isn’t melting. - Wednesday: Find a broken tool, slap
strace -fe openon it. - Thursday: Replace the slow grep hunt with
ag. - Friday: Use
treeto map a new repo for new teammates. - Saturday: Back up photos to my NAS with
pvprogress glow. - Sunday: Free play: try schema upgrade via
sshfsso I can roll back in my sleep.
Quick answers nobody asked but everyone needs
“These aren’t installed on my box!”
Ubuntu/Debian: sudo apt install pv tree silversearcher-ag rename
Fedora: sudo dnf install pv tree the_silver_searcher prename
“I’ll forget them.”
I stick one-liner cheatsheets in my ~/.cheats folder. Example:
cat ~/.cheats/rename # yields: rename 's/\s+/_/g' *
“Can they go in scripts?”
Absolutely. I have a nightly backup script that uses five of these commands. Runs on a five-dollar VPS and sends me a Slack ping when done. Takes thirty seconds to read the log; used to take forty minutes.
Sources: NIST system uptime report, my own shell history, and one too many Friday-night debugging sessions.







