Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
From Ubuntu 24.04 to 26.04 and Reading Old Servers: sudo-rs, Rust Coreutils, nftables, SysV to systemd
On Ubuntu 26.04 the command names stay the same, but sudo-rs and the Rust coreutils can change behavior: in the uutils 0.10.0 I tested, ln -sfn is no longer atomic and sudo's error message differs, so run your scripts on the new release before upgrading. We cover OpenSSH 10's post-quantum key exchange, SysV scripts, the equivalents of ifconfig and iptables, RHEL differences and choosing between an in-place upgrade and a new server, with real output.
The Linux Filesystem Hierarchy: /etc, /var, /opt, /srv, /home, /proc and "Everything Is a File"
On Linux, programs live in /usr or /opt, configuration in /etc and changing data in /var; for Bookstore that means /opt/bookstore/releases, /etc/bookstore, /var/log/bookstore and /var/lib/bookstore. With real output we cover find, cp -a and rm -r, hard links vs symlinks, how ln -sf silently creates the link in the wrong place when switching the current symlink, inspecting a running .NET process through /proc/<pid>, and why appsettings.production.json is ignored on Linux.
A Linux Lab for Developers and SSH: Setting Up a VM, Connecting with Keys and Getting to Know the Server
You connect to a Linux server with an ed25519 SSH key instead of a password: generate it with ssh-keygen, install it with ssh-copy-id and define an alias in ~/.ssh/config. With real output and Windows equivalents, we cover ssh-agent, why the host key warning matters, a first tour with uname/df/free/ss, moving Bookstore.Api with rsync and reaching an app bound to 127.0.0.1 through an SSH tunnel.