
Colt guides beginners to become command line power users through interactive exercises, quizzes, and projects, covering many commands and the big picture of chaining tools to accomplish tasks.
Learn the command line to gain control over your machine, perform tasks faster, and automate work, using universal skills for development, cloud workflows, and high-paying tech roles.
Find and download each section's slides from resources, review the what actually matters overview, and complete the end-of-section exercises with instructions and starter code.
Practice commands to build familiarity instead of memorizing every detail; you'll naturally memorize the ones you use often, while a cheat sheet or sticky note helps you retrieve the rest.
Explore the world of operating systems, from Windows NT lineage to Unix descendants, and learn that many commands work across Ubuntu, Mac OS X, Android, Fedora, and other Unix-like systems.
Explore the origins of Unix at Bell Labs, its multi-user design and hierarchical file systems. Clarify the modular command philosophy and distinguish true Unix from Unix-like systems.
Explore the original Unix manual from 1971, compare legacy relics like typewriter and paper tapes with today’s commands, and preview the evolving find and cat command fundamentals.
Discover how the Linux kernel, GNU project, and the free software movement shaped Unix-like operating systems and popular Linux distributions like Ubuntu and Fedora.
Understand how a terminal runs a shell to translate your commands into operating system actions, with Bash as the focus, and compare shells like Z Shell, Fish, and PowerShell.
Focus on command structure basics by examining arguments, parameters, and option syntax. Use this section to understand how to provide options rather than memorize individual commands.
Open the terminal on ubuntu, mac, or windows using shortcuts like the super key or spotlight. Open from the applications or context menu and practice navigating directories in upcoming lessons.
Learn to read the terminal prompt and how the shell processes input on Ubuntu and Mac. Practice commands like clear and recognize command not found messages and quotes.
Learn how the date command prints the current date and time and supports scripting, then compare cal and n cal calendars while noting capitalization and shell behavior.
control the terminal cursor with left and right arrows and quickly reuse past commands by pressing the up arrow, with down to move forward, using examples like date and cal.
Learn the basic command structure of the linux command line, with command names, options, and arguments, and practice using echo, cal, and file operations like sort and rm.
Learn how commands accept dash-prefixed options to modify behavior, including highlighting, uppercase/lowercase distinctions, and practical examples like julian days, monday-first calendars, and three-month views.
Learn to combine command options, using -3 for three months with current, previous, and next, toggle highlighting with -H, and use -J or -M for Julian numbering and Monday starts.
Learn how long form options use two dashes, when to apply them, and how they differ from short options, with date --universal and sort --reverse and the role of --unique.
Explore how certain command line options require parameters, with practical examples using cal and dash flags for after and before dates, combining options and arguments effectively.
Master the man command and its manual pages, the encyclopedia of commands, and learn to navigate a man page, noting the seven sections and the type, which, and help commands.
Explore how to access built-in Linux documentation with the man command, read manual pages for commands like ncal, date, and echo, and learn navigation tips like Q to quit.
Navigate man pages with the Les viewer using arrows and space. Use b to go back, q to quit, slash to search, and h for help while learning about synopses.
Learn to read Linux man page synopses, distinguish optional and required elements, and interpret command options and arguments using examples like cal, echo, and cp.
Learn how linux man pages are divided into eight sections, focus on section one, and use man -k to search entries; password in section five and printf in section three.
Learn how the type command classifies commands as executable, shell built-in, shell function, or alias, and use which to locate a command’s path, noting some lack manual pages.
Learn to access built-in shell commands using help when no man page exists, using cd and export as examples. Compare man versus help and how to read command output.
explore reading manpages and using who am i and who to identify options and what they do, and verify whether echo and date are builtins, aliases, or binaries using type.
Master navigating the command line using pwd, ls, and cd to move through directories, learn relative and absolute paths, and explore the home and routes directories.
Explore the Unix file system from the root directory, a top level slash that contains all files, and learn how to navigate it with the command line versus graphical interfaces.
Each user has a personal folder inside the home directory under /home, containing items like desktop and documents. Tilde serves as a shortcut to the current user's home directory.
Learn the pwd command, a simple Unix navigation tool that prints your current working directory and full path, such as /home/colt, without changing anything.
Learn how ls lists directory contents, both for the current directory and a specified folder, and explore absolute versus relative paths to navigate the filesystem.
Explore ls options like -l and -a to list files with long details, including permissions, owner, group, and size, and reveal hidden dot files in human readable form.
Master cd to change directories, use pwd, ls, and tab completion, and leverage absolute or relative paths, dot and dot dot, plus tilde for home.
Explore the difference between relative and absolute paths in the linux command line, using cd, pwd, and tilde to navigate from any directory.
Take a quick whirlwind tour of the root directories, from bin and etc to var and home, and learn how to reach your home with cd tilde.
This navigation exercise guides you through downloading, unzipping, and navigating a farm folder, using cd and ls to explore subdirectories, identify the oldest file, and output a comma-separated list.
Master creating files and folders from the command line with touch and mkdir. Explore the optional file command and how to name files safely, avoiding problematic characters.
Learn how the touch command creates new files by name, with optional extensions, in current or specified paths. Create multiple files using relative and absolute paths, then verify with ls.
Learn why the touch command is named touch and how it updates access and modification times, creating non existent files and updating existing ones, verifiable with ls -l.
Learn how Linux detects file type beyond extensions with the file command, using jpeg, pdf, and empty files as examples.
Learn how to name files and folders safely in the linux shell by avoiding spaces and special characters, using hyphens, underscores, or camelcase for clarity.
Create and manage directories with mkdir, using absolute or relative paths, and build nested structures with the -P option for parent directories.
Practice creating a common react structure folder layout from the command line, including my app, public/index.html, source with app.css, app.js, index.css, index.js, and readme.md; use mkdir -p for components/navbar.
Open nano to edit files from the command line and learn shortcuts and spell check. Note that nano is optional and not critical as commands like LZ, CD, or touch.
Explore nano, the most beginner-friendly command line editor built into the shell, and learn core editing tasks like saving, searching, and replacing, with support for HTML, CSS, and bash scripts.
Learn to open and edit files with nano, navigate text, save with ctrl o or ctrl s, and exit with ctrl x, illustrated by editing a shopping list.
Learn to create and edit files in nano by opening a non-existent file and saving with control o or control s, avoiding pre-creating with touch. Save a yard to dos.
Discover nano shortcuts, from exit and save to navigation and meta key commands, and learn to view the full shortcut list with control g to master efficient editing.
Master nano searching and replacing with shortcuts like control-w and control-backslash. Toggle case sensitivity with the meta key and navigate with forward and backward searches.
Enable nano's spell checker by editing /etc/nanorc with sudo, then use Ctrl+T to spell check, search for spell, and replace or ignore suggestions.
Practice nano techniques by editing a recipe, replacing text, jumping to a specific line in a json file, and embedding a review into the recipe.
Learn how to use rm to delete files and directories, and how mv and cp help you move and copy items, with essential options highlighted as important.
Learn to delete folders safely with rm and rmdir, using -d for empty directories and -r for recursive removal, and -i to prompt before each action.
Move files and directories with mv, using relative or absolute paths to relocate single or multiple items into existing destinations such as home, desktop, or cleanup folders.
Move files and folders with mv by specifying a source and destination, using tilde or dot dot paths, and ensuring the destination exists.
Use the mv command to rename files and folders in place or move them to new locations, understanding that it only supports a single source and replaces the original.
Copy files and directories with the cp command by specifying a source and a destination, including recursive directory copies with the dash r option.
Practice deleting, copying, and moving files and folders through a hands-on Linux command line exercise, creating and restructuring bootcamp cohorts from fall to spring.
Discover practical command line shortcuts to speed up your workflow, learn a few frequently used tricks, and explore history commands and history expansion as nice to have options.
Master keyboard-centric terminal shortcuts: clear the screen with control l, and jump to the start or end of a line with control a and control e, preserving command history.
Learn efficient command line navigation using control a/e to jump to line ends, control f/b for character moves, and alt f/b for word moves, keeping hands on the home row.
Learn two swapping shortcuts: ctrl+t swaps the current character with the preceding one, while alt/option+t swaps the current word with the preceding word.
Learn Linux killing shortcuts to cut text: ctrl k to end of line, ctrl u to start, alt d and ctrl w for word deletes, and option b for jumps.
Learn to yank from the kill ring by using control y to retrieve recently killed text, and explore killing methods for lines, words, and characters from the shell.
View and search your command history with history and Ctrl-R, use history expansion to rerun commands, and pipe to less for paging.
Master essential Linux command line techniques for file contents with cat, less, head, tail, sort, wc, and rev to view, count, and sort efficiently.
Learn how the cat command prints file contents to the terminal, derived from concatenate, and how it can display one or multiple files in sequence without editing them.
Learn how the less command provides an interactive viewer to read long files without clutter, using space, arrows, and slash searches, then quit with q.
Explore tac and rev commands: tac prints files in reverse line order, rev reverses characters in each line; compare with cat, combine multiple files, and review practical use cases.
Explore head and tail commands to view the beginning or end of files, customize line counts with -n or --lines, and follow changes with tail -f.
Master the wc command to count lines, words, and bytes, and use -l, -w, -m, and -c in pipelines to count results or files containing a string.
Sort outputs the line-by-line sorted contents of a file and does not modify it; use -n for numeric, -r for reverse, and -u for unique results.
Sort data by a specific column with -K, perform numeric sorts with -n, and reverse with -r on a prices file, illustrating column-based sorting and pipelines with redirection.
Explore linux file operations by working with poem.txt and purchases.txt, using cat, less with line numbers and searches, tac, head, tail, wc, and reverse numeric sorting by price.
Welcome to The Linux Command Line Bootcamp, a brand new course that aims to turn you into a command line power user! This course will teach you dozens and dozens of powerful commands (see the long list at the bottom), but more importantly it gives you the tools the continue to learn new commands and take full control of your machine. The skills you learn in this course will make you a stronger web developer, data scientist, machine learning engineer, game dev, or plain old computer user! You will feel POWERFUL!!
Hi there, my name is Colt Steele. I've spent years leading in-person software engineering bootcamps and have helped thousands of students change careers. Online I've taught over a million students and have hundreds of thousands of 5 star ratings and reviews.
This is an interactive course full of exercises and fun challenges that force you to practice the skills you are learning. You'll encounter some of the same assignments and projects that my in-person bootcamp students experience. Learning command after command can be a dreadfully boring experience, but I've tried my best to make this course as exciting and interesting as possible :) You may roll your eyes at my jokes, but you won't be bored!
============Curriculum: The Short Version============
This course covers a TON. Here's a short summary of the key points. Scroll down for a more in-depth explanation.
Learn dozens and dozens of powerful commands (see the long list below)
Understand the big picture: how ALL commands fit together
Build complex data pipelines by stringing multiple commands together
Master command-line navigation and Linux folder structure
Create, delete, move, copy, and rename files and folders
Decipher and manipulate Unix file permissions
Use powerful searching commands like find, locate, and grep
Master redirection of standard input, standard output, and standard error
Write your own custom commands from scratch!
Customize the shell: write your own helpful aliases, tweak the prompt, etc.
Master Bash expansions and substitutions
Automate tedious tasks using cron and cronjobs
Edit files directly from the command-line using nano
Master keyboard shortcuts to increase your command-line efficiency
============Curriculum: The Long Version============
The course starts with a deep dive into confusing technical terms like terminal, shell, kernel, Unix, Unix-Like, GNU, Linux, and Bash. It's important to understand the context and the WHY's around the command line and its history that still impacts our machines today.
Then we shift our focus to the general patterns and structure that all commands follow including options and arguments. This blueprint we define will inform every single other topic we cover throughout the rest of the course. You'll also learn HOW to learn more about specific commands using the man, help, which, and type commands.
Next, we cover the super-important Linux folder structure and learn essential commands for navigating our machines including ls, pwd, and cd. You'll be an expert navigator in no time!
From there we learn to create new files and folders right from the command line using the commands touch, mkdir, and file. Next, we dive deep into a special text-editor built right into the command line called Nano. You'll learn to open and edit files using Nano, master various Nano shortcuts, and even learn how to configure nano's global settings.
The next section covers the powerful commands rm, mv, and cp. You'll learn how to remove individual files and entire directories, move and rename files, and copy files and folders right from the command line. These are some of the most useful commands you can know!
Then we take a quick break to focus on useful keyboard shortcuts you can use to improve your terminal efficiency, before diving into the history command and history expansion.
The next section covers tons of commands that have to do with manipulating file contents, including less, cat, tac, rev, head, tail, wc, and sort. Then we cover the three standard streams: standard input, standard output, and standard error. You'll learn to redirect all three streams and take full control over your data.
Next we move to my favorite topic: piping! In this section you'll learn how to construct complex and powerful pipelines by stringing together multiple individual commands. You'll also learn about the tr command and the tee command along the way.
From there we learn to "speak" the language of the shell using Expansion and Substitution. You'll learn the ins and outs of pathname expansion using wildcard characters, tilde expansion, and the super powerful curly brace expansion. We also cover arithmetic expansion, command substitution, and single and double quoting.
Next up we learn about two commands that help us find files on our machine: locate and find. We pay special attention to the find command and its many fancy options and use-cases. You'll learn how to find files by name, size, timestamps, and more. You'll also learn how to bulk-edit files using find's exec option and the xargs command.
We then shift our focus to the grep command. You'll learn how to use grep to recursively search the contents of files and match complex files using regular expressions.
Next, we spend some time discussing the details of file permissions. You'll learn how to read file attributes and understand read, write, and execute permissions. In the next section, we learn how to alter permissions using commands including chmod, chown, sudo, and su.
In the next section, we learn how to customize our shell experience. You'll learn to write your own custom aliases, work with shell variables, and even create your own fancy prompt. Then we learn how to create our own complex commands from scratch and the basics of bash scripting! By the end you'll be writing and running your own programs.
Finally, we learn about the mysterious cron daemon. You'll learn the odd-looking cron syntax to set up your own automated and scheduled cronjobs.
============THE END============
Whether you have some experience with basic commands or you're a complete beginner, this course will help take your skills to the next level. Learning the command-line is one of the rare skills that transcends the typical divisions between web development, data science, machine learning, or any other tech disciplines. If you work with a computer daily, you will benefit from mastering the command-line. The commands you learn in the course will change the way you interact with your machine, giving you all new workflows and strategies and POWER over your computer! More importantly, you'll leave this course prepared to conquer ALL the commands that are waiting for you out in the real world and on the job.
===============================
Here's an incomplete list of the commands covered in the course:
date
cal
ncal
echo
man
help
which
type
ls
cd
pwd
touch
mkdir
nano
rm
rmdir
mv
cp
cat
less
tac
rev
head tail
wc
sort
tr
tee
locate
du
find
grep
xargs
chmod
sudo
su
chown
addgroup
adduser
export
source
crontab
tar