Skip to content
All notes

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.

linux
devops
fundamentals

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 no

Bonus: ~/.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 kill

5. 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.