The tree
Linux keeps every file in one tree of folders, also called directories. The tree starts at a single folder, the root, written as a slash: /. Even a USB stick you plug in is attached somewhere inside this one tree.
Linux puts the same kinds of file in the same places. /home holds each user's own folder. /etc holds settings. /usr/bin holds programs: the ls command is the file /usr/bin/ls. /tmp holds temporary files.
A path names one file by spelling out the folders on the way, joined by slashes. /home/sam/notes.txt means: start at the root, go into home, then into sam, and there is notes.txt.
Where you are
Your shell always stands in one folder: the working directory. After you log in, it is your home folder. The command pwd (print working directory) shows it: /home/sam. The pin marks where you are.
ls with no folder name lists the working directory. Here it prints the two names inside /home/sam: notes.txt, a file, and projects, a folder. ls sorts the names from A to Z.
Moving around
cd projects changes the working directory. projects does not start with a slash, so it is a relative path: it is looked up inside the folder you are in. Now you are in /home/sam/projects.
Every folder holds two special names: .. means its parent folder, one level up, and . means the folder itself. So cd .. climbs back to /home/sam. In the root, .. is the root itself.
cd /etc starts with a slash, so it is an absolute path: it is read from the root, whatever folder you are in. The pin starts again at / and goes down into etc. It works the same from anywhere.
~ (tilde) is the shell's short name for your home folder. The shell turns cd ~ into cd /home/sam, an absolute path, so the pin starts at / again. Typing cd on its own does the same.
What happens
;; step 1/9 · tree / the root: the top of the tree ├── home folders hang under folders ├── etc ├── usr │ └── bin └── tmp one tree for every disk: a USB stick is attached (mounted) at a folder inside it, such as /media/...
The user sam and the files notes.txt and projects are an example; your home folder is named after your own user name. On Ubuntu, Debian and Fedora the old folder /bin is now a link to /usr/bin, so ls can be reached as /bin/ls or /usr/bin/ls: the same file. cd is built into the shell rather than being a separate program, because it must change the shell's own working directory (with the chdir system call). ls sorts names in the order of your language settings (the LC_COLLATE locale setting); for plain lower-case names like these that is A to Z.