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.
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:
- head tail