Latest blogs
New and familiar pieces land here from time to time for whenever you feel like dipping back into something Linux related.
-
Which C Version Does the Linux Kernel Use? C90, C99, or C11 – Explained
The Linux kernel, the heart of the world’s most widely used operating system, is written primarily in C. As a cornerstone of modern computi…
-
How to Fix 'sudo Group Doesn't Exist' Error When Running usermod on CentOS 7: Create Sudo Group Correctly
If you’ve ever tried to grant sudo privileges to a user on CentOS 7 by running `usermod -aG sudo <username>`, you might have encountered th…
-
How to Fix 'stdin: is not a tty' SSH Error When Executing Remote Commands Through Another Machine
If you’ve ever tried to run a remote command over SSH—especially through intermediate machines (e.g., jump hosts)—you may have encountered…
-
How to Show Job Count in Bash Prompt Only When Nonzero (Avoid Clutter)
The Bash shell prompt (`PS1`) is more than just a static string—it’s a dynamic tool that can provide real-time context to boost your produc…
-
How to Show Current Git Branch with Coloring in Linux Terminal (Like Git Bash on Windows)
If you’ve used Git Bash on Windows, you’ve likely noticed its handy feature: the terminal prompt automatically displays the current Git bra…
-
How to Show Complete Arguments in strace (Even with Curly Brackets) When -s Isn't Enough
`strace` is an indispensable tool for debugging and understanding how programs interact with the Linux kernel. It traces system calls (sysc…
-
How to Show All Keys in Redis in One Line: Fixing the 'redis-cli keys *' Error
Redis, the popular in-memory data store, is widely used for caching, session management, and real-time analytics. A common task when workin…
-
Should We Use Multiple Acceptor Sockets for Large Connections? SO_REUSEPORT Benefits & NGINX Case Study
In the era of cloud computing, microservices, and high-traffic web applications, handling **millions of concurrent connections** is no long…
-
Child Process Termination: exit vs return vs _exit in fork() - Which Should You Use?
When working with process creation in Unix-like systems, the `fork()` system call is a cornerstone, enabling the creation of new child proc…
-
Should the FUSE getattr Operation Always Be Serialised? Implications for RESTful API-Backed Filesystems
Filesystems are the backbone of how we interact with data, but traditional filesystems are bound to local storage. Today, with the rise of…
-
Libc++ vs Libstdc++: Choosing the Right Standard Library for C/C++ CLI Executables on macOS & Linux with OpenCV
When developing C/C++ CLI (Command-Line Interface) applications—especially those leveraging libraries like OpenCV for computer vision—one c…
-
Linux `cp` Command: Should You Add a Trailing Slash After Source and Destination When Copying Folders?
The `cp` command is one of the most frequently used tools in Linux for copying files and directories. While copying individual files is str…
-
Linux Memory Usage: Should You Use VmSize, VmRSS, or a Combination for Accurate Stats?
For system administrators, developers, and DevOps engineers, understanding how Linux processes consume memory is critical for optimizing pe…
-
Should You Run Android Studio with Sudo on Linux? Fixing Permission Issues & Best Practices
If you’re an Android developer using Linux, you’ve likely encountered the dreaded "Permission denied" error while working with Android Stud…
-
How to Fix Redis 'Short read or OOM loading DB. Unrecoverable error, aborting now' Error After Server Restart: A Guide for Beginners
Redis is an open-source, in-memory data store widely used for caching, session management, real-time analytics, and more. Its speed and sim…
-
When Can read(2) Return a Short Read on Linux Filesystems? (Non-EOF Scenarios Explained)
The `read(2)` system call is a cornerstone of input/output (I/O) operations in Linux, allowing programs to read data from file descriptors.…
-
Short Command to Find Total Size of Files Matching a Wildcard (e.g., *.jpg) in Linux/Shell
As a Linux user, whether you’re a system administrator, developer, or casual user, there are times when you need to quickly calculate the t…
-
Shellshock Vulnerability (CVE-2014-7169): Explaining the Inner Workings of `env X='() { (a)=>' sh -c` Command
In September 2014, a critical vulnerability in the **Bourne Again Shell (bash)** sent shockwaves through the cybersecurity community. Dubbe…
-
How to Create a Shell Script to Monitor Log Files with `tail -f`, Detect Error Keywords, and Execute Commands
In today’s digital landscape, applications and systems generate massive volumes of log data—everything from user actions to system errors.…
-
How to Write Variable Contents to a File in Shell Scripting: Step-by-Step Guide
Shell scripting is a powerful tool for automating repetitive tasks, managing system configurations, and processing data in Unix-like enviro…
-
Shell Variable Issue: Why mkdir Fails with ~/Path in Scripts (and How to Fix It)
If you’ve ever written a shell script and encountered an error like `mkdir: cannot create directory ‘~/myfolder’: No such file or directory…
-
Tar: Not Found in Archive Error: Why Using *.gz with tar -xzf Fails (and How to Fix It)
If you’ve spent time working with Linux or Unix command-line tools, you’ve likely used `tar` to archive and compress files. The `tar -xzf`…
-
What is the Shell shift Command? Understanding shift with Numbers (e.g., shift 3) in Scripts
In shell scripting, handling command-line arguments is a fundamental task. Whether you’re writing a simple script to process files or a com…
-
Why Does a Shell Script Work Without a Shebang Line? Executing ./myscript.sh in Bash Explained
If you’ve ever written a shell script, you might have noticed something curious: even if you forget to add the `#!/bin/bash` (or similar) l…
Topic collections
Each section is simply a place to wander, scan a few ideas, and return later whenever a thread feels worth following again.
-
Bash Scripting
Getting Started with Bash Scripting: A Beginner’s Guide
If you’ve ever worked in a Linux or macOS terminal, you’ve probably used **Bash** (Bourne Again SHell) without realizing it. Bash is the default command-line shell for most Unix-based systems, and it’s more than just a…
-
iptables Firewall Tutorial
Getting Started with Iptables Firewall: A Beginner’s Guide
In an era where cyber threats are ubiquitous, securing your Linux system is non-negotiable. A firewall acts as a gatekeeper, controlling incoming and outgoing network traffic based on predefined rules. For Linux users,…
-
Linux Basics
Getting Started with Linux: A Beginner’s Guide
If you’ve ever heard tech enthusiasts rave about “Linux” but felt intimidated by its reputation as a “geek-only” operating system, this guide is for you. Linux is not just for programmers or system administrators—it’s a…
-
Linux Kernel Basics
Getting Started with Linux Kernel: A Beginner’s Guide
The Linux kernel is the heart of every Linux-based operating system, from smartphones and servers to supercomputers and embedded devices. It acts as the bridge between hardware and software, managing resources like CPU,…
-
Linux Performance Tuning
Getting Started with Linux Performance Tuning: A Beginner’s Guide
Linux is renowned for its stability, flexibility, and efficiency, but even the most robust systems can underperform over time. Whether you’re running a personal laptop, a home server, or a production environment, **perf…
-
Systemd Service Management
Getting Started with Systemd Service Management: A Beginner’s Guide
If you’ve used a Linux system in the last decade, you’ve almost certainly interacted with **systemd**—the init system and service manager that has become the de facto standard for most Linux distributions (e.g., Ubuntu,…