Blog
Thoughts on engineering, design, and building great products.
systemd and Services
systemd is the init system that controls every service on modern Linux. Learn systemctl to start/stop/restart services, have them auto-start at boot, write your own unit files, and view logs with journalctl.
SSH and File Transfer: ssh, scp, rsync
How you actually get into a remote Linux server: SSH with key authentication (safer than passwords), a handy config file, and transferring files with scp and rsync. A foundational skill for everything you do on a server.
Basic Networking on Linux
View IP addresses and routing (ip), check which ports are listening (ss), test connections (ping, curl), and understand name resolution (DNS, /etc/hosts). Enough to diagnose most networking issues on a server.
Users, Groups and sudo
Linux is multi-user by design. This article explains where users and groups are stored (/etc/passwd, /etc/shadow, /etc/group), how to create and manage them, and why you should use sudo instead of logging in directly as root.
Software Package Management: apt, dnf, apk
Install, update, and remove software on Linux through the package manager. Understand the differences between distro families (apt for Debian/Ubuntu, dnf for Fedora, apk for Alpine) and tell apart updating the package list from upgrading software.
Disks and Capacity: df, du, lsblk, mount
\"The server is out of disk\" is a classic incident. This article teaches the troubleshooting workflow: df to see which filesystem is full, du to trace which directory is eating space, find for large files, plus lsblk and mount to understand storage devices.
Compress and Decompress: tar, gzip, zip
Bundle many files into one and compress them for backups or moving data. Understand the difference between archiving (tar) and compressing (gzip), memorize the confusing tar flags, and know when to use tar.gz vs zip.