Articles
Learning guides, tutorials and troubleshooting articles in one list. Filter by keyword or switch categories to narrow things down. LPIC-1 objective articles live in the LPIC-1 hub.
232 articles
Docker for Linux Users: An Introduction
Understand Docker from first principles by building on your knowledge of Linux processes, namespaces, and cgroups. Grasp images, containers, and Dockerfiles as mechanics, not memorization.
~11 min Read → GuidesWhat to Learn After Linux: A Roadmap
After mastering basic Linux commands, see where Docker, Git, and AWS connect to your Linux knowledge. A roadmap for choosing your next step without detours.
~9 min Read → Troubleshooting"command not found" for Your Own Scripts
Fix command not found for a script you wrote. Tell it apart from Permission denied, then run with ./, chmod +x, add to PATH, and clear the hash cache.
~10 min Read → TroubleshootingFixing "Cannot allocate memory"
Fix Cannot allocate memory (ENOMEM) even when RAM looks free by diagnosing overcommit accounting, ulimit, and max_map_count, then fixing it permanently.
~12 min Read → Troubleshooting"No such file or directory" When the File Exists
ls shows the file, yet you get No such file or directory. Isolate hidden chars, CRLF, broken links, and a missing dynamic linker.
~10 min Read → GuidesShould You Switch? zsh and fish vs bash
When it is worth switching from bash to zsh or fish, migration steps, carrying over your config, compatibility traps, and how to roll back.
~11 min Read → Tutorialschroot: Changing the Root Directory to Isolate an Environment
Switch the root directory a process sees with chroot. Covers preparing shared libraries, recovering a broken system from a live USB, and why chroot is not a security boundary.
~10 min Read → TroubleshootingFixing Clock Skew and Certificate Errors
Diagnose "Clock skew detected" build warnings and "certificate is not yet valid" errors from a wrong clock, verify with date/openssl, and fix it for good.
~10 min Read → Tutorialscomm and join: Comparing and Joining Files
Use comm to show common lines and differences across two files in 3 columns, and join to merge rows on a shared key. Includes the sorted-input gotcha.
~10 min Read → TroubleshootingDiagnosing "Connection timed out"
A silent, long wait with no reply. Triage a firewall DROP, an unopened security group, a dead service, and a path blackhole, from your host outward.
~12 min Read → GuidesContainers vs Virtual Machines (VMs): The Basics
Understand containers vs virtual machines through kernel sharing, namespaces, and cgroups. See the speed-vs-isolation trade-off and how to choose before learning Docker.
~12 min Read → GuidesSetting Up Linux for Developers
A practical guide to setting up a Linux dev environment — the essential tools to install first.
~12 min Read → TroubleshootingFixing "device is busy" on umount
umount fails with busy. Find who holds the filesystem with fuser/lsof and detach it safely.
~11 min Read → GuidesChoosing an Editor: vim, nano, emacs, VS Code
vim, nano, emacs, VS Code — which one should you actually use? Let's sort out each editor's strengths and how to choose, together with Lina.
~11 min Read → Tutorialsenv Command
Run a command with a modified environment without touching your shell. Set variables temporarily, use env -i / -u / -C, and write portable shebangs.
~9 min Read → GuidesA Mental Model for Permissions
What do rwx and owner/group/other actually mean? Let's turn the cryptic string in ls -l into a simple grid of three people times three actions, together with Lina.
~11 min Read → TroubleshootingRepairing Filesystem Corruption with fsck
Repair ext4 corruption safely. Why you must unmount first, how to check the root FS, -n/-y/-f options, and the XFS difference.
~12 min Read → Tutorialsfuser: Finding Processes Using Files
Find the culprit behind umount "target is busy" with fuser, then kill it safely. Includes a fuser vs lsof comparison.
~10 min Read → TutorialsGNU parallel
Run shell commands in parallel to speed up batch work. Placeholders, job control, output ordering, and joblog resume explained, with how parallel differs from xargs.
~10 min Read → TroubleshootingFixing Repository GPG Key Errors (NO_PUBKEY)
Tell a NO_PUBKEY error from an expired EXPKEYSIG one, fetch the public key into a keyring, bind it with signed-by, and restore apt signature verification safely.
~11 min Read → Tutorialshexdump and xxd: Inspecting Binary Data in Hex
Compare hexdump, xxd, and od at a glance. Use -C, xxd -r, and od -t x1z to peek at binary, spot CRLF and BOM bytes, and edit bytes by hand.
~9 min Read → GuidesHow Linux Boots: From BIOS/UEFI to Login
What actually happens between power-on and the login prompt? Walk through BIOS/UEFI, GRUB, the kernel, initramfs, and systemd, with a way to diagnose each stage.
~13 min Read → TroubleshootingDiagnosing "Input/output error"
A file op returns EIO. Read the kernel log with dmesg, then tell a failing disk from FS corruption or a disconnect.
~11 min Read → Tutorialsionice: Controlling Disk I/O Priority
Stop backups and rsync from slowing down your server. Use ionice to set idle/best-effort/realtime classes, apply to running PIDs, and check the BFQ scheduler when it has no effect.
~9 min Read → TroubleshootingWhen Linux Won't Boot - Kernel Panic and Emergency Mode
First steps when Linux won't boot. Triage kernel panic, the initramfs prompt, GRUB and systemd emergency mode, then recover with fstab fixes, fsck and an older kernel.
~12 min Read → GuidesChoosing a Linux Distribution: Ubuntu, Debian, Rocky, Arch
Compare Ubuntu, Debian, Rocky, and Arch by release model, support window, and packaging. Work backward from your use case to the right distro.
~13 min Read → GuidesLinux Filesystem Types: ext4 vs xfs vs btrfs
Compare ext4, xfs, and btrfs in practice. Decide by CoW, snapshots, and resize limits, and check your own filesystem with df -T and lsblk.
~13 min Read → TroubleshootingFixing "cannot set LC_ALL" Locale Warnings
Diagnose "cannot set LC_ALL" and "setlocale" warnings from a missing locale, confirm with locale -a, generate it with locale-gen, and stop SSH forwarding for good.
~10 min Read → Tutorialsmktemp Command: Creating Safe Temporary Files
Why fixed-name or $$ temp files are dangerous, and how mktemp creates unique, owner-only temporaries that trap cleans up reliably.
~8 min Read → Tutorialsnl Command: Numbering Lines
Learn the nl command through a friendly dialogue. Add line numbers to text, see how nl differs from cat -n on blank lines, and tune width, separator, start number, and format.
~9 min Read → TroubleshootingFixing Broken Dependencies and Held Packages
When apt holds updates back or stops with unmet dependencies, learn to tell held from broken and repair the dependency tree without making it worse.
~10 min Read → GuidesPackage Managers Compared: apt, dnf, pacman, zypper
See apt, dnf, pacman, and zypper on one map. Learn the command pattern once and handle any distro you land on.
~12 min Read → GuidesProcess States and Lifecycle in Linux
What do ps R / S / D / T / Z mean? The flow from fork to exit and reap, plus the truth about zombie and orphan processes.
~12 min Read → Tutorialspv: Monitoring Pipe Progress with a Progress Bar
Use pv (Pipe Viewer) to put a progress bar on any pipe. End the anxiety of staring at a silent dd or cp wondering if it is still running.
~9 min Read → Tutorialsread Command: Interactive Input in Shell Scripts
Learn how to use the read command to capture keyboard input and read files line by line, explained through a friendly conversation. Covers -p, -s, and the while read pattern.
~9 min Read → Tutorialsrealpath and readlink
Learn how realpath and readlink resolve symlinks and relative paths into absolute paths. Covers -f / -e / -m, --relative-to, and safe scripting patterns.
~8 min Read → Guidesroot vs sudo
Is root the godlike account that can delete anything? Why shouldn't you use it day to day, and use sudo instead? Let's sort out what admin rights really are, together with Lina.
~10 min Read → TroubleshootingFixing SSH Disconnects: Keepalive and Timeouts
When SSH drops after a pause, triage idle timeouts vs missing keepalive and fix it for good with ServerAlive / ClientAlive.
~12 min Read → GuidesSSH Key vs Password Authentication
Why SSH key authentication is safer than passwords. The public-key crypto behind it, plus how to create, install, and lock down keys in practice.
~11 min Read → TroubleshootingFixing "sudo: unable to resolve host"
Treat the "unable to resolve host" warning as a mismatch between hostname and /etc/hosts, then fix the 127.0.1.1 line to clear both the warning and the delay.
~9 min Read → TroubleshootingDiagnosing Swap Thrashing
Spot swap thrashing with vmstat si/so when a server suddenly slows, find the culprit process, and fix it permanently with swappiness and cgroups.
~11 min Read → TroubleshootingDecoding "syntax error near unexpected token"
Read the bash syntax error near unexpected token message correctly. Understand what the token points to, then debug fi/then/done, (, newline, and end of file.
~10 min Read → Tutorialstac and rev - Reversing Lines and Characters
Learn with Lina and Linny-senpai! tac flips the order of lines, rev flips the characters inside each line. Two reverse commands with opposite jobs, explained for beginners.
~7 min Read → Tutorialstar in Practice: Incremental Backups and Exclusions
A practical tar workflow for incremental backups. Use --listed-incremental for level-0/level-1 diffs, --exclude to skip noise, and -C plus --strip-components to control where and how archives extract.
~10 min Read → Tutorialstaskset: Setting CPU Affinity in Linux
Pin a process to specific CPU cores with taskset. Launch-time pinning with -c, runtime reassignment with -p, plus benchmarking and core-isolation workflows.
~10 min Read → GuidesCharacter Encoding: UTF-8 and Mojibake Explained
Understand character encoding and UTF-8, why mojibake happens, and how to check and convert encodings with file, iconv, nkf, and locale.
~11 min Read → TroubleshootingFixing "Text file busy"
A running binary can't be overwritten with cp. Find the process with lsof and swap it in safely with rename.
~9 min Read → TroubleshootingFixing "Too many authentication failures"
Understand how offering too many ssh-agent keys exceeds MaxAuthTries, and fix it for good with IdentitiesOnly and ~/.ssh/config.
~11 min Read → Tutorialstree Command: Visualizing Directory Structure
When ls alone makes it hard to grasp a layout, tree visualizes the whole directory structure at once. Learn to limit depth with -L, show folders only with -d, and exclude node_modules with -I, explained step by step.
~8 min Read → Tutorialsyes Command: Automating Confirmations
Learn with Lina and Linny-senpai! When typing y to every "Are you sure?" prompt gets old, see how yes auto-answers them, why it is dangerous, and the safer alternatives.
~8 min Read → GuidesAbsolute vs Relative Paths
How do you read a path? Let's sort out absolute paths (starting from /), relative paths (from where you are), and what ., .., and ~ mean, together with Lina.
~10 min Read → TroubleshootingFixing "Address already in use"
Find the process holding the port with ss / lsof / fuser, release it safely, and handle TIME_WAIT and double-start cases.
~10 min Read → TutorialsBash Arrays: Indexed and Associative Arrays
Learn bash indexed and associative arrays step by step - declaring, accessing, looping, and editing elements - plus quoting and sparse-array pitfalls.
~9 min Read → Tutorialsat Command: One-Time Job Scheduling on Linux
Schedule one-time jobs with the at command. Confirm atd, write time specs, manage jobs with atq and atrm, and know when to use at instead of cron.
~8 min Read → TroubleshootingFixing "bad interpreter"
A script fails with bad interpreter. Tell CRLF line endings from a wrong shebang path using file/cat -A, then fix it with dos2unix/sed.
~9 min Read → Tutorialsbase64 Command: Encoding and Decoding Basics
Learn the base64 command with Lina and Linny-senpai. Encode and decode strings and files, avoid the echo newline trap, control wrapping with -w, and learn the key point that base64 is not encryption.
~9 min Read → TutorialsBash Strict Mode: set -euo pipefail Explained
Catch hidden bugs early with set -euo pipefail. Learn errexit, nounset, pipefail, their pitfalls, and IFS settings for safer shell scripts.
~10 min Read → Tutorialsbat: A cat Clone with Syntax Highlighting
A beginner-friendly walkthrough of bat. Display files with syntax highlighting, line numbers, and Git diff markers; fix the Ubuntu batcat naming issue; strip decorations to behave like cat; and colorize man pages.
~9 min Read → TutorialsBrace Expansion: {1..10} and More
Learn with Lina and Linny-senpai! Master {1..10} and {a,b,c} to create numbered files and directories fast, explained step by step for beginners.
~10 min Read → Tutorialsmd5sum and sha256sum - Verifying File Integrity
Learn with Linny-senpai and Lina! What a hash is, computing one with sha256sum, verifying with -c, the difference between corruption and tampering, and why MD5 is discouraged today — all from a beginner's perspective.
~10 min Read → Tutorialschmod: Numeric vs Symbolic Modes
Learn with Lina and Linny-senpai! Understand chmod numeric mode (644, 755) and symbolic mode (u+x, go-w), the r=4 w=2 x=1 math, and when to use each in a beginner-friendly walkthrough.
~10 min Read → GuidesTerminal Shortcuts: Readline Keybindings
What are Ctrl+R and Ctrl+A even for? Learn the Readline shortcuts that make your terminal fly, hands-on with Lina.
~9 min Read → TutorialsCommand Substitution: Capturing Output with $(...)
Learn with Lina and Linny-senpai! Capture command output into variables with `$(...)`, see how it differs from backticks, and understand why you should quote it.
~10 min Read → TroubleshootingDiagnosing "Connection refused"
The host is reachable but actively rejects you. Tell a stopped service from a blocked port, and refused from timeout, in the fewest steps.
~11 min Read → TroubleshootingWhen Cron Jobs Don't Run
Diagnose why a cron job won't run fast. A checklist that walks the daemon, logs, PATH, environment, schedule syntax, and permissions in order.
~11 min Read → Tutorialsdate Command - Formatting and Calculating Dates
Learn with Lina and Linny-senpai! Use date to show the current time, format output with %Y, calculate dates like yesterday or 3 days ago, convert epoch seconds, and switch time zones.
~10 min Read → Tutorialsdd Command: Disk Imaging and Safe Usage
Clone disks and write ISO images to USB with dd safely. Verify the target with lsblk and avoid wiping the wrong device, from imaging to progress display.
~10 min Read → TroubleshootingDisk Full but df Shows Space
Diagnose deleted-file handles and inode exhaustion with lsof / df -i.
~9 min Read → Tutorialsdmesg: Reading Kernel Ring Buffer Messages
Read the kernel ring buffer with dmesg. From permissions, timestamps, and level filters to triaging disk I/O, OOM, and hardware faults.
~9 min Read → TroubleshootingFixing "Could not get lock"
When apt stalls with "Could not get lock", find the process holding the lock, release it safely, and recover an interrupted dpkg - in the fewest steps.
~10 min Read → TutorialsExit Codes: Using $? and && ||
Learn with Lina and Linny-senpai! Understand exit status, check results with $?, and branch your commands with && and || in a beginner-friendly walkthrough.
~10 min Read → Tutorialsfd: A Simpler, Faster Alternative to find
find has complex syntax and is slow. With fd, just type `fd pattern` for a recursive search that respects .gitignore. From install gotchas to real-world patterns.
~9 min Read → Tutorialsfile Command: Detecting File Types
Extensions can lie. Learn how the file command inspects content to reveal what a file really is, explained through Lina and Linny-senpai's dialogue.
~8 min Read → Tutorialsflock: Preventing Concurrent Runs with File Locks
Stop cron jobs and scripts from overlapping with flock. Exclusive locks, timeouts, and self-locking patterns explained for real-world ops.
~8 min Read → TroubleshootingFixing "fork: Resource temporarily unavailable"
Diagnose why fork fails with EAGAIN by checking the per-user ulimit, system pid_max, and cgroup TasksMax in order, then fix it permanently.
~11 min Read → Tutorialsfzf: Fuzzy Finder for the Command Line
fzf is a command-line fuzzy finder. Search history with CTRL-R, pick files with CTRL-T. Covers install, shell integration, search syntax, and preview.
~9 min Read → Tutorialsgetopts Basics
Parse command-line options (-a, -b value) robustly in Bash with getopts. Covers optstring, OPTARG, OPTIND, silent-mode error handling, and how getopts differs from getopt.
~11 min Read → TutorialsGlobbing and Wildcards
A beginner-friendly dialogue tutorial. Learn how `*`, `?`, and `[]` differ, how brace expansion is a separate mechanism, and avoid the classic traps with extglob, dotfiles, and no-match behavior.
~12 min Read → TutorialsGPG Basics: Encrypting, Decrypting, and Signing Files
Encrypt and decrypt files with gpg and verify signatures. Learn when to use public-key vs password mode, with copy-paste examples.
~10 min Read → TroubleshootingDiagnosing High Load Average
Tell CPU-bound from I/O-bound when load average is high. How to read uptime, top, vmstat, and iostat to find the cause.
~11 min Read → TutorialsHistory Expansion: Reusing Commands with !! and !$
From !! / !$ to !string / !:n / :h:t:r / ^old^new^. Use bash history expansion to reuse past commands fast, explained for beginners.
~13 min Read → TroubleshootingFixing "Host key verification failed"
When a rebuilt server or reused IP makes the known_hosts key mismatch, remove the entry with ssh-keygen -R and reconnect safely.
~11 min Read → Tutorialsinotifywait: Watching Filesystem Events
Trigger automation on file changes with inotifywait. close_write vs modify, recursive watch limits, and a copy-paste processing loop.
~10 min Read → Tutorialslsblk and blkid: Inspecting Block Devices and UUIDs
Map device topology with lsblk and read UUID, LABEL, and FS type with blkid. Learn how to grab a stable device identifier for fstab.
~10 min Read → Tutorialslsof
Use lsof to find which process holds a file, socket, or port. Solve device is busy, port conflicts, and deleted-but-open files with copy-paste commands.
~10 min Read → Tutorialsmodprobe and lsmod: Managing Kernel Modules
Use lsmod to inspect loaded kernel modules and modprobe to load or remove them with dependencies. Covers modinfo, blacklist, and load-at-boot.
~10 min Read → Tutorialsncdu: Interactive Disk Usage Analyzer
A beginner-friendly walkthrough of ncdu. Navigate the largest directories with arrow keys, delete files safely on the spot, see how it differs from du, and scan remote servers over ssh.
~9 min Read → Tutorialsnmcli: Managing Networks from the Command Line
Manage NetworkManager with nmcli. Check status, connect to Wi-Fi, set static IPs, and activate connections with copy-paste commands.
~10 min Read → TroubleshootingDiagnosing "No route to host"
There is no path to deliver packets to the host. Triage a missing route, failed ARP, a router, and a firewall REJECT, from your host outward.
~11 min Read → Tutorialsopenssl Command Basics
Learn practical openssl in one pass. Create certificates, compute hashes, encrypt files with AES, and check server certificate expiry with copy-paste commands.
~10 min Read → Tutorialspasswd and chage: Password and Account Aging
Manage passwords and account locking with passwd, and password aging and expiry with chage. Includes how to read /etc/shadow.
~9 min Read → TroubleshootingFixing "Permission denied (publickey)"
Check whether the key is offered, authorized_keys, permissions, and sshd_config from both client and server sides.
~11 min Read → Tutorialsprintf Command: Formatted Output
Learn printf with Linny-senpai and Lina. Covers the difference from echo, format specifiers like %s, %d, and %f, width padding, and escape sequences.
~9 min Read → TroubleshootingFixing "Read-only file system" Errors
A sudden read-only mount? Decide fast whether to remount or run fsck.
~11 min Read → Tutorialsrename Command: Bulk Renaming
Learn with Lina and Linny-senpai! Rename many files at once with the rename command in a beginner-friendly walkthrough, covering the -n dry-run, s/// substitution, and the Perl vs util-linux versions.
~10 min Read → Tutorialsripgrep (rg): Fast Code Search
ripgrep (rg) is a fast grep alternative that respects .gitignore. Covers the difference from grep, install, type/glob filtering, context, and replacement preview.
~9 min Read → Tutorialsrsync in Practice: Backups and Mirroring
Use rsync differential sync for real work - mirroring with --delete, generational backups with --link-dest, excludes, and bandwidth control done safely.
~12 min Read → Tutorialsseq Command: Generating Sequences of Numbers
How do you build the numbers 1 to 100? A beginner-friendly walkthrough of seq. Generate sequences and feed them into for loops to create numbered files. Covers ranges, increments, zero padding, separators, and counting down.
~8 min Read → GuidesUnderstanding Linux Signals
How do SIGTERM, SIGKILL, and SIGHUP differ? Learn how signals work, when to use each, and the logic behind graceful shutdown.
~11 min Read → Tutorialssplit Command: Splitting and Joining Large Files
A beginner-friendly walkthrough of split. Break a file that is too big to handle into pieces, join them back with cat, and verify nothing was lost. Covers size, line, and count splits plus numbered suffixes and integrity checks.
~8 min Read → TutorialsSSH Port Forwarding: Local, Remote, and Dynamic Tunnels
Use -L, -R, and -D to reach databases behind bastions, expose local apps, and run a SOCKS proxy with safe, repeatable SSH tunnels.
~10 min Read → Tutorialssshfs: Mounting Remote Filesystems over SSH
Mount a remote directory locally over SSH with sshfs. Installation, auto-reconnect, fstab automation, unmounting, and common fixes from a practical angle.
~10 min Read → TroubleshootingFixing "certificate verify failed"
Fix "SSL certificate verify failed" in curl and Python. Triage CA bundle, incomplete chain, and clock skew with openssl s_client, then fix each cause.
~11 min Read → TroubleshootingFixing "Stale file handle" on NFS
Recover an NFS Stale file handle with a remount, then pin fsid to stop it recurring.
~11 min Read → GuidesUnderstanding stdin, stdout, and stderr
Why are there two kinds of output? Let's untangle stdin, stdout, and stderr — and when to use redirection and pipes — together with Lina.
~10 min Read → Tutorialssysctl: Tuning Kernel Parameters on Linux
Read, change, and persist Linux kernel parameters with sysctl. Covers runtime changes, /etc/sysctl.d drop-ins, precedence, and verification.
~9 min Read → TroubleshootingDebugging "Failed to start" systemd Services
Diagnose systemctl "Failed to start" fast. Work through status, journalctl, and exit codes to fix ExecStart, permissions, dependencies, and start-limit issues.
~12 min Read → Tutorialstcpdump Basics: Capturing and Reading Packets
Capture packets with tcpdump. From first capture to BPF filters, pcap files, and Wireshark - a practical playbook for diagnosing network issues.
~10 min Read → Tutorialstest and [[ ]] - Conditionals in Shell Scripts
A practical guide to test, [ ], and [[ ]]. Master string, numeric, and file comparisons and avoid quoting bugs with copy-paste templates.
~9 min Read → Tutorialstimeout Command Basics
Learn with Lina and Linny-senpai! Limit how long a command runs and automatically stop hung commands, with exit status 124 and forced kill via -k, explained for beginners.
~10 min Read → Tutorialstraceroute and mtr: Tracing Network Paths and Finding the Slow Hop
Use traceroute to map the path and mtr to measure per-hop loss and latency. Learn what * means and how to read loss to find the slow or lossy segment.
~9 min Read → Tutorialstrap - Signals and Cleanup
Use trap to catch signals and run reliable cleanup. Covers the EXIT pseudo-signal, cleanup functions, and combining trap with set -e for robust scripts.
~11 min Read → Tutorialsulimit: Understanding Resource Limits
Control how many resources a process can use with ulimit. Covers soft vs hard limits, the open files limit, persisting limits via limits.conf and systemd, and diagnosing Too many open files.
~10 min Read → Tutorialswatch Command: Monitor Output at Intervals
Learn with Linny-senpai and Lina! Rerun a command at a set interval and watch its output change. Covers -n intervals, -d highlighting, and quoting pipes.
~10 min Read → Tutorialswc Command: Counting Lines, Words, and Bytes
Learn with Linny-senpai and Lina! Master wc basics (-l lines / -w words / -c bytes / -m characters), the `ls | wc -l` counting pattern, and why bytes and characters differ for multibyte text.
~9 min Read → GuidesWhat Is a Shell?
What exactly is a shell? Let's untangle bash, sh, and zsh — and how they talk to the kernel — together with Lina.
~10 min Read → Tutorialswho, w, and last
Who is logged into this server right now? When did they log in? Use who, w, and last to inspect logged-in users, what each one is doing, and past login history. Covers reboot history and failed logins too, explained step by step in a friendly dialogue.
~8 min Read → Tutorialsgzip vs bzip2 vs xz vs zstd - Choosing a Compression Format
Compare gzip, bzip2, xz, and zstd on ratio and speed, then choose per use case. Covers tar integration, compression levels, and multithreading.
~10 min Read → Tutorialszip and unzip Basics
Learn with Lina and Linny-senpai! Cross-platform compression made simple. Zip it up, unzip it open, and fix garbled filenames from Windows archives along the way.
~10 min Read → Tutorialsbash Parameter Expansion — Understanding ${var:-x} and Related Syntax
bash parameter expansion cheat sheet covering default values, substring extraction, pattern removal, replacement, and case conversion with practical examples.
~12 min Read → Guidesbash vs zsh vs fish - Choosing the Right Shell for You
Compare bash, zsh, and fish shells — key differences in compatibility, auto-completion, and configuration cost. Choose the right shell for your workflow.
~12 min Read → TutorialsUser and Group Management in Practice - Setting Up Multi-User Environments
A practical guide to managing users and groups with useradd, usermod, and groupadd. Covers multi-user setup and reading /etc/passwd on Linux.
~15 min Read → Tutorialsawk One-Liners - 30 Practical Patterns for Real-World Use
30 practical awk one-liners organized by use case. Field extraction, aggregation, log analysis, and CSV processing — copy-paste ready patterns for real-world use.
~15 min Read → Tutorialsbash History Tips - Making the Most of Your Command History
Learn to reuse bash commands with Ctrl+R search, !!, !$, and history numbers. Covers HISTSIZE and HISTCONTROL settings for efficient shell use.
~15 min Read → Tutorialschown and chgrp Basics - Changing File Ownership in Linux
Learn how to change file owner and group with chown and chgrp. Covers user:group syntax, -R recursive changes, and common web server deployment patterns.
~9 min Read → Tutorialscolumn, pr, and fmt - Understanding Text Formatting Commands
Learn Linux text formatting commands column, pr, and fmt — align tabular data, paginate output for printing, and reformat paragraph text on the command line.
~10 min Read → Tutorialscut, paste, and tr Basics - Column Extraction and Character Conversion
Use cut to extract CSV/TSV columns, paste to merge files side by side, and tr to translate or delete characters. Combine them in pipelines for powerful text processing.
~10 min Read → Tutorialsdiff and patch Basics - Getting and Applying Diffs
Learn how to generate file diffs with diff -u and apply them with patch. Covers unified diff format, directory comparison, -p0 vs -p1 strip levels, dry runs, and reverting with patch -R.
~10 min Read → TutorialsDisk Management Basics - Inspecting Storage with fdisk and lsblk
Learn how to inspect Linux storage layout using fdisk -l and lsblk. Covers partition types, block device trees, device naming conventions, and when to use df vs du for disk space investigation.
~10 min Read → Tutorials/etc/hosts and /etc/resolv.conf - Understanding DNS Resolution Priority
How /etc/hosts and /etc/resolv.conf shape DNS resolution on Linux — priority rules in nsswitch.conf, systemd-resolved, and practical override patterns.
~10 min Read → Tutorialsfind -exec vs xargs: Choosing the Right Approach
Learn when to use find -exec (semicolon vs plus form) vs xargs. Covers the -print0 | xargs -0 safety pattern for filenames with spaces, parallel execution with -P, and practical one-liners for common file management tasks.
~15 min Read → TutorialsHeredoc Basics - Embedding Multiline Strings in Shell Scripts
Learn how to use heredoc (<<EOF) to embed multiline strings in shell scripts. Covers variable expansion control, stripping indentation with <<-, writing to files, and practical use cases with SSH and databases.
~12 min Read → Tutorialsiptables and nftables Basics - Introduction to Packet Filtering
Learn the fundamentals of iptables and nftables on Linux. Set up SSH and HTTP rules, block ports, and persist your firewall configuration on Ubuntu.
~12 min Read → Tutorialsjournalctl in Practice - Filtering Logs from the systemd Journal
Master journalctl filtering. Filter logs by unit, time range, priority, and fields to quickly extract exactly what you need from the systemd journal.
~12 min Read → TutorialsReading Logs with less, more, and tail
Learn with Lina and Linny-senpai! Tired of `cat` scrolling past? Master less for page navigation and search, tail for the newest entries, and tail -f for real-time log monitoring.
~15 min Read → Tutorialslocate, which, and whereis - Three Ways to Find Commands in Linux
Learn the differences between locate, which, and whereis. Solve "where did it install?" and "which python is running?" with the right command for the job.
~15 min Read → Tutorialslogrotate Basics - Keeping Logs Manageable with Automatic Rotation
Learn logrotate config structure and key directives. Covers rotate, compress, delaycompress, postrotate, and how to debug with dry-run mode on Linux.
~10 min Read → TutorialsLVM and Partition Management in Practice: Flexible Storage Operations
LVM and partition management guide for Linux. Learn to create PV, VG, and LV, extend volumes online, use snapshots, and manage storage flexibly.
~15 min Read → GuidesUsing man, info, and --help - How to Read Official Documentation
Learn how to use man, info, and --help to look up Linux documentation. Covers man page navigation, keyword search with man -k, and when to use each tool.
~10 min Read → TutorialsMount and fstab Basics - How to Attach Filesystems in Linux
Learn how to use the mount command and /etc/fstab. Covers attaching devices to directories, using UUID for safe device identification, and writing persistent mounts that survive reboots.
~12 min Read → TutorialsGetting Started with nc (netcat) - The Versatile Tool for Port Testing and Debugging
Learn nc (netcat) for port testing, simple server setup, file transfer, and banner grabbing. Practical debugging patterns for Linux network diagnostics.
~12 min Read → TutorialsNetwork Troubleshooting in Practice - ping, traceroute, and dig
A 3-step approach to diagnosing network failures: ping for reachability, traceroute for routing, dig for DNS. Covers common patterns — gateway stops, DNS failures, and blocked ports — with real examples.
~12 min Read → Tutorialsnice and renice Basics - Controlling Process Priority
Control CPU scheduling priority with nice and renice. Covers the nice value range (-20 to 19), setting priority at launch, changing it dynamically for running processes, and root vs user permission rules.
~12 min Read → Tutorialsnohup/disown/screen - Keeping Processes Running After Logout
Three ways to keep processes running after SSH disconnect or terminal close. Learn nohup (before start), disown (after start), and screen (full session reattach), plus when to use each.
~12 min Read → TroubleshootingFixing Server Time Skew - Synchronizing NTP with chrony and timedatectl
How to fix server time skew on Linux. Use timedatectl status to check NTP state, chronyc tracking to diagnose drift, and chronyc makestep to force immediate sync.
~12 min Read → TutorialsSELinux Introduction: Your First Step to Reading Denial Logs
Learn SELinux basics — check modes with getenforce, read AVC denial logs, and use ausearch and audit2why to identify what is being blocked and why.
~12 min Read → TutorialsGetting Started with stat - Reading File Metadata
Learn to read stat output on Linux. Covers atime/mtime/ctime timestamp differences, inode number usage, format options for scripting, and filesystem-level statistics with stat -f.
~12 min Read → Tutorialsstrace Basics - Tracing System Calls for Troubleshooting
Learn to trace system calls with strace on Linux. Filter by call type, attach to running processes with -p, interpret errno values like ENOENT and EACCES, and diagnose Permission denied and connection failures in minutes.
~12 min Read → Tutorialssudoers Configuration Basics - Delegating Privileges Safely
Learn how to configure /etc/sudoers safely using visudo. Covers syntax, NOPASSWD, per-command delegation, and sudoers.d best practices on Ubuntu.
~12 min Read → TutorialsUnderstanding SUID, SGID, and Sticky Bit - Special Permission Bits in Linux
Learn how SUID, SGID, and Sticky Bit work in Linux. Understand special permission bits with practical chmod examples and security guidance.
~12 min Read → TutorialsSwap Management - Avoiding Memory Exhaustion in Linux
Learn what Linux swap is, how to create a swapfile, tune swappiness for your workload, and diagnose OOM killer events before they take down production.
~12 min Read → Tutorialssystemd Timer vs cron: Choosing the Right Scheduler
Compare systemd timer and cron for Linux job scheduling. Prefer systemd timer for logging, dependencies, and missed-run recovery; cron for simple one-liners.
~12 min Read → Tutorials/tmp Cleanup Best Practices - tmpfiles.d and systemd-tmpfiles
Manage /tmp cleanup with systemd-tmpfiles and tmpfiles.d. Write declarative rules for automatic deletion, permissions, and boot-time directory creation.
~10 min Read → TutorialsUnderstanding umask - Controlling Default File Permissions
Learn how umask determines default permissions for new files and directories. Covers the AND NOT calculation, common values like 022/077/002, and how to make changes persistent via .bashrc or /etc/profile.
~9 min Read → Tutorialsvmstat, iostat, and sar - Linux Performance Analysis Tools
Learn to identify CPU, memory, and I/O bottlenecks using three complementary tools. Use vmstat for a system-wide overview, iostat to pinpoint slow devices by await and util%, and sar to review historical trends after an incident.
~15 min Read → TroubleshootingUnderstanding and Handling Zombie Processes in Linux
Zombie processes are terminated processes that linger in the process table. Learn what causes them, how to find them, and how to clean them up safely.
~8 min Read → TutorialsSetting Up Aliases - How to Shorten Linux Commands
Learn with Lina and Linny-senpai! Create short nicknames for long commands using alias, persist them in .bashrc, and remove them with unalias.
~12 min Read → TroubleshootingFixing "Argument list too long"
Why rm * fails and how to fix it with find -delete and find + xargs.
~8 min Read → Tutorialsdnf Package Management - Modern Tool for Fedora and RHEL-Based Systems
Learn dnf, the standard package manager for Fedora and RHEL-based systems. Covers install, update, remove, search, repo management, module streams, and rollback with practical examples.
~12 min Read → TutorialsFirewall Configuration Basics: Getting Started with ufw and firewalld
Learn how to configure Linux firewalls with ufw (Ubuntu) and firewalld (RHEL/CentOS). Covers port rules, default policies, zones, and practical patterns for web and database servers.
~12 min Read → TutorialsLinux Group Management Basics: groupadd, groupmod, and Access Control
Learn how to create groups with groupadd, modify them with groupmod, and manage members with usermod -aG and gpasswd. Covers /etc/group format, shared directory setup, and sudo privilege patterns.
~12 min Read → TutorialsHow to Read Log Files - Introduction to System Log Analysis
Learn to read Linux log files in /var/log/. Covers syslog, auth.log, kern.log structure plus practical commands — tail -f, grep, less — for effective log analysis and troubleshooting.
~12 min Read → TroubleshootingHandling OOM killer events
When a process is killed without explanation. Confirm with dmesg/journalctl, adjust oom_score_adj, and add swap.
~12 min Read → TutorialsPackage Management Troubleshooting: Resolving Dependency Errors
Systematically fix apt and yum/dnf dependency errors. Covers dpkg repair, lock file conflicts, GPG key issues, and a step-by-step diagnosis flow for Ubuntu, CentOS, and Fedora.
~10 min Read → Tutorials~/.ssh/config Tips - Organizing Your SSH Connection Settings
Replace long ssh commands with short aliases using ~/.ssh/config. Covers ProxyJump for bastion host connections, per-host IdentityFile selection, KeepAlive settings, and Host * for global defaults.
~8 min Read → TutorialsSSH Key Authentication Setup - Passwordless and Secure Login
Generate an ED25519 key pair with ssh-keygen, deploy the public key using ssh-copy-id, and connect without a password. Covers permissions, ~/.ssh/config for multi-server management, and ssh-agent for passphrase caching.
~12 min Read → TutorialsUnderstanding sudo vs su - Safe Privilege Escalation in Linux
Learn the difference between sudo and su, why sudo is the recommended approach, and how to configure sudoers safely with visudo. Covers common mistakes and a practical quick-reference for daily use.
~12 min Read → TutorialsSymbolic Links and Hard Links - Understanding File References in Linux
Learn the difference between symbolic and hard links. Covers the ln command, inodes, reference counting, cross-filesystem constraints, and practical patterns like dotfiles and version-managed directories.
~10 min Read → TutorialsHow to Write systemd Unit Files - Registering Custom Services
Learn to daemonize scripts and applications using systemd. Covers the [Unit], [Service], and [Install] sections, ExecStart, Restart policies, EnvironmentFile, and the full systemctl enable/start workflow.
~10 min Read → TroubleshootingFixing "Too many open files" - Resolving File Descriptor Exhaustion
"Too many open files" means you hit the file descriptor limit. Use ulimit, lsof, limits.conf and sysctl to diagnose and fix it permanently.
~10 min Read → TutorialsUser Management Basics: useradd, usermod, and userdel
Learn how to create users with useradd, modify group memberships and attributes with usermod, and delete accounts with userdel. Covers sudo privileges and group management patterns.
~12 min Read → GuidesWSL2 Introduction - How to Use Linux on Windows
Learn how to set up a Linux environment on Windows using WSL2. Covers installation, choosing a distribution, basic Linux operations, and sharing files between Windows and Linux.
~15 min Read → Tutorialscurl and wget Basics - HTTP Communication from the Command Line
Learn with Linny-senpai and Lina! Understand the curl vs wget split, the -O/-o trap, redirect follow with -L, header inspection with -I, JSON POST, and Bearer token auth — all from a beginner's perspective.
~12 min Read → TutorialsGetting Started with Job Control - jobs, fg, bg, and Ctrl+Z
Learn shell job control through Linny-senpai and Lina's dialogue: pause with Ctrl+Z to free your terminal, swap with fg/bg, list with jobs, and run with & — including the kill %1 pitfall — for absolute beginners.
~12 min Read → TutorialsGetting Started with tmux - Terminal Multiplexing Basics
Learn tmux fundamentals through a friendly dialogue between Lina and Linny-senpai. Keep your work alive after SSH disconnects, master the session/window/pane hierarchy, the prefix key (Ctrl+b), and detach/attach with beginner-friendly examples.
~15 min Read → Tutorialstop and htop Mastery - Identifying System Bottlenecks
Read top's summary lines in 30 seconds to decide whether the bottleneck is CPU, memory, or I/O. Master %us/%sy/%wa thresholds, htop's tree view, filters, and F-keys for production-grade triage.
~14 min Read → TutorialsUnderstanding du vs df - Measuring Disk Usage Correctly
A beginner-friendly walkthrough of how du and df differ. Learn why "df is full but du doesn't add up" — covering deleted-open files, mount boundaries, and root-reserved blocks with a practical investigation playbook.
~10 min Read → TroubleshootingHandling inode exhaustion
"No space left on device" while df -h shows free? Diagnose with df -i and recover.
~10 min Read → Tutorialsjq Basics - How to Process JSON in the Shell
A practical guide for shaping JSON from curl and APIs with jq. Master filters, select, map, raw vs compact output, and safe patterns for piping JSON in production scripts.
~12 min Read → Tutorialsxargs in Practice - Converting Standard Input to Command Arguments
Master xargs to "paste" pipe contents into the argument slot of the next command. Learn safe patterns with find -print0 | xargs -0, the -I {} placeholder, and -P parallel execution while avoiding common pitfalls.
~10 min Read → Tutorialssed Basics - Text Substitution with the Stream Editor
Master the five core sed patterns (substitute, delete, print, address, multi-expression), the safe pattern for in-place editing with `-i.bak`, and when to choose BRE vs ERE.
~12 min Read → TutorialsGetting Started with sort and uniq
Learn with Linny-senpai and Lina! Master sort and uniq for sorting, deduplicating, and counting data, including the classic `sort | uniq -c | sort -rn` frequency ranking pattern.
~10 min Read → TutorialsLinux Error Messages Dictionary
A reverse-lookup dictionary of common Linux error messages. Quickly find the cause and fix for command not found, Permission denied, No space left on device, OOM, and more.
~14 min Read → Tutorialsnetstat and ss Basics: Monitoring Ports and Connections
Learn how to check listening ports, established connections, and TCP states with netstat and ss, including a netstat-to-ss migration cheat sheet for everyday use.
~10 min Read → TutorialsNetwork Commands Basics - Checking Connectivity with ip and ifconfig
Learn the difference between ip and ifconfig and isolate "no network" issues layer by layer: link → IP → route → reachability → DNS, plus a net-tools migration cheat sheet.
~11 min Read → GuidesLinux Directory Structure Overview
A beginner-friendly guide to the Linux directory structure. Learn the roles of /, /etc, /var, /home, /bin and how to never get lost in the filesystem tree.
~12 min Read → TutorialsGit and Linux Basics - Version Control
Learn Git basics on Linux: install, configure, init, add, commit, and push. Covers Permission denied, SSH key auth, line endings, and exec bit pitfalls specific to Linux.
~14 min Read → TutorialsPackage Management Basics: apt and yum
Practical guide to apt (Debian/Ubuntu) and yum/dnf (RHEL/CentOS) package management. Side-by-side command map, install/update workflows, and troubleshooting steps.
~14 min Read → TutorialsFixing "command not found" Errors
Diagnose and fix "command not found" on Linux. Covers PATH, hash cache, sudo secure_path, pip --user, and cron with practical templates.
~12 min Read → TutorialsEnvironment Variables Basics - Configuration and Practical Usage
Learn Linux environment variables for beginners. From echo and env to export, PATH, and persistence with .bashrc, taught through Lina and Linny-senpai's dialogue.
~15 min Read → TutorialsVim Basics - Essential Commands and Practical Techniques
A practical Vim guide covering modes, motions, edits, search/replace, and save/quit. Stop getting stuck and learn the minimal .vimrc setup that works on any server.
~14 min Read → TutorialsPipes and Redirection Basics
A beginner-friendly dialogue tutorial. Learn how `|`, `>`, `>>`, and `2>&1` work by following the flow of stdin, stdout, and stderr — and combine commands with confidence.
~12 min Read → TutorialsHow to Use pwd, cd, and ls
Learn with Linny-senpai and Lina! Master pwd (location), ls (list), and cd (move) - the 3 essential commands for beginners.
~10 min Read → TutorialsHow to Use mkdir, touch, and echo
Learn with Linny-senpai and Lina! Master mkdir (create directories), touch (create files), and echo/cat (view contents).
~12 min Read → TroubleshootingDiagnosing 100% CPU usage
Identifying culprit processes with top / ps / load average.
~10 min Read → TutorialsWhy cron Is Not Running - Troubleshooting crontab on Linux
Fix cron jobs that aren't running on Linux. Learn how to check crontab, view logs, and avoid common PATH and permission pitfalls.
~10 min Read → TroubleshootingDiagnosing slow disk I/O
iostat / vmstat to pinpoint disk bottlenecks.
~10 min Read → TroubleshootingDNS resolution troubleshooting
dig / host / nslookup usage and /etc/resolv.conf inspection.
~12 min Read → Tutorialsjournalctl Basics: Log Investigation
Learn how to check logs in Ubuntu (systemd) environments. Master filtering by time, service, and priority level for effective troubleshooting.
~10 min Read → TroubleshootingInvestigating memory pressure
free / top / ps usage and OOM Killer mitigation.
~12 min Read → TroubleshootingReading Nginx/Apache logs
access.log / error.log paths and how to read incident causes.
~12 min Read → TroubleshootingPort connectivity troubleshooting
nc / telnet / curl for connection check, ss / netstat for port state.
~12 min Read → TutorialsUbuntu scp/rsync Basics: File Transfer Between Servers
Learn how to transfer files between servers using scp and rsync on Ubuntu. Includes copy-paste templates for common scenarios.
~10 min Read → TutorialsHow to Use systemctl - Linux Service Management Guide
Manage Linux services with systemctl. Learn status, start, restart, and enable commands for Nginx, Apache, SSH, and other services.
~8 min Read → Troubleshootingufw firewall and SSH connection
Recovering when ufw enable cuts off SSH.
~12 min Read → TroubleshootingIdentifying Docker disk usage
docker system df to break down image / container / volume usage.
~10 min Read → TroubleshootingSafely deleting files with find
print0 / xargs -0 for filename-safe deletion.
~10 min Read → TroubleshootingHandling "No space left on device"
df / du to find bloated files and reclaim space.
~10 min Read → TroubleshootingHow to fix Permission denied
chmod / chown / sudo usage and avoiding common pitfalls.
~10 min Read → TroubleshootingSSH connection troubleshooting checklist
Permission denied (publickey), Host key verification failed, Connection timeout.
~12 min Read → Tutorialstar Basics: Compression, Extraction & Avoiding Mistakes
Learn tar command for compression, extraction, and listing contents. Understand .tar.gz/.tgz/.tar differences and how to prevent extraction accidents.
~8 min Read → TutorialsHow to Use find, grep, and awk
Practical learning of advanced file search and processing techniques using find, grep, awk. Aimed at professional-level mastery.
~10 min Read → Tutorialsgrep and awk Advanced Techniques
Learn advanced techniques including complex search conditions, regular expressions, and awk programming.
~25 min Read → TutorialsHow to Use find, grep, and awk - Basics
Systematic learning of basic file search and text processing commands.
~20 min Read → TutorialsHow to Combine find, grep, and awk
Detailed explanation of practical use cases and best practices used in real-world work.
~25 min Read → Tutorialsfind, grep, and awk Exercises
Detailed learning of professional-level advanced techniques and optimization methods.
~20 min Read → GuidesHow to Use the Terminal - Linux Command Line Basics
Beginner-friendly explanation of what the terminal is, basic operations, and essential concepts. Perfect content as your first step in command line operations.
~10 min Read → GuidesWhat is Linux?
Easy-to-understand explanation of Linux's basic concepts, history, and features for beginners. Learn why Linux is important and where it's used, with specific examples.
~10 min Read → GuidesWhy Learn Linux?
Detailed explanation of the benefits of Linux learning, career impact, and importance in modern IT industry. Content that helps boost learning motivation.
~8 min Read → TutorialsHow to Use head, tail, and Pipes
Learn advanced file operation techniques including links, compression/decompression, and backup technologies.
~22 min Read → TutorialsHow to Use cp, mv, and rm
Learn basic file operations: creation, editing, copying, moving, and deletion. Includes introduction to text editor basics.
~10 min Read → GuidesGetting Started
Explains how to use Penguin Gym Linux and effective learning methods. A complete guide that beginners can start with confidence. Detailed introduction of learning progression, common pitfalls, and tips for continuity.
~10 min Read → TutorialsHow to Choose Between chmod, chown, and sudo
Turn chmod, chown, and sudo into a decision framework, learn how to avoid chmod 777 and chown -R accidents, and understand what umask actually does.
~12 min Read → TutorialsHow to Use chmod and chown
Detailed explanation of file and directory permissions, chmod, chown, umask and other permission-related commands.
~12 min Read → TutorialsFixing Permission Denied at the Root Cause
Detailed explanation of permission configuration best practices and real-world examples used in system administration.
~12 min Read → TutorialsHow to Use ps, top, and kill
Learn process concepts and process management commands including ps, kill, jobs, and nohup.
~10 min Read → TutorialsLinux Process Management in Practice
Learn practical techniques including system monitoring, performance tuning, and troubleshooting.
~12 min Read → TutorialsHow to Write Shell Scripts
Systematic learning of shell script writing basics, variables, control structures, and functions.
~15 min Read → TutorialsShell Scripting in Practice
Learn practical shell script creation methods, debugging techniques, and performance optimization.
~20 min Read → TutorialsUnderstanding .bashrc and .profile Load Order
Learn with Linny-senpai and Lina! Why aliases disappear over SSH, the difference between login and interactive shells, and how to reload settings instantly with source — all explained for beginners.
~15 min Read → TutorialsGetting Started with nano - The Beginner-Friendly Editor Before Vim
Learn nano through dialogue with Lina and Linny-senpai! Open, edit, save (Ctrl+O), and exit (Ctrl+X) without memorizing anything — shortcuts are always shown at the bottom of the screen.
~10 min Read → TutorialsGetting Started with tee - Splitting Command Output
Learn with Lina and Linny-senpai! Save pipeline output to a file while keeping it flowing to the next command. Covers -a append, multiple file targets, the sudo tee pattern for root-owned files, and using tee as a pipeline debugger.
~12 min Read →grep: no matching articles found