COURSE Β· 6 LESSONS Β· 100% FREE
🐧

Linux CLI: No Mouse Required

The terminal. Where real developers live. No GUI, no hand-holding. Just you and a blinking cursor that silently judges your every typo.

0Lessons
0Code Examples
ZeroPrerequisites
0%
You've completed 0 of 6 lessons
J/↓ Next
K/↑ Prev
Esc Collapse
/ Search
Getting Around
01

The Terminal: Your New Home

The terminal is a text-based interface to your computer. No icons, no mouse. Just you, a prompt, and the cold embrace of the blinking cursor.

🧠 Note for the confused:
The Linux command line is where real developers live. No mouse. No pretty buttons. Just you and a cursor blinking at you judgmentally. It's like living in the Matrix but without the cool leather coat.
# Open terminal: Ctrl+Alt+T (Linux), Terminal.app (Mac), WSL (Windows)

# Your first commands:
whoami        # who are you?
pwd           # where are you?
date          # what time is it?
cal           # show calendar
echo "Hello"  # print something

# The shell prompt:
# user@machine:~$ ls
# user = your username
# machine = computer name
# ~ = home directory (/home/user)
# $ = normal user (# = root)

# Get help:
man ls        # manual page for ls
ls --help     # quick help
whatis ls     # one-line description
02

Navigating The Filesystem

ls lists files. cd changes directory. pwd shows where you are (because you WILL get lost). These three commands get more use than any app on your phone.

🧠 Note for the confused:
ls lists files. cd changes directories. pwd tells you where you are (in case you're lost, which you will be). These three commands will be used more than any app on your phone.
# Listing files
ls                      # list files
ls -l                   # detailed (permissions, size, date)
ls -a                   # show hidden files (starting with .)
ls -la                  # detailed + hidden
ls -lh                  # human-readable sizes (K, M, G)
ls *.txt                # only .txt files

# Changing directories
cd /                    # go to root
cd ~                    # go home
cd ..                   # go up one level
cd -                    # go back to previous directory

# Paths
/absolute/path          # starts from root
relative/path           # starts from current directory
~/Documents             # home relative
./current               # explicit current dir
../parent               # parent directory

# Directory listing tree
tree                    # show directory structure
tree -L 2               # only 2 levels deep
03

Files: Create, Read, Edit, Destroy

touch creates files. cat reads them. nano/vim edit them. rm destroys them FOREVER (no recycle bin, no second chances). You have been warned.

🧠 Note for the confused:
cp copies files. mv moves/renames files. rm deletes files FOREVER. No trash bin. No 'are you sure?'. 'rm -rf /' is the nuclear launch code of Linux. Don't type it. Seriously.
# Create files
touch file.txt           # create empty file
echo "Hello" > file.txt # create with content (> overwrites)
echo "More" >> file.txt  # append (>> adds)

# Read files
cat file.txt             # print entire file
less file.txt            # paginated reading (space=next, q=quit)
head -5 file.txt         # first 5 lines
tail -5 file.txt         # last 5 lines
tail -f file.txt         # follow (like logs)

# Edit files
nano file.txt            # simple editor
vim file.txt             # the editor that ate my weekend

# Copy / Move / Delete
cp source.txt dest.txt   # copy
cp -r dir1 dir2          # copy directory
mv old.txt new.txt       # move (or rename)
rm file.txt              # DELETE FOREVER
rm -rf dir               # delete directory + contents (CAREFUL!)

# Find files
find . -name "*.py"       # find Python files
find . -size +1M          # files larger than 1MB
grep -r "function" .      # search for text in files
Power Tools
04

Permissions & Users

Linux is paranoid about who can do what. r=read, w=write, x=execute. chmod changes permissions. sudo gives you God mode. Use it wisely (or don't, I'm not your mom).

🧠 Note for the confused:
Files have permissions. r=read, w=write, x=execute. 'chmod 755 script.sh' makes it executable. It's like setting a curfew for your files. 'You can be read but not written. Party's over at 9.'
# File permissions (ls -l shows them)
# -rwxr-xr-- 1 user group size date filename
# ^ ^^^ ^^^ ^^^
# | owner group world
# type: - = file, d = directory, l = symlink

touch script.sh
chmod +x script.sh         # make executable
chmod 755 file             # rwxr-xr-x
chmod 644 file             # rw-r--r--
chmod 600 file             # rw------- (private!)

# chmod numbers:
# 7 = rwx (read+write+execute)
# 6 = rw- (read+write)
# 5 = r-x (read+execute)
# 4 = r-- (read only)
# 0 = --- (nothing)

# Ownership
chown user:group file
chown -R user:group dir/   # recursive

# Sudo (super user do)
sudo apt update
sudo !!                     # re-run last command with sudo
sudo -i                     # root shell (be careful!)

# Users & groups
whoami                      # current user
id                          # user + group info
passwd                      # change password
adduser newuser             # create user
05

Processes & System Monitoring

ps shows processes. top shows what's eating your CPU. kill stops misbehaving programs. It's like being a manager who actually fires people.

🧠 Note for the confused:
Processes are running programs. 'ps' lists them, 'kill' stops them. 'top' shows what's eating your CPU. It's like looking at a busy restaurant kitchen - lots of activity, someone's burning something, and the manager is stressed.
# Processes
ps                           # your processes
ps aux                       # ALL processes
top                          # live process viewer (q=quit)
htop                         # prettier top (install it)

# Kill processes
kill PID                     # ask nicely
kill -9 PID                  # FORCE (SIGKILL, no cleanup)
kζˆ‘η»™all python              # kill all Python processes

# System info
uname -a                     # kernel version
cat /proc/cpuinfo            # CPU info
free -h                      # memory usage
df -h                        # disk usage
du -sh dir/                  # directory size

# Network
ip addr                      # IP addresses
ip route                     # routing table
ping google.com              # check internet
curl ifconfig.me             # your public IP
netstat -tlnp                # listening ports
ss -tlnp                     # modern netstat
06

Package Managers & The Endless 'Just Install'

apt installs software. pip installs Python packages. npm installs Node packages. A developer's life is just typing 'install' over and over.

🧠 Note for the confused:
Package managers (apt, yum, pacman) install software. 'sudo apt install lolcat' = 'computer, please install the rainbow text maker.' Linux is the only OS where installing software makes you feel like a hacker.
# Debian/Ubuntu (apt)
sudo apt update              # update package list
sudo apt upgrade             # upgrade installed packages
sudo apt install nginx       # install nginx
sudo apt remove nginx        # uninstall
sudo apt autoremove          # remove unused deps

# Add repository
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12

# Python (pip)
pip install flask            # install package
pip install -r requirements.txt  # from file
pip list                     # installed packages
pip freeze > requirements.txt   # save your deps

# Node (npm)
npm install express          # install
npm install -g nodemon       # global install
npm list                     # installed packages
npx create-react-app my-app  # run without installing

# Snap/Flatpak (universal packages)
snap install code            # VS Code
flatpak install firefox

# THE one-liner of power:
sudo apt update && sudo apt upgrade -y
echo "Everything is up to date. You may feel productive now."