The terminal is not a personality test. It is just a place where small commands combine well. You do not need to know everything; you need a dependable map.
Find your place
Start with pwd, ls, and cd. These commands answer the first question: where am I, and what is here? Add ls -la when hidden files matter.
Read before editing
Use cat, less, head, and tail to inspect files. Use tail -f for logs. A surprising amount of debugging is just learning to look before changing anything.
Search with intent
grep and find are classic, but modern teams often use rg because it is fast and friendly. Search filenames first, then contents.
Move carefully
cp, mv, mkdir, and rm are simple until they are not. Practice on harmless files, quote paths with spaces, and pause before recursive deletes.
Understand processes
ps, top, kill, and df help answer what is running and what resources are left. They are the basics of keeping a development machine from becoming haunted.
The 20 commands, grouped by the question they answer
You do not need to memorize a manual. Twenty commands cover almost everything a newer developer does day to day, and they sort neatly by the question each one answers.
Where am I and what is here? pwd prints your current directory, ls lists files (ls -la shows hidden files and details), and cd moves between directories.
What is in this file? cat prints a whole file, less lets you scroll through a long one, and head and tail show the first or last lines — tail -f even follows a log as it grows.
Where is the thing I need? grep searches inside files for text, and find locates files by name or type across a directory tree.
Change the filesystem, carefully. cp copies, mv moves or renames, rm deletes (there is no recycle bin, so pause here), mkdir makes a directory, and touch creates an empty file or updates its timestamp.
What is running and how healthy is the machine? ps lists processes, top shows live resource use, kill stops a process by its ID, df -h shows free disk space, and du -h shows how much space a folder is using.
That is twenty commands that answer real questions. Learn the question each one belongs to and the command names stop feeling arbitrary.
Pipes and redirection: combining small tools
The real power of the command line is that small tools snap together. A pipe (|) sends the output of one command into the next, so ps aux | grep node lists processes and then filters for the ones mentioning node. Redirection sends output to a file: > overwrites a file with the output, while >> appends to it. Once these two ideas click, twenty commands start to feel like a hundred, because you can chain them into exactly the tool you need in the moment.
Prefer to test your recall? Try the Linux Commands Quiz — ten questions, each with a short explanation.
Permissions without fear
Linux controls access with three permissions — read, write, and execute — for three groups: the file's owner, its group, and everyone else. ls -l shows them as a string like -rwxr-xr--. chmod changes them (for example, chmod +x script.sh makes a script runnable), and chown changes ownership. You rarely need more than this at first, and understanding it removes the mystery behind most "permission denied" messages.
Getting help without leaving the terminal
You are never expected to remember every flag. man opens the manual for any command, and most commands accept --help for a quick summary of their options. When a command misbehaves, reading its own help is almost always faster than searching the web, and it builds the habit of learning the tool rather than copying a line you do not understand.
Frequently asked questions
What are the most important Linux commands to learn first? Start with navigation (pwd, ls, cd), reading files (cat, less, head, tail), searching (grep, find), and safe file changes (cp, mv, rm, mkdir). Add process and disk commands (ps, top, df) as you go.
Is rm really that dangerous? It can be — there is no recycle bin, and rm -rf deletes a folder and everything in it permanently. Read the path twice before you run it, and avoid running deletion commands you copied without understanding.
Do I need to learn the terminal if I have a graphical file manager? For everyday computing, no. For development, servers, and automation, the terminal is faster, scriptable, and often the only interface available, so a small command vocabulary pays off quickly.
The goal
The command line becomes less scary when every command answers a question. Where am I? What changed? What is running? What failed? Learn those questions and the commands start to stick.