Journey
Learn the Terminal & Command Line
A free, interactive online course on the Linux terminal and command line. You run real commands on every lesson, in a browser-based terminal, with a free certificate when you finish.
11,189+ codders enrolled
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Syllabus
Section 1
Fundamentals
Start sectionStartExpandCollapseMaster the command line with essential tools and core skillsIntroduction
3 lessons217- 01What Is The TerminalChallenge
- 02Your First CommandChallengeQuiz
- 03CommentsQuiz
Navigation
6 lessons640- 01Print Working DirectoryChallengeQuiz
- 02List FilesChallengeQuiz
- 03Change DirectoryChallengeQuiz
- 04Absolute vs Relative PathsChallengeQuiz
- 05Home And Root DirectoryChallengeQuiz
- 06Recap - Find Your WayChallenge
Files
6 lessons641- 01Create A FileChallengeQuiz
- 02Read A FileChallengeQuiz
- 03Copy A FileChallengeQuiz
- 04Move And Rename A FileChallengeQuiz
- 05Delete A FileChallengeQuiz
- 06Recap - File OperationsChallenge
Directories
5 lessons534- 01Create A DirectoryChallengeQuiz
- 02Copy A DirectoryChallengeQuiz
- 03Move And Rename A DirectoryChallengeQuiz
- 04Delete A DirectoryChallengeQuiz
- 05Recap - Directory OperationsChallenge
Organize Photos Project
Project4 lessons1- 01Project OverviewChallenge
- 02Creating The StructureProject
- 03Moving The FilesProject
- 04Cleaning UpProject
Wildcards And Patterns
5 lessons533- 01The Star WildcardChallengeQuiz
- 02The Question Mark WildcardChallengeQuiz
- 03Bracket WildcardsChallengeQuiz
- 04Combining WildcardsChallengeQuiz
- 05Recap - Selective OperationsChallenge
File Content
7 lessons753- 01Head And TailChallengeQuiz
- 02Word CountChallengeQuiz
- 03Sort CommandChallengeQuiz
- 04Unique CommandChallengeQuiz
- 05Grep BasicsChallengeQuiz
- 06Grep With FlagsChallengeQuiz
- 07Recap - Text DetectiveChallenge
Redirection
6 lessons640- 01Standard OutputChallengeQuiz
- 02Overwrite To A FileChallengeQuiz
- 03Append To A FileChallengeQuiz
- 04Standard InputChallengeQuiz
- 05Standard ErrorChallengeQuiz
- 06Recap - Log BuilderChallenge
Piping
5 lessons534- 01What Is A PipeChallengeQuiz
- 02Chaining Two CommandsChallengeQuiz
- 03Chaining Multiple CommandsChallengeQuiz
- 04Pipe With GrepChallengeQuiz
- 05Recap - Data PipelineChallenge
Log Analyzer Project
Project5 lessons1- 01Project OverviewChallenge
- 02Viewing The Log FileProject
- 03Filtering ErrorsProject
- 04Counting OccurrencesProject
- 05Generating A ReportProject
Permissions
6 lessons541- 01Understanding PermissionsChallengeQuiz
- 02Reading PermissionsChallengeQuiz
- 03Chmod With NumbersChallengeQuiz
- 04Chmod With SymbolsChallengeQuiz
- 05File OwnershipQuiz
- 06Recap - Lock It DownChallenge
Environment
7 lessons748- 01Environment VariablesChallengeQuiz
- 02View All VariablesChallengeQuiz
- 03The PATH VariableChallengeQuiz
- 04Setting A VariableChallengeQuiz
- 05Export A VariableChallengeQuiz
- 06The Profile FileChallengeQuiz
- 07Recap - Custom EnvironmentChallenge
Shell Scripting Basics
8 lessons860- 01What Is A Shell ScriptChallengeQuiz
- 02Create And Run A ScriptChallengeQuiz
- 03Variables In ScriptsChallengeQuiz
- 04User Input In ScriptsChallengeQuiz
- 05If StatementChallengeQuiz
- 06For LoopChallengeQuiz
- 07While LoopChallengeQuiz
- 08Recap - Number GuesserChallenge
Backup Script Project
Project6 lessons1- 01Project OverviewChallenge
- 02Getting The Source PathProject
- 03Creating Backup FolderProject
- 04Copying The FilesProject
- 05Adding A TimestampProject
- 06Success MessageProject
Final Challenges
3 lessons3- 01File Organizer By TypeChallenge
- 02Word Frequency CounterChallenge
- 03System Health CheckerChallenge
Section 2
Version ControlDedicated page
Start sectionStartExpandCollapseTrack your work with Git. Initialize repos, stage and commit changes, branch and merge, resolve conflicts, and recover from mistakes.Introduction
3 lessons123- 01What Is Version ControlQuiz
- 02What Is GitChallengeQuiz
- 03Snapshots And CommitsQuiz
Getting Started
5 lessons531- 01Initialize A RepositoryChallengeQuiz
- 02The .git FolderChallengeQuiz
- 03Configure Your IdentityChallengeQuiz
- 04Git StatusChallengeQuiz
- 05Recap - First RepoChallenge
Tracking Changes
6 lessons640- 01The Staging AreaChallengeQuiz
- 02Git AddChallengeQuiz
- 03Git CommitChallengeQuiz
- 04Modifying A Tracked FileChallengeQuiz
- 05Git LogChallengeQuiz
- 06Recap - First CommitsChallenge
Inspecting Changes
4 lessons425- 01Git DiffChallengeQuiz
- 02Diff The Staged ChangesChallengeQuiz
- 03Git ShowChallengeQuiz
- 04Recap - Detective WorkChallenge
Ignoring Files
4 lessons427- 01Why Ignore FilesChallengeQuiz
- 02Gitignore PatternsChallengeQuiz
- 03Check Ignore RulesChallengeQuiz
- 04Recap - Clean RepoChallenge
Recipe Site Project
Project5 lessons137- 01Project OverviewChallengeQuiz
- 02Initialize And IgnoreProjectQuiz
- 03First CommitProjectQuiz
- 04Add A Second RecipeProjectQuiz
- 05Inspect The HistoryProjectQuiz
Branching
6 lessons640- 01What Is A BranchChallengeQuiz
- 02Creating A BranchChallengeQuiz
- 03Switching BranchesChallengeQuiz
- 04Committing On A BranchChallengeQuiz
- 05Deleting A BranchChallengeQuiz
- 06Recap - Branch PlayChallenge
Merging
6 lessons640- 01What Is A MergeChallengeQuiz
- 02Fast-Forward MergeChallengeQuiz
- 03Three-Way MergeChallengeQuiz
- 04Merge ConflictsChallengeQuiz
- 05Resolve A ConflictChallengeQuiz
- 06Recap - Merge MasterChallenge
Undoing Changes
6 lessons641- 01Discard Unstaged ChangesChallengeQuiz
- 02Unstage A FileChallengeQuiz
- 03Amend The Last CommitChallengeQuiz
- 04Revert A CommitChallengeQuiz
- 05Reset A BranchChallengeQuiz
- 06Recap - Time MachineChallenge
Remotes
4 lessons324- 01What Is A RemoteChallengeQuiz
- 02Add A RemoteChallengeQuiz
- 03Push, Pull And CloneQuiz
- 04Recap - Remote SetupChallenge
Feature Branch Project
Project6 lessons142- 01Project OverviewChallengeQuiz
- 02Initialize MainProjectQuiz
- 03Work On A BranchProjectQuiz
- 04Update Main In ParallelProjectQuiz
- 05Merge The FeatureProjectQuiz
- 06Clean UpProjectQuiz
Final Challenges
3 lessons3- 01Blog Repo From ScratchChallenge
- 02Branch DanceChallenge
- 03Undo MasterChallenge
Section 3
Introduction to DockerDedicated page
Start sectionStartExpandCollapseLearn Docker from the command line: pull and build images, run and manage containers, write Dockerfiles, copy files in and out, and work with volumes and networks.Introduction
2 lessons213- 01What Is DockerChallengeQuiz
- 02Images And ContainersChallengeQuiz
Images
4 lessons423- 01Pulling ImagesChallengeQuiz
- 02Listing ImagesChallengeQuiz
- 03Tagging ImagesChallengeQuiz
- 04Recap - Image WranglerChallenge
Running Containers
5 lessons532- 01Running A CommandChallengeQuiz
- 02Real ExecutionChallengeQuiz
- 03Different DistrosChallengeQuiz
- 04Auto-Remove ContainersChallengeQuiz
- 05Recap - Container RunnerChallenge
Managing Containers
5 lessons531- 01Naming ContainersChallengeQuiz
- 02Detached ContainersChallengeQuiz
- 03Listing All ContainersChallengeQuiz
- 04Stopping And RemovingChallengeQuiz
- 05Recap - Container LifecycleChallenge
Inspecting Containers
4 lessons423- 01Container LogsChallengeQuiz
- 02Inspecting DetailsChallengeQuiz
- 03Executing CommandsChallengeQuiz
- 04Recap - Health CheckChallenge
Building Images
4 lessons423- 01What Is A DockerfileChallengeQuiz
- 02Building An ImageChallengeQuiz
- 03The CMD InstructionChallengeQuiz
- 04Recap - Image BuilderChallenge
Files In Images
3 lessons316- 01The COPY InstructionChallengeQuiz
- 02The WORKDIR InstructionChallengeQuiz
- 03Recap - Package It UpChallenge
Copying Files
2 lessons213- 01Copy Into A ContainerChallengeQuiz
- 02Copy Out Of A ContainerChallengeQuiz
Volumes & Networks
3 lessons314- 01VolumesChallengeQuiz
- 02NetworksChallengeQuiz
- 03Recap - Managing ResourcesChallenge
Greeting App Project
Project5 lessons17- 01Project OverviewChallengeQuiz
- 02Write The DockerfileProject
- 03Build And RunProject
- 04Personalize The GreetingProject
- 05Ship A Tagged VersionProject
Final Challenges
3 lessons3- 01Distro DetectiveChallenge
- 02Full Build PipelineChallenge
- 03Runtime File DropChallenge
Why learn the terminal with Coddy
- Practice real Linux terminal commands in your browser. No VM, no SSH, no dual-boot. Every lesson runs in a sandboxed shell so you can break things safely while learning.
- Command-line skills you actually use: file navigation (
cd,ls,pwd), file operations, text processing withgrep,sed,awk, pipes and redirection, permissions, environment variables, and basic bash scripting. - AI hints help you read cryptic shell errors and recover from common mistakes (wrong directory, broken redirects, permission denied) without spoiling the answer.
- Free terminal and command-line certificate when you finish. A credible signal for backend, DevOps, data, and infrastructure roles where comfort with the shell is a baseline expectation.
Frequently asked questions about learning the terminal
What is the terminal?
The terminal is a text-based interface for telling your computer what to do. Instead of clicking icons, you type commands. On Linux and macOS the terminal usually runs the bash or zsh shell; on Windows you can use WSL, PowerShell, or Git Bash. Every command-line tool and Linux command lives behind that text prompt.
Is the terminal hard to learn?
The Linux terminal looks intimidating at first, but the core is small - a couple of dozen commands cover most of what you'll do day-to-day. The course introduces them in small, hands-on steps with a real browser-based shell, so muscle memory builds up quickly.
Why should I learn the command line?
Almost every backend, DevOps, data, or infrastructure job assumes basic terminal fluency - SSHing into servers, navigating files, running scripts, reading logs, using
git, debugging deployments. Even on a developer laptop, the command line is usually the fastest way to do batch operations and chain tools together with pipes.Do I need Linux to learn the terminal?
No. The terminal course runs in a browser-based Linux shell, so you can learn the Linux terminal on any operating system - Windows, macOS, Chromebook, anything. The same commands transfer almost identically to macOS, WSL on Windows, and any Linux server you SSH into later.
How long does it take to learn the terminal?
You can learn the core Linux commands - file navigation, file operations, basic text processing - in one to two weeks of daily practice. Becoming comfortable with pipes, redirection, permissions, and basic bash scripting usually takes another two to four weeks. From there, the rest is built up over time as you encounter new tools.
Do I get a certificate after the terminal course?
Yes. Finishing the terminal and command-line course gives you a free certificate of completion. A verifiable signal you can add to your resume or share on LinkedIn alongside any DevOps, scripting, or backend projects you've worked on.