Getting Around
You know how to find your stuff on the computer you grew up with: a C: drive, Program Files, your
Documents folder. Sit down at Linux and that map is gone - no C:, no Program Files, just a pile of
short, cryptic folders at the top: etc, var, usr, bin. It feels like someone hid everything.
Nothing's hidden. Linux just organizes the house differently, and once you know what each room is for, finding things becomes obvious. Then we'll cover the other day-one surprise: on Linux you don't download installers - you ask a package manager.
⏭️ This phase gives you the working map. For the deeper "what is a path, what is a directory, how do I navigate" mechanics, The Filesystem, Explained is the companion read.
One tree, not many drives
What it actually is. On Windows you have several separate trees - C:\, D:\, a USB stick as E:\.
On Linux there is exactly one tree, and everything hangs off a single starting point called the
root, written as a lone forward slash: /. Every file and folder lives somewhere under /. A second
hard drive or USB stick doesn't become its own letter; it gets attached into the one tree at some folder
(called "mounting").
📝 Terminology. Root (/) = the very top of the filesystem, the folder that contains everything
else. (Confusingly, "root" is also the name of the all-powerful admin user - we'll meet that root in
Phase 3. Same word, two meanings: the top folder, and the superuser.)
The folders that surprise everyone, and what each is for
You don't need to memorize all of them. You need a feel for the handful you'll bump into constantly:
-
/home- where people's files live. Each user gets a folder named after them:/home/ada. This is your equivalent of the Windows Documents-and-Desktop area - downloads, projects, per-app settings. You start here at login. The shell calls it your home directory and writes it with a shortcut:~. -
/etc- system configuration. To change how something on the machine behaves - the SSH server, the web server, scheduled jobs - you almost always edit a text file under/etc. Think of it as the settings drawer for the whole system. (Memory hook: "etc = Editable Text Configuration" - not the historical origin, but a fair description.) -
/var- variable data: stuff that grows and changes while the machine runs. The big one for beginners is logs, in/var/log- when something breaks and you need to find out why, the answer is very often a file there. Databases and mail queues live under/vartoo. -
/usr- where most installed programs and their supporting files end up (/usr/binholds the programs you can run,/usr/libthe shared code they need). When you install software with a package manager, this is mostly where it lands. -
/bin- the essential commands themselves: the actual programs behindls,cp,cat, and friends. (On many modern distros/binis just a pointer to/usr/bin- same idea either way.)
💡 Key point. The pattern to hold onto: /home is your stuff, /etc is settings, /var is
changing data and logs, /usr and /bin are installed programs. With just those four ideas you can
guess where almost anything lives.
A real example. Let's actually look at the root of the tree:
$ ls /
bin dev home lib media opt root sbin sys usr
boot etc lib64 mnt proc run srv tmp var
What just happened: ls / listed the contents of the root directory - the top of the whole tree. You can
see the rooms just described (etc, home, usr, var, bin) plus several more the system uses
internally. Recognizing the handful that matter is enough to feel oriented.
And to see your own home directory:
$ ls ~
Desktop Documents Downloads projects
What just happened: ~ expanded to your home directory (/home/ada), and ls showed what's inside -
the equivalent of "my files" on the system you already know.
Installing software: ask, don't download
Here's the habit you have to unlearn. On Windows or macOS, installing an app means: go to a website, download an installer, double-click it, click Next a few times. On Linux that's the unusual path. The normal way is a package manager.
What it actually is. A package manager is a built-in program that installs, updates, and removes software from a trusted, curated online catalog called a repository (a "repo" - here it means "the catalog of installable software," not a Git repo). You tell it the name of what you want; it fetches the right version, installs everything that piece of software also needs, and records what it did so it can cleanly remove it later.
📝 Terminology. Package = one installable piece of software, bundled up with its description and its list of dependencies. Package manager = the tool that installs packages. Repository = the online catalog the package manager downloads packages from.
It's closer to an app store than to hunting down installers - except it's a command, and it handles the fiddly "this needs that other thing first" chains automatically.
Which command you use depends on your distro family (the one place that choice matters, per Phase 1):
Debian / Ubuntu → apt
Fedora → dnf
The shape of the commands is the same idea on both. We'll use apt (Ubuntu/Debian) for the walkthrough;
the dnf equivalents are noted alongside.
A real apt install, narrated
Let's install a small, friendly program called tree (it prints a directory as a pretty tree diagram).
First, refresh the catalog so the package manager knows what's available:
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Fetched 119 kB in 1s (98.2 kB/s)
Reading package lists... Done
What just happened: apt update didn't install anything - it downloaded the latest list of what's
available and what versions exist. The sudo in front means "do this as the administrator," because
changing system-wide software needs admin rights - the subject of Phase 3.
(On Fedora you don't usually need a separate update step; dnf install checks freshness itself.)
Now install the program:
$ sudo apt install tree
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 47.9 kB of archives.
After this operation, 116 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 tree amd64 2.0.2-1 [47.9 kB]
Fetched 47.9 kB in 0s (180 kB/s)
Selecting previously unselected package tree.
Setting up tree (2.0.2-1) ...
Processing triggers for man-db (2.10.2-0ubuntu1) ...
What just happened: apt found tree in the catalog, told you exactly what it was about to do, downloaded
it, and set it up. On Fedora the same step is sudo dnf install tree. You were never sent to a website -
the package manager did the whole errand.
⚠️ Gotcha. If apt install reports Unable to locate package, the usual cause is a stale catalog - run
sudo apt update first and try again. If the whole command is missing (apt: command not found), you're
probably on a distro that uses dnf instead - the Phase 1 lesson biting: match the tool to the distro
family.
Confirm it landed:
$ tree --version
tree v2.0.2 (c) 1996 - 2022 by Steve Baker, Thomas Moore, ...
What just happened: the program answers, so it's installed and your shell can find it. The exact version doesn't matter - any answer means success.
To remove a program later, you ask the same manager rather than hunting for an uninstaller:
$ sudo apt remove tree
What just happened: apt knows exactly which files it installed for tree, so it can cleanly take them
all back out. (sudo dnf remove tree on Fedora.) Because they installed it, they can fully uninstall it.
Why this saves you later. Once this clicks, software management on Linux stops feeling mysterious.
Setting up a server, following a tutorial, reproducing someone's environment - it's nearly always a short
list of apt install / dnf install lines. No downloading, no "is this site safe," no leftover junk.
Recap
- Linux has one tree starting at root (
/); there are no drive letters - other disks get mounted into the tree. - The rooms that matter:
/home(your files),/etc(system config),/var(changing data and/var/loglogs),/usrand/bin(installed programs and commands). ~is a shortcut for your own home directory, where you start and keep your day-to-day work.- You install software with a package manager from a trusted catalog -
apton Debian/Ubuntu,dnfon Fedora - not by downloading installers. apt updaterefreshes the catalog;apt install <name>installs (handling dependencies for you);apt remove <name>cleanly uninstalls.
You can find your way and add software. But several of those commands started with sudo, and you may have
felt a flicker of "wait, am I allowed to do that?" That's the right instinct - next, users, permissions, and
what sudo really means.
← Phase 1: What Linux Actually Is · Phase 3: Users, Permissions, and sudo →
Try it yourself
Practice moving around - ls, cd projects, cat readme.txt, mkdir demo, tree:
Before the quiz: without looking back, say (or jot down) the core idea of this phase in your own words.
Check your understanding 2 questions
1. The Linux filesystem is...
2. On Linux you install software by...