Linux
Step 18. Linux Basic Commands 1 — Finding Your Way in the Black Window
Level 0 — Understanding Computer Operation and Structure | Difficulty ★★★☆☆ | Estimated time: 3 hours
Prerequisites: Step 17 complete. From today on, you work inside Ubuntu in the virtual machine. Power on the VM and open a terminal.
- What you need: the Ubuntu virtual machine (installed in Step 17), a terminal. This section’s memorization goal is just five commands —
pwd,ls,cd,mkdir,touch. - Caution: this section’s exercise is read-only in the stated lab because it’s inside the VM. The delete command (
rm) appears, but its only targets are practice files we create ourselves. ⚠️rmhas no recycle bin, so don’t use it on anything outside what this unit tells you to. - Hands-on note: the outputs in this unit are real results run on Ubuntu 24.04. The verification was done in the administrator (root) account’s home (
/root), so you’ll see/rootin paths, but on your VirtualBox Ubuntu you’ll see/home/username. Other than that difference, everything is the same.
Do you know why hackers in movies only ever tap away at a black window? It’s not for show. Most real servers have no graphical screen (desktop) at all. The Linux systems a security professional meets — target servers, analysis toolboxes, cloud instances — are almost always operated through the terminal (command line). Today you learn its first page: “finding your way and creating files.”
1. Learning Objectives
By the end of this unit, you will be able to:
- Explain that the Linux filesystem is a single tree rooted at
/ - Use
pwd,ls -la, andcdto figure out your location and move around without a GUI - Create directories and files with
mkdirandtouch - Know that
rmhas no recycle bin, and follow the check-before-deleting rule - Use Tab completion and the ↑ key command history habitually
2. Background Knowledge — Today’s Tools and Concepts
This section’s Tools at a Glance
| Category | Details |
|---|---|
| Language/Environment | Ubuntu Linux terminal, default shell bash |
| This section’s commands | pwd (current location), ls / ls -la (listing), cd (move), mkdir / touch (create), rm / rmdir (delete) |
| Concepts needed | root (/), home directory (~), absolute vs. relative paths, hidden files, case sensitivity |
2-1. There’s Only One Tree — /
Windows has multiple drives: C:, D:… each a separate tree. Linux is different. There is exactly one tree, and its root is / (a single slash, read as root).
/ ← the root (root) ├── home ← users' homes │ └── lee ← my home (home directory) ├── etc ← configuration files ├── var ← changing data such as logs ├── tmp ← temporary files └── usr ← programs
Windows’ C:\Users\Lee is /home/lee in Linux. Plug in a USB stick or attach another disk — everything gets grafted somewhere onto this one tree like a folder. “Every storage in the world hangs on one tree” is a big difference from Windows.
2-2. Directory = Folder
In Linux, folders are called directories. They’re the same thing. From now on, this book will say “directory” when talking about Linux — understand it as “the Linux name for a folder.”
2-3. “Everything Is a File” — The Philosophy of Linux
Linux’s famous design philosophy: “Everything is a file.”
- A document? A file
- A directory? A special file containing a list
- A hard drive device? Represented as a file under
/dev - Information about a running process? Represented as a file under
/proc
Why design it this way? To unify how you handle things. Reading, writing, copying, granting permissions — every skill you use on files works the same way on devices and system information. For now, remember just one line: when looking for something in Linux, start with “that’s probably a file too.”
2-4. The Shell — What the Black Window Really Is
When you type a command into the terminal, who receives it and runs it? That intermediary is the shell. It wraps the operating system’s core (the kernel) like a shell and translates our commands — a conversation partner. Ubuntu’s default shell is bash, and the terminal window is the counter where you talk to that shell.
The relationship, in order: terminal (the counter) → shell (the interpreter) → kernel (the body). Just as PowerShell is Windows’ shell, bash is Linux’s shell. The variables, conditionals, and loops you learned in Steps 7–9 exist in bash too, and you’ll meet them again later in this course under the name shell scripts.
2-5. Case Sensitivity — A Decisive Difference from Windows
In Windows, File.txt and file.txt are treated as the same file. Linux is different — they’re treated as two completely different files. Home and home differ too.
Case mismatch is one common cause of a path error. Also check the current directory, spelling, permissions, and whether the file exists. Filesystem and mount options can affect case behavior.
3. Follow Along
Before you begin. Use a regular user, not a root shell. Confirm pwd before removing your practice directory. If you are using WSL, paths under /mnt/c are Windows files, not disposable guest data.
How to open a terminal: search for Terminal under “Show Apps” at the bottom left of the Ubuntu desktop, or press Ctrl + Alt + T.
3-1. Where Am I? — pwd
Open the terminal and type:
pwd
/root
(2026-09-09, source example using Ubuntu 24.04. The source example used the root account, so it shows /root; on your VM it will show /home/username.)
How to read the output: print working directory — it tells you “where you’re standing right now.” When you open a terminal, you start out standing in your own home (home directory). A regular user’s home is /home/username; the administrator root’s home is, exceptionally, /root.
Why do it: the black window has no map. pwd is the prescription when you feel lost. From now on, “where am I running this command?” will often determine the result — it’s the #1 command you’ll find yourself typing out of habit.
3-2. Looking Around — ls and ls -la
ls -la
total 28 drwx------ 5 root root 4096 Sep 8 21:35 . drwxr-xr-x 22 root root 4096 Sep 9 11:28 .. -rw-r--r-- 1 root root 3106 Apr 22 2024 .bashrc drwx------ 4 root root 4096 Sep 8 21:35 .cache drwx------ 2 root root 4096 Sep 8 21:35 .config -rw-r--r-- 1 root root 0 Sep 9 11:26 .motd_shown -rw-r--r-- 1 root root 161 Apr 22 2024 .profile drwx------ 2 root root 4096 Feb 10 2026 .ssh
Illustrative output. Values, wording, account names, and available fields vary by environment.
How to read the output:
-lis the long format (permissions, owner, size, date);-ashows hidden files too (files starting with a dot.are hidden)- The very first character:
dmeans directory,-means file .means “right here,”..means “one level up” — you’ll use these two in the very next section- Hidden files like
.bashrcand.profileare “settings and records normally invisible to the user”
Why do it: the existence of hidden files connects directly to security. Malware and attackers love dot-prefixed files when hiding their tracks — because they’re “invisible to plain ls.” From today, make ls -la your default.
3-3. Moving — The Four Steps of cd
cd / ls
bin dev home init lib64 media opt root sbin srv sys usr boot etc lib lib32 lost+found mnt proc run snap tmp var
Illustrative output. Values, wording, account names, and available fields vary by environment.
Just like the map in Section 2-1, you can see home, etc, var. Now let’s come back home:
cd ~ pwd
/root
The four steps, summarized:
| Command | Meaning |
|---|---|
cd Documents |
Downward (relative path — relative to where you are) |
cd .. |
One step up (.. = parent directory) |
cd ~ |
To my home (~ = shorthand for home directory) |
cd / |
To the root |
Absolute vs. relative paths: writing from the root, like /home/lee/Documents, is an absolute path; writing relative to where you are, like Documents, is a relative path. It’s the same concept you learned on Windows — only the notation changed from \ to /.
3-4. Creating — mkdir and touch
Let’s make a practice space:
mkdir practice cd practice touch file1.txt file2.txt ls -la
total 8 drwxr-xr-x 2 root root 4096 Sep 9 11:29 . drwx------ 6 root root 4096 Sep 9 11:29 .. -rw-r--r-- 1 root root 0 Sep 9 11:29 file1.txt -rw-r--r-- 1 root root 0 Sep 9 11:29 file2.txt
Illustrative output. Values, wording, account names, and available fields vary by environment.
How to read the output: mkdir creates a directory; touch creates an empty file. See the size of 0 — these are empty-shell files with no content yet.
Why touch: “staking out a spot first” turns out to be surprisingly common in real work — creating a placeholder for a log file, creating a target for a command, and of course practice like right now.
3-5. Deleting — rm and Precautions
⚠️ Caution —
rmhas no recycle bin. The moment you delete, it’s over; there’s no recovery menu.rm -r(delete a whole directory) in particular wipes out everything below it if you mistype the target. This section’s rule: before typing rm, always confirm with pwd and ls “where am I and what am I deleting.” Thank goodness this is a VM — without this habit, you’ll someday delete something precious.
rm file1.txt ls
file2.txt
Illustrative output. Values, wording, account names, and available fields vary by environment.
It’s gone. Empty directories are removed with rmdir, which has an interesting safety mechanism. Try it on practice, which still has a file inside:
cd ~ rmdir practice
rmdir: failed to remove 'practice': Directory not empty
Illustrative output. Values, wording, account names, and available fields vary by environment.
How to read the output: an error saying “the directory is not empty.” rmdir deletes only empty directories — a safety design that prevents the accident of wiping out the contents by mistake. When you’re done practicing, delete the files inside first and then rmdir, or clean up with rm -r practice after checking.
3-6. Weapons for Your Fingers — Tab Completion and the ↑ Key
This section’s two hidden heroes.
- Tab completion: type
cd praand press Tab. It completes topractice. If there are overlapping candidates, pressing Tab twice shows them. ① It eliminates typos at the source (if it completes, the name exists), and ② it’s several times faster. Pros aren’t fast because of their typing — they’re fast because of Tab. - ↑ key: press the up arrow and the command you just ran comes back. Keep pressing to reach the one before that, and before that. You can also see the full list with the
historycommand. And this history is all recorded in a file (.bash_history) — convenience and record-keeping are two sides of the same coin (you’ll search this file in Step 20).
4. Missions & Exercises
Mission — Building a Structure Without a GUI
Using only the terminal, create the following structure:
practice-lab/
├── recon/ (recon materials)
├── logs/ (log collection)
└── notes/ (memos)
└── day1.txt
Sequence hint: mkdir practice-lab → cd practice-lab → mkdir recon logs notes (multiple in one line!) → cd notes → touch day1.txt.
Verify: after cd ~/practice-lab, ls shows three directories, and ls notes shows day1.txt — done. When finished, demolish it too with cd ~ then rm -r practice-lab — but check with ls before deleting!
Why this matters for security: the first move when starting a breach investigation or attack exercise is “create a working directory.” An evidence folder, a tools folder, a notes folder. Only the systematic stay on course amid the chaos.
Exercises
Question 1. In Linux, what do / and ~ each refer to, and what is the absolute path of the home directory of a regular user lee?
Question 2. In ls -la output, what’s the difference between entries whose first character is d and those with -, and what do the extra files shown when you add the -a option have in common?
Question 3. You created Report.txt in Linux, but cat report.txt says “no such file.” State the cause and the habit that solves it.
Question 4. What does the .bash_history file contain, and why is it a staple piece of evidence in breach investigations — and a target attackers want to erase?
Answers & completion criteria · expand/collapse
5. Model Answers & Completion Criteria
Mission Model Answer
cd ~ mkdir practice-lab cd practice-lab mkdir recon logs notes cd notes touch day1.txt cd ~/practice-lab ls # logs notes recon ls notes # day1.txt
Demolition (keeping the check-before-delete habit):
cd ~ ls practice-lab # confirm the target is correct rm -r practice-lab
How to verify: ① Does ls show all three directories — recon, logs, notes? ② Does ls notes show day1.txt? ③ Did you check the target with ls before typing rm -r — that sequence itself is a grading criterion.
Exercise Answers
Answer 1. / is the single root of the filesystem; ~ is shorthand for “my home directory.” User lee’s home is /home/lee. (For reference, administrator root’s home is exceptionally /root — that’s why this unit’s illustrative outputs show /root.)
Answer 2. d is a directory; - is a regular file. Adding -a additionally shows hidden files that start with a dot (.) — such as .bashrc and .profile, settings and record files normally invisible.
Answer 3. A case mismatch — Linux treats Report.txt and report.txt as different files. Two habits solve it: ① visually confirm the real name with ls, and ② don’t type names by hand — enter them with Tab completion. If it completes, the name exists.
Answer 4. Shell history may retain some interactive commands, depending on shell configuration and session state. It can be incomplete or modified; use it as a clue rather than a complete forensic record.
Completion Checklist
- [ ] I can explain that Linux has a single root,
/ - [ ] I can check my current location with
pwd - [ ] I can see hidden files with
ls -la - [ ] I can do the four
cdmoves (down/up/home/root) - [ ] I can build a structure with
mkdirandtouch - [ ] I know
rmhas no recycle bin, and I follow the check-before-delete rule - [ ] I used Tab completion and the ↑ key during practice
- [ ] Mission: I built and demolished the practice-lab structure
6. Common Pitfalls & Fixes
Wall 1. “No such file or directory” errors
Cause: possible case mismatch, incorrect directory, missing file, or another path error. Compare the actual names with ls.
Wall 2. I typed cd but nothing happened
Cause: a successful cd is normally silent, but silence alone is not proof. Check its immediate exit status and confirm the new location with pwd.
Wall 3. Confusing the slash direction
Symptom: you type backslashes like home\lee.
Cause: Windows habits.
Fix: Linux always uses / (forward-leaning). Remember it as the same direction as URLs — like ubuntu.com/download.
Wall 4. I deleted a file and want it back
Symptom: you now need a file you deleted with rm.
Cause: rm has no recycle bin (Section 3-5).
Fix: it can’t be undone — that’s why the check-before-delete rule exists. However, this section’s VM practice can be rolled back with a snapshot! That’s the true value of Step 17’s snapshots, and the charm of a lab where mistakes become learning instead of terror.
Wall 5. A strange symbol appears and input keeps going
Symptom: a > prompt appears and the command won’t end.
Cause: you opened a quote and never closed it. The shell is waiting, thinking “the sentence isn’t finished yet.”
Fix: cancel with Ctrl + C and type it again. It’s the same kind of thing as PowerShell’s brace wall (Step 8) — if you opened it, close it.
7. Summary
This section’s Concepts
| Concept | One-line description |
|---|---|
/ (root) |
Linux’s single root — everything starts here |
| Home directory | /home/username — my home, abbreviated ~ |
| “Everything is a file” | The Linux philosophy of treating even devices and processes as files |
| Hidden files | Start with a dot (.) — invisible to plain ls |
| Case sensitivity | File and file are different files! |
This section’s Commands
| Command | What it does |
|---|---|
pwd |
Check current location |
ls / ls -la |
List / detailed listing including hidden files |
cd |
Move (.. up, ~ home, / root) |
mkdir, touch |
Create a directory, create an empty file |
rm, rmdir |
Delete (⚠️ no recycle bin! Always verify) |
Tab, ↑ |
Completion, recall command history |
More Important Than Commands: The Instinct
The Linux terminal is the common language of security work. Target servers, analysis tools, and CTF challenge environments are all operated through this black window. This section’s five commands — locate, list, move, create, delete — are the greetings of that common language, and the habit of viewing hidden files with ls -la and checking before rm are security habits as-is.
Remember one more thing. The place that most dramatically demonstrates Section 2-3’s “everything is a file” is /proc. Run cd /proc then ls, and you’ll see directories named with numbers — those numbers are PIDs (the ones from Step 13). Linux shows every running process as a directory, and reading the files inside reveals the process’s state. Information you viewed in Step 13 with special commands can be seen in Linux “just by reading files” — transparency created by philosophy.
Once every box is checked, Step 18 is complete.
ONE STEP FURTHER
Finished this lesson?
Check the completion criteria, then mark your progress.