Linux / LESSON 01

Make yourself at home in the terminal

Navigate files, read command help, and understand permissions.

Written lesson · 7 min reading estimate

Module: IT Foundations · Level: Beginner · Time: ~25 min read + practice You'll be able to: explain why the terminal matters for cloud careers, run and control basic commands, navigate the filesystem with absolute/relative paths, manage files safely, and read & set Unix permissions with chmod/sudo.


1. Why bother with a blinking cursor?

The terminal is the manual transmission of computing: harder to learn than the GUI's automatic, but it gives you total control of the machine. Six reasons it's non-negotiable for an IT career:

  • Power — direct access to the OS; operations that are impossible or painful through menus.
  • Speed — proficient users outrun any amount of clicking.
  • Automation — anything you can type, you can script. Repetitive work disappears.
  • Remote access — servers (and every cloud instance you'll ever manage) usually have no GUI at all.
  • Efficiency — commands sip resources compared to graphical tools.
  • The job market — sysadmin, DevOps, cloud, security, dev: terminal fluency is the shared entry ticket. Interviewers spot its absence in minutes.

Vocabulary ladder: the terminal is the app; the shell is the program interpreting your commands; Bash is the most common shell (Ubuntu default; modern macOS uses the very similar Zsh); the prompt is the text waiting before your cursor.

2. First commands

Reading the prompt

username@hostname:~/current/directory$

Who you are, which machine, where you are. The $ means regular user; a # means root — the all-powerful administrator account. (When you see #, slow down.)

Anatomy of every command

command [options] [arguments]

ls -l /homels is the command, -l the option (long format), /home the argument. Three rules: Unix is case-sensitive, spaces separate the parts, and options usually combine (ls -la).

Getting unstuck (the real superpower)

  • man ls — the manual page (arrows to scroll, q to quit)
  • ls --help — quick summary
  • whatis ls — one-line description

Professionals read man pages constantly. Knowing how to look things up beats memorizing.

Starter kit

date · echo "text" · clear (or Ctrl+L) · history (rerun with !42) · whoami · hostname · uname -a · which python3

Control keys you'll use forever

  • Ctrl+C — stop the running command
  • Tab — autocomplete commands and paths (twice to list options). Use it always; it kills typos.
  • ↑/↓, Ctrl+R — walk or search your command history

3. Navigating the filesystem

No drive letters here. Unix is one tree growing from the root, /:

Directory What lives there
/home user home directories (/Users on macOS)
/etc system configuration
/bin, /usr/bin the command programs themselves
/var logs and variable data
/tmp temp files, cleared on reboot

Three commands are your legs:

  • pwd — where am I?
  • ls — what's here? (-l details, -a hidden files, -h human sizes, -R recursive)
  • cd — go somewhere.

Absolute paths start from root (cd /var/log — works from anywhere). Relative paths start from here (cd Documents). Four special references do heavy lifting:

  • . here · .. one level up · ~ home · - wherever you just were

Lost? pwd to orient, cd ~ to reset. "No such file or directory"? Check spelling (case matters!) and whether you meant absolute vs relative.

4. Working with files — safely

Create: touch notes.txt (empty file) · mkdir -p projects/app/src (nested dirs in one shot). Edit: start with nano file.txt (commands on screen: Ctrl+O save, Ctrl+X exit). Learn vim later — it's powerful, but nano keeps day one frustration-free. View: cat (whole file) · less (paginated, / to search, q to quit) · head -n 5 (first lines) · tail -n 20 (last lines) · tail -f logfile — live-follow a log as it grows. On-call engineers run this constantly. Copy/move: cp source dest (-r for directories, -p preserves attributes) · mv renames AND moves — no recursive flag needed. Find: find ~ -name "*.txt" (also by -type, -size +10M, -mtime -7) · locate name is faster but database-driven (and not always preinstalled — sudo updatedb refreshes it). Wildcards: * any characters · ? one character · [abc] one from the set.

The danger zone

There is no Recycle Bin. rm file.txt is forever. And the infamous:

rm -rf directory/

-r recurses, -f skips every confirmation. Mistype a path or expand a bad wildcard and it will silently erase everything it can reach. Rules: never rm -rf with wildcards or variables you haven't verified, and use rm -i (interactive) while learning.

5. Permissions and sudo

Every file answers three questions for three audiences. The permissions: read, write, execute. The audiences: owner, group, others.

-rw-r--r--  1 harmeet staff 2048 Mar 15 14:30 document.txt

First character: - file, d directory, l link. Then three triplets: owner rw-, group r--, others r--.

chmod: two dialects

Symbolic: chmod u+x script.sh (add execute for owner) · chmod go-w file (remove write from group+others).

Numeric — the 4-2-1 trick: r=4, w=2, x=1; add them per audience:

Number Meaning Typical use
755 rwxr-xr-x scripts, directories
644 rw-r--r-- regular files
600 rw------- private files (keys, secrets)
777 rwxrwxrwx almost never — a security hole

chmod -R applies recursively. chown user:group file changes ownership (needs sudo).

sudo: borrowed superpowers

sudo command runs one command as root — safer than living in a root shell. The discipline that makes you hireable: least privilege. Only elevate when needed, keep secrets at 600, never 777 your way past an error. Three classic fixes:

  • "Permission denied" running your script → chmod u+x script.sh
  • Can't edit a system file → sudo nano /etc/hosts
  • Can't cd into a directory → you need x on the directory

Recap

The terminal is the manual transmission: command [options] [arguments], help is one man away, the filesystem is one tree navigated with pwd/ls/cd and four special paths (. .. ~ -), files are managed with touch/nano/cat/less/cp/mv/find — with great respect paid to rm -rf — and permissions are three questions (rwx) asked of three audiences (owner/group/others), set with the 4-2-1 trick and elevated sparingly with sudo.

Part 2: pipes and redirection, grep/sed/awk, process management, shell scripting, package managers, and SSH — the bridge from your laptop's terminal to every cloud server you'll ever touch.


Quiz

1. In ls -la /var, what is -la? a) An argument b) Two combined options ✅ c) The command d) A path Options modify behavior; -l and -a combine. /var is the argument.

2. You're in /home/harmeet/projects. Which command moves you to /home/harmeet? a) cd ~ b) cd .. ✅ c) cd - d) cd . .. = parent directory. (~ also lands there in this case — but only because home IS the parent; .. is the general answer.)

3. Which permission setting is right for a private SSH key? a) 777 b) 755 c) 644 d) 600 ✅ Owner read+write only. SSH will actually refuse keys with looser permissions.

4. What does tail -f /var/log/syslog do? a) Shows first 10 lines b) Deletes the log c) Live-follows new lines as they're written ✅ d) Formats the log The -f (follow) flag streams appended lines — the standard way to watch logs in real time.

5. Why is rm -rf * dangerous? a) It's slow b) It removes everything matched, recursively, with no confirmation ✅ c) It requires root d) It only works on empty dirs Force + recursive + a wildcard = unrecoverable deletion of whatever * expands to, wherever you happen to be.