Terminal basics
This course introduces the terminal as a text-based way to work with a computer. It explains the difference between a GUI and the command line, and how the shell passes your commands to the operating system. You will read the anatomy of a command, move around the filesystem, and create, copy, move and delete files. Later lessons cover standard streams, redirection operators, pipes and text search with grep and ripgrep. The last lesson applies these commands to everyday Ruby on Rails work.
What you'll learn
- ✓How the terminal, the shell and the operating system relate
- ✓The parts of a command: command, options and arguments
- ✓Navigating folders with pwd, ls, cd and path shortcuts
- ✓Creating, copying, moving and deleting files and folders
- ✓Redirecting stdout and stderr and chaining commands with pipes
- ✓Searching text with grep and rg, and running core Rails commands
What is the terminal?
Imagine you are building a house. Most people only see the Showroom: the finished rooms with beautiful furniture and paint. This is what we call the GUI (Graphical User Interface) like Finder on Mac or Windows Explorer.
Read the full lesson free →Curriculum
7 lessonsWhat is the terminal?
Compares the GUI with the command line and explains how the shell, such as Zsh or Bash, interprets commands.
The shell & command anatomy
Breaks a command into its command, options and arguments, and lists modern tools like eza, bat and rg.
Navigating the filesystem
Uses pwd, ls and cd to find and change your location, with shortcuts like /, ~, . and ..
Managing files & directories
Covers mkdir, touch, cp, mv and rm, including why deletion in the terminal is permanent.
Standard streams & redirection
Explains stdin, stdout and stderr, and how the operators >, >>, <, 2> and 2>&1 redirect them.
Pipes & search tools
Connects commands with the pipe operator and searches text using grep, wc -l and the faster rg.
Terminal in Rails development
Introduces bundle install and the Rails server, console and generate commands, then counts matching files with rg -l.