Command Line Course
Master the GNU/Linux terminal and become proficient with the command line. Learn essential commands, shell scripting, and workflow automation.
Learn the command line — navigating files, running commands, pipes and shell basics — with clear, beginner-friendly lessons.
Never used the terminal before? Start here.
Start with Lesson 1 — Introduction to the Command Line. The terminal unlocks your full potential as a developer.
Continue where you left off
Lessons in this course
- Introduction to the Command Line — What the terminal is, why developers use it, and navigating your first directory
- File System Navigation — pwd, ls, cd — move around the file system with confidence
- File Management Commands — Create, copy, move, rename, and delete files and folders from the terminal
- Pipes and Redirection — Chain commands together with | and redirect output with > and >>
- Text Processing with grep, sed, awk — Search and transform text in files using three powerful Unix tools
- Shell Scripting Basics — Write your first bash script — variables, loops, and conditionals in the shell
- Process Management — View running processes, kill tasks, and manage background jobs with & and fg/bg
- Permissions and Users — Understand file permissions, chmod, chown, and user/group management
- Environment Variables — export, PATH, $VAR and persisting variables in .bashrc and .zshrc
- Globbing and Wildcards — Match files with *, ?, [...], brace expansion and the globstar **
- Command Substitution and Expansion — Capture output with $(...), plus arithmetic and parameter expansion
- Redirection and File Descriptors — stdin/stdout/stderr, >, >>, 2>&1, /dev/null and here-documents
- Finding Files with find and xargs — Search by name, type, size and time, then act in bulk with xargs
- HTTP from the Terminal: curl and wget — Make requests, send data and headers, follow redirects and download files
- Processing JSON with jq — Filter, map and reshape JSON on the command line with jq
- Package Managers — Install and update software with apt, dnf, pacman and Homebrew
- SSH and Remote Access — Connect to servers, generate key pairs with ssh-keygen, and copy files with scp
- Scheduling Tasks with cron — Automate jobs on a schedule with crontab and the five-field syntax
- Networking Commands — Diagnose connectivity with ping, dig, ss, netstat and traceroute
- Advanced Bash Scripting — Functions, arrays, traps, set -euo pipefail and debugging with set -x
Frequently asked questions
Why should I learn the command line?
The command line is faster and more powerful than clicking through menus for many development tasks, and it is essential for using Git, running servers, and working with most developer tools. Comfort with the terminal is a core skill for every programmer.
Is the command line hard to learn?
The basics — navigating folders, listing files, copying and moving things, and running commands — can be learned in a few hours. This course introduces them step by step with clear, practical examples.
More for this course
- Command Line cheat sheet — Quick syntax reference you can scan while you code