Linux Tutorial
Learn Linux step by step through 87 structured lessons. The course starts with essential concepts and progresses toward practical, advanced topics, with explanations, syntax, examples, common mistakes and exercises you can try yourself.
- Level: Beginner to advanced
- Format: 87 free, self-paced lessons
- Best for: Students, career changers and developers refreshing their skills
What You Will Learn
This learning path covers the following areas in curriculum order:
- Linux Fundamentals
- Navigating the Filesystem
- Working with Files and Directories
- File Permissions and Ownership
- Searching and Text Processing
- Pipes, Redirection, and I/O
- Processes and Job Control
- Users, Groups, and Permissions Management
- Package Management
- Environment and Shell Configuration
- Bash Scripting Basics
- Bash Scripting Logic
- Bash Functions and Scripts
- System Administration
- Networking and Remote Access
Who This Course Is For
This tutorial is suitable for complete beginners as well as learners who already know some programming and want a structured reference. Start from the first lesson if the subject is new to you. Experienced learners can use the curriculum below to jump directly to a specific concept.
How to Use This Tutorial
- Read each lesson in curriculum order and run every example yourself.
- Change the examples to test your understanding instead of only copying them.
- Complete the exercises and review the common-mistake sections before moving on.
- Bookmark this course page so you can return to the complete lesson index.
Course Contents
Linux Fundamentals
- Linux Introduction
- Linux Distributions Explained
- The Linux Shell and Terminal
- The Filesystem Hierarchy Standard
- Getting Help: man, –help, and info
- Shell Prompt and Command Syntax
Navigating the Filesystem
- pwd, ls, and cd
- Absolute vs Relative Paths
- Hidden Files and ls Options
- Wildcards and Globbing
- Home Directory and ~ Shortcuts
Working with Files and Directories
- Creating Files and Directories (touch, mkdir)
- Copying Files and Directories (cp)
- Moving and Renaming (mv)
- Removing Files and Directories (rm, rmdir)
- Viewing File Contents (cat, less, head, tail)
- Creating Links (ln, symbolic vs hard)
File Permissions and Ownership
- Understanding File Permissions
- chmod: Changing Permissions
- Symbolic vs Numeric (Octal) Permissions
- chown and chgrp: Changing Ownership
- Special Permissions: setuid, setgid, Sticky Bit
- umask and Default Permissions
Searching and Text Processing
- Finding Files with find
- Searching File Contents with grep
- Regular Expressions in grep
- sed: Stream Editing Basics
- awk: Pattern Scanning Basics
- Sorting and Counting (sort, uniq, wc)
- Cutting and Joining Text (cut, paste, tr)
Pipes, Redirection, and I/O
- Standard Input, Output, and Error
- Output Redirection (>, >>)
- Input Redirection (<)
- Pipes and Chaining Commands
- Combining Redirection and Pipes
- /dev/null and Discarding Output
Processes and Job Control
- Understanding Processes
- Viewing Processes (ps, top, htop)
- Foreground and Background Jobs
- Killing Processes (kill, killall, signals)
- nohup and Keeping Processes Alive
- Process Priority (nice, renice)
Users, Groups, and Permissions Management
- Users and Groups Concepts
- Creating and Managing Users (useradd, usermod)
- Managing Groups (groupadd, gpasswd)
- sudo and the Superuser
- /etc/passwd and /etc/shadow Explained
Package Management
- Package Management Concepts
- APT (Debian/Ubuntu)
- YUM and DNF (RHEL/Fedora)
- Installing from Source
- Managing Repositories
Environment and Shell Configuration
- Environment Variables
- The PATH Variable
- Shell Configuration Files (.bashrc, .bash_profile)
- Aliases
- Shell History
Bash Scripting Basics
- Writing Your First Bash Script
- Shebang and Script Permissions
- Variables in Bash
- Command-Line Arguments ($1, $@, $#)
- Reading User Input (read)
- Quoting Rules in Bash
Bash Scripting Logic
- Conditionals: if, elif, else
- Test Expressions ([ ] and [[ ]])
- Comparing Numbers and Strings
- case Statements
- for Loops
- while and until Loops
Bash Functions and Scripts
- Bash Functions
- Exit Codes and $?
- Arrays in Bash
- String Manipulation in Bash
- Error Handling in Bash Scripts (set -e, trap)
- Debugging Bash Scripts (set -x)
System Administration
- Disk Usage (df, du)
- Archiving and Compression (tar, gzip)
- Scheduling Tasks with cron
- systemd and Services (systemctl)
- Viewing Logs (journalctl, /var/log)
- Mounting Filesystems
Networking and Remote Access
- Basic Networking Commands (ping, curl, wget)
- SSH: Secure Remote Login
- SSH Key-Based Authentication
- Copying Files Remotely (scp, rsync)
- Checking Open Ports and Connections
- Linux Command Reference
Frequently Asked Questions
Is this Linux tutorial free?
Yes. The lessons listed on this page are free to read and can be completed at your own pace.
Do I need previous experience?
No previous experience is required for the introductory lessons. Some advanced modules are easier if you first complete the fundamentals in this course.
How should I practise?
Type and run the examples, deliberately change their inputs, predict the result before execution and build a small project after completing each major section.
