Learning Path
The course is divided into modules, each focused on a single topic. Every module contains a series of lessons. You can take the modules in any order—there's no required sequence.
Course Modules
Intro to the Terminal
Learn essential terminal basics including the terminal prompt, basic commands, navigation, getting help, and command options. This module provides the fundamental knowledge needed to interact with the Linux command line effectively.
Manipulating Files and Directories
Learn essential file and directory operations in Linux. Topics include file management basics, viewing file contents, comparing files, creating hard and soft links, archiving and compression, file metadata management, efficient file searching, and safe deletion practices. Develop practical skills for organizing and manipulating your file system.
Text Processing
Learn text processing tools like grep, sed, cut, and wc to search, filter, and manipulate text files. Covers redirection, pipes, sorting, and processing structured data formats like JSON and YAML. Essential skills for log analysis, data processing, and system administration.
Advanced Shell Features
Learn command substitution, shell variables, glob expansion, exit status handling, and shell customization through aliases and functions. Topics include creating command shortcuts, handling command outputs, and writing shell scripts with error handling and pattern matching.
Permissions and Access Control
Learn Linux security with comprehensive coverage of file permissions, ownership, and access control. Covers user and group management, modifying permissions with chmod/chown/chgrp, special permission bits (SUID, SGID, sticky bits), and using sudo/su for privilege management. Essential for system security and administration.
Process Management
Learn Linux process management with essential commands like ps, top, and kill. Covers process monitoring, signals, environment variables, and daemon processes. Develop skills in background job management, process control, and system administration fundamentals.
Networking
Learn essential networking tools and concepts. Covers network basics, troubleshooting with ping and netcat, secure remote access with SSH, file transfers using SCP, and web interactions with curl and wget. Includes advanced topics like API usage and secure file transfers.
Text Editing in the Terminal
Learn terminal-based text editing with both nano and vim. Covers nano's user-friendly interface for quick edits, and vim's features for text manipulation. Includes navigation, editing, saving, and advanced usage of both editors. Essential skills for system administration and development.
Package Management
Learn package management on Ubuntu using both APT and dpkg. Covers installing, updating, removing, and searching for packages. Understand system maintenance, package dependencies, and repository management. Essential skills for keeping your system secure and up-to-date.
Shell Scripting
Learn shell scripting from basics to advanced automation. Covers script creation and execution, variables, conditionals, loops, and practical applications like backup scripts. Develop skills to automate repetitive tasks and create command-line tools. Includes hands-on projects and real-world examples.
Command Line Reference Guides
Quick reminders for useful flags and principles that are hard to remember.
Archives and Compression
Bash Basics
Basic Network Troubleshooting
Basic Shell Navigation
Comparing Files in Linux
Curl and Wget
Environment Variables
File Permissions
File Management
Getting Help
Grep and Regular Expressions (Regex)
JSON and YAML Processing Guide
Linux Package Management for Multiple Distributions
Nano Reference
Process Management
Redirection and Pipes in Linux
SSH, SCP, and RSYNC Guide
Shell Features
Shell Scripting
Signals
Tab Completion
Terminal Shortcuts Cheatsheet
Ubuntu Package Management
Understanding the Shell and Terminal
Users and Groups
Vim Reference
Additional Resources
Here are some interesting articles that will help you expand your knowledge and understanding of Linux. These are not strictly related to the command line interface itself but you might find these topics both useful and fascinating while on the path to mastering the command line.
Comparison of Shells
Linux vs MacOS Terminal: A Comprehensive Comparison
Terminal vs GUI: Understanding the Two Faces of Computing