This page contains a list of most of my Linux and related articles. The list is divided into sections by where they were originally published, such as Opensource.com, Enable SysAdmin, my own DataBook for Linux, and Linux Magazine.
Some of these articles are quite old, but I have included them here for completeness. Many of my articles have been published in multiple locations so I may link to one or more of those locations for completeness.
The most recent articles are at the top of the lists and the articles get older as you go down.
DataBook for Linux (Personal)
The DataBook for Linux is my own technical web site and contains hundreds of articles I have written over the years. Many of those articles might be helpful to you so I have set links to them here. Other articles are ones that I wrote for other publications that may no longer be available.
- 2019-09-20: Real SysAdmins don’t sudo
- 2008-06-14: Complete Kickstart This article first appeared in the June 2008 issue of Linux Magazine but is no longer maintained there. This link is to a copy of it on my own web site.
Opensource.com (Red Hat)
- 2023-02-06: Wordsmith on the Linux command line with dict
- 2023-01-25: Why sysadmins should license their code for open source
- 2022-11-14: Make swap better with zram on Linux
- 2022-11-11: Drop swap for zram on Linux
- 2022-09-13: How I troubleshoot swappiness and startup time on Linux
- 2022-09-12: How I recovered my Linux system using a Live USB device
- 2022-08-23: How I migrated to NetworkManager keyfiles for configuration
- 2022-08-03: A sysadmin’s guide to network interface configuration files
- 2022-08-01: How I disabled IPv6 on Linux
- 2022-07-18: How I configured a DHCP server on my personal network
- 2022-06-28: Linux su vs sudo: what’s the difference?
- 2022-04-21: How Linux rescues slow computers (and the planet)
- 2022-04-20: Get started with NetworkManager on Linux
- 2022-03-31: How I customize my Linux window decorations
- 2022-03-12: Understanding the Digital World: My honest book review
- 2022-02-14: How I configure Vim as my default editor on Linux
- 2022-01-18: How curiosity helped me solve a hardware problem
- 2021-12-07: Manage your APC battery backup system with this Linux command
- 2021-09-08: How I migrated a WordPress website to a new host
- 2021-06-28: Parsing config files with Bash
- 2021-06-05: Why my need for control made me switch to Linux
- 2021-05-11: Use the Alpine email client in your Linux terminal
- 2021-05-06: Resolve DHCPD and HTTPD startup failures with Ansible
- 2021-05-03: Why I support systemd’s plan to take over the world
- 2021-04-15: Resolve systemd-resolved name-service failures with Ansible.
- 2021-01-22: Configure a Linux workspace remotely from the command line
- 2021-01-21: Convert your Windows install into a VM on Linux
- 2021-01-02: How to configure an Apache web server (Updated)
- 2020-10-29: Managing resources with cgroups in systemd
- 2020-10-13: My first day using Ansible
- 2020-09-16: Analyze Linux startup performance
- 2020-09-11: Poll: What do you think of the save icon?
- 2020-08-20: Using systemd journals to troubleshoot transient problems
- 2020-07-20: Analyzing systemd calendar and timespans
- 2020-07-07: Use systemd timers instead of cronjobs
- 2020-06-02: Control your computer time and date with systemd
- 2020-05-27: Manage startup using systemd
- 2020-05-11: Start using systemd as a troubleshooting tool
- 2020-05-07: Using the systemctl command to manage systemd units
- 2020-05-04: Understanding systemd at startup on Linux
- 2020-04-30: Edit music recordings with Audacity on Linux
- 2020-04-17: Learning to love systemd
- 2020-01-02: How to use cron in Linux: Updated
- 2019-12-23: 10 resources to become a better Bash user
- 2019-12-21: Testing your Bash script
- 2019-12-20: How to add a Help facility to your Bash program
- 2019-12-19: Creating a Bash script template
- 2019-12-18: Introduction to automation with Bash scripts
- 2019-11-28: Monitoring Linux and Windows hosts with Glances
- 2019-10-23: How to program with Bash: Loops
- 2019-10-22: How to program with Bash: Logical operators and shell expansions
- 2019-10-01: How to program with Bash: Syntax and tools
- 2019-03-29: How to submit a bug report with Bugzilla
- 2019-03-07: What’s your favorite Linux terminal emulator?
- 2019-02-11: What’s the right amount of swap space for a modern Linux system?
- 2019-01-01: Is the Linux philosophy still relevant in 2019?
- 2018-12-20: 13 Linux must-reads in 2018
- 2018-12-03: Manage NTP with Chrony
- 2018-11-21: Coupled commands with control operators in Bash
- 2018-11-02: Team of one? The Zen postmortem
- 2018-10-30: Working with data streams on the Linux command line
- 2018-09-26: An introduction to swap space on Linux systems
- 2018-09-12: How to build rpm packages
- 2018-07-31: How to be the lazy sysadmin
- 2018-06-25: 8 reasons to use the Xfce Linux desktop environment
- 2018-04-24: An introduction to the GNU Core Utilities
- 2018-03-29: How to configure multiple websites with Apache web server
- 2018-02-22: How to configure an Apache web server
- 2017-12-20: 5 must-read sysadmin articles from 2017
- 2017-12-19: How to generate webpages using CGI scripts
- 2017-12-05: Using sudo to delegate permissions in Linux
- 2017-11-06: How to use cron in Linux
- 2017-11-01: SpamAssassin, MIMEDefang, and Procmail: Best Trio of 2017
- 2017-10-20: Using the Alpine Linux email client to access messages from any network
- 2017-07-27: Tilix brings powerful terminal emulation to Fedora
- 2017-06-22: A user’s guide to links in the Linux filesystem
- 2017-06-08: How to upgrade your system BIOS using FreeDOS
- 2017-05-29: 11 reasons to use the GNOME 3 desktop environment for Linux
- 2017-05-25: An introduction to Linux’s EXT4 filesystem
- 2017-04-27: Testing Linux hardware compatibility with USB sticks
- 2017-04-07: Build your own DNS server on Linux
- 2017-04-06: Introduction to the Domain Name System (DNS)
- 2017-03-16: An introduction to GRUB2 configuration for your Linux machine
- 2017-03-09: 8 reasons to use LXDE
- 2017-02-20: An introduction to the Linux boot and startup processes
- 2017-01-26: Using rsync to back up your Linux system
- 2017-01-18: 10 reasons to use Cinnamon as your Linux desktop environment
- 2016-12-30: A Linux networking guide to CIDR notation and configuration
- 2016-12-13: Best Couple of 2016: Display manager and window manager
- 2016-11-28: Managing devices in Linux
- 2016-10-31: An introduction to Linux filesystems
- 2016-09-22: A Linux user’s guide to Logical Volume Management
- 2016-08-31: An introduction to Linux network routing
- 2016-07-28: How to upgrade your Fedora Linux system with DNF
- 2016-06-28: How to configure networking in Linux
- 2016-05-30: How I used a Raspberry Pi to connect with my grandkids
- 2016-03-15: Firewall your home network with a Raspberry Pi
- 2016-03-03: System statistics with sar and the /proc filesystem
- 2016-02-09: 4 open source tools for Linux system monitoring
- 2016-02-02: Getting started with the Krusader file manager
- 2016-01-20: A minimalistic approach to debugging
- 2016-01-15: ScyllaDB: Cassandra compatibility at 1.8 million requests per node
- 2015-12-10: Best Couple of 2015: tar and ssh
- 2015-11-26: Give back and support open source
- 2015-11-20: Linux monitoring tools to keep your hardware cool
- 2015-11-16: My mom requests a Linux computer
- 2015-10-26: A troubleshooting process for Linux problems
- 2015-09-21: Everything is a file
- 2015-09-09: Human Interface Guidelines (HIG) for the Unix shell
- 2015-08-21: Winners announced for the Great Command-Line Challenge
- 2015-08-12: A comprehensive guide to Dolphin, a KDE file manager
- 2015-07-07: Take on The Great Command-Line Challenge
- 2015-06-29: The job is not done until the documentation is complete
- 2015-06-02: Take control of your file systems with Konqueror
- 2015-05-27: Get started with Midnight Commander, a Linux file manager
- 2015-04-21: 8 Linux file managers to try
- 2015-04-14: 9 reasons to use KDE
- 2015-03-24: How to do fast, repeatable Linux installations
- 2015-02-03: How the 9 major tenets of the Linux philosophy affect you
- 2015-01-30: How I landed a job in open source
- 2014-12-02: The impact of the Linux philosophy
- 2011-06-10: Solving city problems the open source way
Enable SysAdmin (Red Hat)
- 2022-08-25: How to tune the Linux kernel with the /proc filesystem
- 2021-07-07: What is a sysadmin?
- 2021-04-20: 3 steps to identifying Linux system automation candidates
- 2020-12-28: 11 Linux command line guides you shouldn’t be without
- 2020-11-17: Using an Ansible playbook to manage workstation and server updates
- 2020-11-12: How to create an Ansible Playbook
- 2020-09-16: Linux hardware: The history of memory and storage devices
- 2020-09-09: Should I run my desktop 24/7?
- 2020-07-23: The central processing unit (CPU): Its components and functionality
- 2020-07-21: Computer history and modern computers for sysadmins
- 2020-06-23: Linux hardware: Converting to solid-state disks (SSDs) on the desktop
- 2020-06-18: Sysadmin careers: Curiosity is an asset
- 2020-05-27: Sysadmin careers: The 5 steps of problem solving
- 2020-05-20: 4 problem solving strategies for sysadmins
- 2020-04-20: Using sudo to delegate permissions in Linux
- 2020-04-17: Real sysadmins don’t sudo
- 2019-10-17: Regular expressions: Pulling it all together
- 2019-10-16: Regex and grep: Data flow and building blocks
- 2019-10-15: Getting started with regular expressions: An example
- 2019-10-14: Introducing regular expressions
- 2019-10-01: Replacing rc.local in systemd Linux systems
- 2019-05-28: How to hire the right sysadmin for the job
- 2019-05-22: How remote work can work for sysadmins
Enable Architect (Red Hat)
- 2022-11-25: Why it’s important for leaders to mentor and support others
- 2022-10-28: How to install or update software that’s not in your Linux repository
Linux Magazine
2008-06: Complete Kickstart This article first appeared in the June 2008 issue but is no longer maintained there. This link is to a copy of it on Linux Today.