Linux • Terminal • Open Source • APT

New to Linux? Start here.

The terminal looks intimidating at first, but the idea is simple: it is a text box where you ask the computer to do a job.

Want to rename every .mp3 file in a folder, install PDF tools, check a server, find a file, or update Linux? The terminal is usually the fastest way to do it.

Goal: This guide is not about memorizing every Linux command. The goal is to get comfortable enough to copy, read, modify, and safely run basic commands.

Why the terminal is worth learning

The terminal is useful because it turns repetitive computer work into one command. Once you understand the pattern, Linux starts to feel less like a mystery and more like a toolbox.

Files

Rename, move, and organize fast

Instead of clicking through hundreds of files, I can rename, sort, copy, or search them with a command.

Open Source

Install real tools with apt

On Ubuntu and Debian-based Linux, apt install feels like an open-source app store for terminal tools.

Servers

Control cloud machines

Most cloud servers do not have a desktop. SSH and the terminal are how I update them, check logs, and fix problems.

Things that make the terminal feel useful

These are the kinds of small wins that make the terminal click.

Rename music files Clean up spaces or weird file names in one folder.
Work with PDFs Merge PDFs, split PDFs, or extract text with free tools.
Find big files See what is filling up a drive without clicking around.
Run a quick web server Share a local folder on your network for testing.

The first commands I would learn

These commands cover most beginner navigation and file work.

Command What it means Example
pwd Print the folder I am currently in. pwd
ls List files and folders. ls -lah
cd Change folders. cd Downloads
mkdir Make a new folder. mkdir test-folder
cp Copy a file. cp notes.txt backup-notes.txt
mv Move or rename a file. mv old-name.txt new-name.txt
cat Print a small file to the screen. cat README.md
nano Open a simple terminal text editor. nano notes.txt
history Show commands I ran before. history | tail

Beginner rule

Before running a command from the internet, look for three things: what command is being run, what file or folder it touches, and whether it uses sudo, rm, or >. sudo asks for administrator power, rm deletes, and > can overwrite a file.

Why apt install is the magic part

On Ubuntu, Debian, Raspberry Pi OS, and many cloud servers, apt is how I install trusted software from the system repositories.

The basic pattern:

sudo apt update sudo apt install package-name
1

Update the package list

This checks the current list of available packages.

sudo apt update
2

Install a tool

This installs the program and any dependencies it needs.

sudo apt install tree
3

Search for a package

This helps me find the package name before installing.

apt search pdf
4

Remove a package

This removes software I no longer need.

sudo apt remove tree

Small projects that make the terminal click

These are simple examples. The point is not to memorize them. The point is to see how one command can replace a lot of clicking.

1

Rename all .mp3 files with spaces

Example: change spaces to underscores in every .mp3 file in the current folder.

First do a preview:

for f in *.mp3; do echo mv -- "$f" "${f// /_}"; done

Then run it for real:

for f in *.mp3; do mv -- "$f" "${f// /_}"; done
2

Install PDF tools

Install free command-line tools for working with PDFs.

sudo apt update
sudo apt install poppler-utils qpdf img2pdf

Examples:

pdftotext notes.pdf notes.txt
pdfunite part1.pdf part2.pdf combined.pdf
qpdf --split-pages big.pdf page-%03d.pdf
3

Find what is using disk space

This shows folder sizes in the current location.

du -h --max-depth=1 | sort -h

A friendlier tool:

sudo apt install ncdu
ncdu
4

Search text inside a project

Install ripgrep, then search a folder fast.

sudo apt install ripgrep
rg "password" .
5

Run a tiny web server

This serves the current folder at port 8000 for local testing.

python3 -m http.server 8000

Then open:

http://localhost:8000
6

Install useful starter tools

This is a practical beginner toolkit.

sudo apt install curl wget git tree htop ncdu tldr ripgrep unzip

What each symbol usually means

Commands are less scary once the symbols stop looking random.

Symbol Meaning Example
~ My home folder. cd ~
. The current folder. rg "hello" .
.. The folder above this one. cd ..
* A wildcard that matches many files. ls *.mp3
| Send output from one command into another. history | tail
> Write output into a file. This can overwrite. echo hello > test.txt
>> Add output to the end of a file. echo hello >> notes.txt
sudo Run as administrator. sudo apt install nginx

Simple practice path

This is the order I would use if I were starting from zero.

Day 1
Navigate files.
pwd, ls, cd, mkdir, touch
Day 2
Copy, move, rename, and edit.
cp, mv, rm, nano
Day 3
Install tools with apt.
sudo apt update, sudo apt install, apt search
Day 4
Use pipes and search.
|, grep, rg, find
Day 5
Use it on a real server.
SSH into a VPS, update it, check services, read logs.

You spun up a server. Now what?

Most VPS and cloud servers are headless, which means there is no monitor, mouse, or desktop to click around in. SSH is the encrypted tunnel into that server. It is your remote terminal, your control panel, and your way to update, install, troubleshoot, and run commands safely from your own computer.

SSH is the portal

When I type an SSH command, my computer opens an encrypted connection to the server. After I log in, the commands I type run on the server, not on my laptop.

ssh username@server_ip

Keys replace passwords

SSH keys are safer than typing a server password over and over. The private key stays on my computer. The server only gets the public key, or in AWS, the matching key is created when the instance is launched.

ssh -i ~/.ssh/student-vps-key.pem ubuntu@YOUR_PUBLIC_IP

Installing SSH on your own Linux machine

If I am turning a local Ubuntu/Debian machine into something I can connect to remotely, I install and enable OpenSSH Server.

Logging in with SSH keys

After SSH exists on the server, the next skill is key-based login: make a key pair, put the public key on the server, then connect without using a server password.

Beginner resources that are not scary

These are the resources I would send someone who is new to Linux and wants a calm, practical starting point.

Free

Linux Journey

A friendly starting point for command-line basics, files, permissions, processes, and Linux fundamentals.

Open Linux Journey

Free

MIT Missing Semester

Best after the basics. It explains the shell, Git, editors, debugging, and the practical tools CS classes often skip.

Open Missing Semester

Free

LinuxCommand.org

A calm, old-school Linux command-line learning site with a free book and beginner shell lessons.

Open LinuxCommand.org

Free

tldr pages

Short command examples when normal manual pages feel too dense.

Open tldr pages

Free

ExplainShell

Paste a shell command and see what the pieces mean. Useful before running commands you do not fully understand.

Open ExplainShell

Official Docs

Ubuntu APT Docs

The official Ubuntu guide for installing, removing, updating, and managing packages with APT.

Open Ubuntu APT docs

Official Docs

GNU Bash Manual

Not the first thing I would read, but useful once I want the real reference for Bash behavior.

Open Bash manual

Under $10/month

Hack The Box Academy Student

Highly recommended for cybersecurity students after basic Linux comfort. The student plan is listed at $8/month and gives access to modules up to Tier II.

Open HTB Academy subscriptions

Next Step

AWS Free VPS Guide

After learning the terminal basics, use them on a real disposable cloud VM.

Open AWS VPS guide

The mindset

The terminal is not about being a genius or memorizing a thousand commands. It is about learning a small set of patterns: move around, inspect files, install tools, run commands, read errors, and try again. That is enough to start doing real Linux, cloud, web server, and cybersecurity work.