Apr 22, 2026 · 2 min read
Linux essentials I wish I'd learned on day one
A short, opinionated list of Linux fundamentals that paid for themselves the moment I started touching servers.
Most "Linux for developers" lists are huge. This one isn't. These are the handful of habits that compounded the most for me once I started SSHing into real machines.
1. Live in your shell config
If you SSH into the same boxes daily, your ~/.zshrc or ~/.bashrc is
production code. Mine has aliases for gst, gco, and tf, plus a tiny
prompt that shows the current AWS profile. The minute I forgot that and
terraform apply-ed against the wrong account, that prompt earned its
keep.
2. SSH keys, never passwords
ssh-keygen -t ed25519 -C "balraj@laptop"
ssh-copy-id user@host
# disable password auth in /etc/ssh/sshd_config
PasswordAuthentication noBonus: ~/.ssh/config lets you alias hosts so ssh prod-1 Just Works.
3. systemd is a friend, not a fight
Every service should be a unit file. You get logs, restarts, dependencies,
and a single mental model. journalctl -u myapp -f replaces a thousand
tail -f invocations.
4. Learn the four file commands well
grep, find, xargs, awk. Not flashy. They show up in 80% of incidents.
# find all logs over 100MB
find /var/log -type f -size +100M
# kill every process matching a pattern
ps aux | grep myworker | awk '{print $2}' | xargs kill5. Tmux beats new SSH sessions
A long-running deploy or migration must not die because your laptop slept.
tmux new -s deploy, do work, detach with Ctrl-b d, reattach later from
anywhere.
6. Read the man page before Stack Overflow
man <cmd> is faster than a search engine for 90% of "what flag do I want?"
questions, and the answer is correct for your version of the tool.
None of this is exotic. The gap between people who use Linux daily and people who SSH in once a quarter is mostly these six things, applied consistently.