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