Glossary of Linux & command-line terms
Every term used across the Linux & the Command Line path, defined in plain language and linked to the lesson where it’s explained in full. Skim it as a refresher, or use your browser’s find (Ctrl/Cmd-F) to jump to a word. Terms are grouped by theme, roughly in the order the path introduces them.
The shell & terminal
Linux — A free, open-source operating system built on a Unix-like design; it runs most servers, Android, and single-board computers. See What is Linux?
Kernel — The core of the OS that manages hardware and runs programs; “Linux” is technically just the kernel. See What is Linux?
Distribution (distro) — A packaged, ready-to-use bundle of the Linux kernel plus tools and software — Ubuntu, Debian, Fedora, Raspberry Pi OS. See What is Linux?
Shell — The program that reads the commands you type and runs them (bash, zsh). See The shell explained
Terminal — The window (or app) that a shell runs inside; the terminal is the screen, the shell is the interpreter. See The shell explained
Command, option, argument — The three parts of what you type: the program name,
its flags (like -l), and what it acts on. See The shell explained
man page — The built-in manual for a command, opened with man <command>. See
Your first commands
WSL (Windows Subsystem for Linux) — Microsoft’s way to run a real Linux distro alongside Windows, the best way to get a Linux shell there. See Getting a shell
The filesystem
Root directory (/) — The single top of the Linux filesystem tree; everything hangs off it (no drive letters). See The filesystem hierarchy
Absolute vs. relative path — An absolute path starts from /; a relative path
starts from where you currently are. See The filesystem hierarchy
Home directory (~) — Your personal folder for files and settings, shorthand ~.
See The filesystem hierarchy
Working directory — The folder you are “in” right now, shown by pwd. See
Your first commands
Dotfile — A file whose name starts with ., hidden by default and often used
for configuration. See Navigating & listing files
/etc, /var, /home — Conventional folders: /etc for system config, /var for
logs and changing data, /home for user files. See
The filesystem hierarchy
Users, permissions & processes
root (superuser) — The all-powerful account (UID 0) that bypasses permissions; used sparingly. See Users, groups & root
User & group — An account that owns files and runs programs, and a collection of users that can share access. See Users, groups & root
sudo — Runs a single command with root privileges, safer than logging in as root. See sudo & becoming root safely
Permissions (rwx) — Read, write, and execute rights granted to the owner, group, and everyone else. See File permissions
chmod / chown — Commands that change a file’s permission bits (chmod) and its
owner (chown). See File permissions
Process (PID) — A running program, identified by a numeric process ID. See Processes & jobs
Signal / kill — A message sent to a process to pause or stop it; kill sends one
(SIGKILL / -9 forces). See Processes & jobs
Package manager — The tool (apt, dnf, pacman) that installs, updates, and removes software from trusted repositories. See Installing software with a package manager
Repository — A trusted, signed source of software packages the package manager installs from. See Installing software with a package manager
Command-line power
stdin / stdout / stderr — A command’s standard input, standard output, and standard error streams. See Pipes & redirection
Pipe ( | ) — Sends one command’s output straight into the next command’s input. See Pipes & redirection
Redirection ( > » < ) — Sends output to a file (> overwrite, >> append) or
reads input from one (<). See Pipes & redirection
grep — Searches for text inside files or a stream, line by line. See Text-processing tools
Glob / wildcard — A pattern like * or ? the shell expands into matching
filenames before a command runs. See Wildcards, globbing & expansion
Environment variable — A named value the shell and programs read, such as HOME
or EDITOR. See Environment variables & PATH
PATH — The list of directories the shell searches to find a command you type. See Environment variables & PATH
Tab completion — Pressing Tab to auto-complete a command, filename, or path. See History, tab completion & shortcuts
Scripting
Shell script — A file of commands run as one program. See Your first shell script
Shebang (#!) — The first line of a script that names the interpreter to run it
with, e.g. #!/bin/bash. See Your first shell script
Argument ($1, $@) — Values passed to a script on the command line, read as $1,
$2, and so on. See Variables, arguments & input
Exit code (status) — The number a command returns — 0 for success, non-zero for
failure — readable as $?. See Functions, exit codes & error handling
Function — A named, reusable block of commands inside a script. See Functions, exit codes & error handling
cron / crontab — The scheduler that runs commands on a timetable, edited with
crontab -e. See Scheduling with cron & timers
Servers, services & remote
SSH (secure shell) — A secure way to log into and run commands on another machine over the network. See SSH & working remotely
SSH key — A key pair used to log in over SSH without a password, more secure and convenient. See SSH & working remotely
scp / rsync — Commands that copy files to and from a remote machine over SSH. See SSH & working remotely
Daemon / service — A background program that runs without a terminal, managed by a service manager. See Services & systemd
systemd / systemctl — The init system that runs services, controlled with
systemctl (start, stop, enable at boot). See Services & systemd
journalctl — Reads the systemd journal — a service’s logs — with -u to filter
and -f to follow. See Services & systemd
df / du — Report free disk space per filesystem (df) and how much space a
directory uses (du). See Monitoring, disk & logs