Articles by Dejan Panovski
Debian vs Ubuntu Server: Which One Should You Use?
Side-by-side comparison of Debian and Ubuntu Server covering release cycles, package freshness, security, cloud support, and ease of setup to help you pick the right one.

apt vs apt-get: The Difference and When to Use Each
apt and apt-get are not the same tool: apt is built for interactive terminal use, apt-get for scripts and automation. Compare their commands and see when to use each.

How to Manage Node.js Processes with PM2
How to install PM2, run and manage Node.js processes with clustering, zero-downtime reloads, log rotation, and systemd integration that survives reboots.

How to Check Your Ubuntu Version
Check which Ubuntu version you are running with lsb_release, /etc/os-release, or hostnamectl, plus a current release list up to Ubuntu 26.04 LTS.

Bash Parameter Expansion: Defaults, Substrings, and Replacement
Bash parameter expansion handles default values, substrings, string length, pattern trimming, search and replace, and case conversion, all inside the shell.

htop Command in Linux: How to Monitor and Manage Processes
Monitor Linux processes in real time with htop: read CPU and memory meters, sort and filter the process list, and kill or renice processes from one screen.

How to Concatenate Strings in Bash
Concatenate strings in Bash by placing variables side by side, appending with the += operator, or formatting with printf -v. Includes examples for variables, literals, and command output.

smartctl Command in Linux: Check Disk Health with SMART
Use smartctl in Linux to check SMART health, read disk attributes, run self-tests, troubleshoot USB enclosures, and monitor NVMe wear.

find Command in Linux: Search Files and Directories
The find command searches for files and directories by name, type, size, date, permissions, and more. This guide covers practical examples including wildcards, exec actions, and combining find with grep.

What Is Load Average in Linux: 1, 5, and 15 Minute Averages
Load average explained for Linux: what the three numbers from uptime and top mean, how they relate to CPU cores, and how to tell a busy system from an overloaded one.

How to Extract (Unzip) tar.gz Files in Linux
Extract tar.gz and tgz archives with the tar command. Covers extracting to a directory, pulling specific files, wildcards, stdin piping, and listing archive contents.

How to Install Claude Code on Ubuntu and Linux
Install Claude Code on Ubuntu, Debian, and other Linux distributions using the recommended native installer, official package-manager repositories, or npm.

How to Create a Directory in Linux: mkdir Command Examples
Create single, multiple, and nested directories in Linux with mkdir, set permissions with -m, and fix 'Permission denied' and 'No such file or directory' errors.

ffmpeg Command in Linux: Convert, Compress, and Extract Media
Practical ffmpeg examples for converting between formats, compressing video with CRF, extracting audio, trimming clips, resizing video, and batch processing files on Linux.

Bash if...else Statement
A complete guide to Bash if, if...else, and if...elif...else statements with practical examples, test operators, and one-line syntax.

Fix npm E401: Unable to Authenticate
Resolve the npm E401 'Unable to authenticate' error by fixing stale tokens, registry mismatches, and broken .npmrc auth settings for public and private registries.

du Command in Linux: Check Disk Usage
The du command reports disk space used by files and directories. This guide covers human-readable output, summary totals, depth limiting, sorting by size, and practical examples.

How to Install and Use Super Productivity on Linux
Install Super Productivity on Linux with Flatpak, Snap, AppImage, deb, rpm, Docker, or source, then create your first task and start tracking time.

Bash case Statement: Match Patterns in Shell Scripts
The Bash case statement matches a value against a list of patterns and runs the corresponding block. This guide explains argument parsing, syntax, glob patterns, multiple matches, and fall-through behavior.

Linux Wildcards and Globbing Explained
How shell wildcards and globbing work in Linux: the *, ?, and [...] patterns, brace expansion, why globbing is not regex, and how to control it with quoting.

