Blog
Thoughts on engineering, design, and building great products.
Cron and Scheduled Tasks
Have commands and scripts run on a schedule — nightly backups, weekly log cleanup. Learn crontab syntax, the common pitfalls (PATH, environment), at for one-off jobs, and a wrap-up of the whole Linux series.
Shell Scripting: Automating with Bash
Combine commands into scripts so you don't retype them and can automate your work. Learn the shebang, variables, parameters, conditionals, loops, functions, exit codes, and safe-scripting habits like set -euo pipefail.
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.