Articles by Dejan Panovski
Bash until Loop
Repeat commands until a condition becomes true with the Bash until loop. Includes syntax, practical examples, and comparisons with the while loop.

Linux File Permissions Explained
Linux file permissions control who can read, write, and execute files and directories. Learn how to inspect and change permissions with ls, stat, and chmod.

How to Show Line Numbers in Vim and Vi
Turn on line numbers in Vim or Vi for the current session, set them by default in .vimrc or init.lua, and switch between absolute, relative, and hybrid numbering.

Chmod Recursive: Change File Permissions Recursively in Linux
Use chmod -R to change permissions recursively in Linux. This guide covers numeric and symbolic modes, examples using find, common patterns, and safety tips.

chmod 777: What It Means and Why You Should Never Use It
chmod 777 grants every user full control of a file or directory. See why it is risky and when to use safer 755 or 644 permissions instead.

chmod Command in Linux: Change File and Directory Permissions
The chmod command changes file and directory permissions in Linux. This guide covers what chmod 755, 644, 700, and 600 mean, how to use symbolic and numeric modes, and how to apply permissions recursively.

sftp Command in Linux: Transfer Files Securely
The sftp command transfers files securely over SSH. Connect to servers, upload and download files, resume transfers, and automate batch jobs.

How to Check if a File or Directory Exists in Bash
This guide explains how to check if a file or directory exists in Bash using test and if statements, with clear examples for common file checks.

mv Command in Linux: Move Files and Directories
Move and rename files and directories in Linux with the mv command, including overwrite prompts, backups, the -T option, and cross-filesystem moves.

How to Save a File and Exit Vim / Vi
Save a file and quit Vim or Vi with :w, :wq, :q!, :x, ZZ, and ZQ. This guide explains the common save, exit, discard, and read-only file commands.

How to Install Python on Ubuntu 24.04
Install Python on Ubuntu 24.04 using the default Ubuntu packages, the deadsnakes PPA for newer versions, or a source build. Includes pip and virtual environments.

cd Command in Linux: Change Directories
Change directories in Linux with cd, covering absolute and relative paths, home and parent shortcuts, symbolic links, CDPATH, and common errors.

Install deb Files on Ubuntu: apt, dpkg, and gdebi
Install local .deb files on Ubuntu with apt, dpkg, or gdebi. Fix dependency errors, inspect packages, install via GUI, and remove them safely.

Linux Folder Size: How to Check File and Directory Sizes
Check folder and file sizes in Linux with du. Compare directory totals, rank subdirectories, exclude paths, and check free space with df.

Regular Expressions Explained: How Regex Patterns Work
Regular expressions explained from the ground up: how anchors, character classes, quantifiers, and groups build patterns that work in grep, sed, and awk.

zip Command in Linux: Zip Files and Directories
Create ZIP archives in Linux with the zip command. Zip directories recursively, exclude files, add a password, and split large archives.

git worktree: Work on Multiple Branches at Once
Use git worktree to check out multiple branches in separate directories, handle urgent fixes without stashing, and clean up linked worktrees safely.

git log Command: View Commit History
Browse commit history with git log: show the last commit, filter by author, date, or keyword, search by code change, track a file across renames, and read branch graphs.

whoami Command in Linux: Display the Current User Name
The whoami command shows the current effective username on Linux. This guide explains syntax, practical examples, shell script usage, and how it compares to id -un and $USER.

killall Command in Linux: Kill Processes by Name
Use the Linux killall command to stop processes by name, select signals, filter by user or age, confirm matches, and compare killall with kill and pkill.

