Your Friendly Guide to Terminal Mastery (Linux CLI Commands)

 

captionless image

Welcome to the wonderful world of the Linux command line. I know, I know that black screen with blinking cursor might look intimidating at first, but trust me, once you get the hang of it, you’ll feel like you have superpowers or maybe not :)

Think of the command line as a direct chat with your computer. Instead of clicking around, you tell it exactly what to do. It’s faster, precise, and pretty cool once you dive in.

Getting Started: Your Linux Command Line Journey

Every Linux user began right where you are now, feeling confused, making mistakes, maybe even accidentally deleting files (it happens!). The secret? Practice safely and don’t be afraid to experiment.

The best part? These commands work on every Linux distribution, including Ubuntu, Fedora, Debian, and more. They’re your universal tools, ready to help you no matter which Linux flavour you use. Navigation & Basic Operations: Finding Your Way Around

Let’s start with the absolute basics moving around your system like a pro.

pwd (Print Working Directory)

This is your GPS in the Linux world. When you’re lost and wondering “where am I?”, just type pwd and boom your computer tells you exactly where you are.

pwd
# Output: /home/username/Documents

Think of it like asking “What’s my current address?” in the file system.

ls (List Directory Contents)

This is probably the command you’ll use most often. It’s like opening a folder and seeing what’s inside.

ls          # Basic listing
ls -l       # Detailed view with permissions, size, date
ls -la      # Shows hidden files too
ls -lh      # Human-readable file sizes

The -l flag gives you the full story about each file – who owns it, when it was created, and how big it is. The -a flag reveals hidden files (those starting with a dot).

cd (Change Directory)

This is how you navigate like clicking on folders, but faster.

cd Documents        # Go to Documents folder
cd ..              # Go back one level (like clicking "back")
cd ~               # Go to your home directory
cd /               # Go to the root of the system

Pro tip: Use tab completion! Start typing a folder name and press Tab, Linux will complete it for you.

clear

When your terminal gets messy and you want a fresh start, just type clear. It’s like wiping a whiteboard clean.

File & Directory Management: Organizing Your Digital Life

Now let’s learn how to create, move, and organize your files and folders.

mkdir (Make Directory)

Creating folders is super easy.

mkdir my_project           # Create a single folder
mkdir -p projects/web/css  # Create nested folders all at once

The -p flag is magical, it creates all the parent folders if they don’t exist.

touch

This creates empty files instantly.

touch readme.txt          # Create an empty text file
touch file1.txt file2.txt # Create multiple files at once

cp (Copy)

Making copies of files is essential for backups.

cp file.txt backup.txt              # Copy file
cp -r folder/ backup_folder/        # Copy entire folder
cp file.txt /home/user/Documents/   # Copy to another location

The -r flag means “recursive” it copies folders and everything inside them.

mv (Move/Rename)

This command does double duty it moves files AND renames them.

mv old_name.txt new_name.txt        # Rename a file
mv file.txt /home/user/Documents/   # Move to another folder
mv folder/ /backup/                 # Move entire folder

rm (Remove)

Be careful with this one! It deletes files permanently.

rm file.txt              # Delete a file
rm -r folder/            # Delete folder and contents
rm -i file.txt           # Ask for confirmation before deleting

The -i flag is your safety net it asks “are you sure?” before deleting.

rmdir

This removes empty directories only.

rmdir empty_folder       # Only works if folder is empty

File Content & Viewing: Reading Your Files

cat (Concatenate)

Perfect for quickly viewing small files.

cat file.txt             # Display entire file content
cat file1.txt file2.txt  # Display multiple files

less

For longer files, less is your friend. It lets you scroll through content page by page.

less long_file.txt       # Opens file in paginated viewer
# Use arrow keys to scroll, 'q' to quit

head and tail

Sometimes you just need a peek at the beginning or end of a file.

head -n 10 file.txt      # Show first 10 lines
tail -n 10 file.txt      # Show last 10 lines
tail -f logfile.txt      # Follow file as it grows (great for logs!)

Text Editing: Creating and Modifying Content

nano

This is the most beginner-friendly text editor. All the keyboard shortcuts are shown at the bottom of the screen.

nano file.txt            # Open or create file in nano
# Ctrl+X to exit, Ctrl+O to save, Ctrl+K to cut line

Nano is like training wheels for Linux text editing it’s friendly and forgiving.

vim

More powerful but with a steeper learning curve. Vim has different modes for different tasks.

vim file.txt             # Open file in vim
# Press 'i' to insert text, Esc to exit insert mode
# Type ':wq' to save and quit, ':q!' to quit without saving

Search & Find: Locating Your Stuff

find

Your personal detective for finding files.

find . -name "*.txt"         # Find all .txt files in current directory
find /home -name "config"    # Find files named "config" in /home
find . -type d -name "test"  # Find directories named "test"

grep

Search for text inside files incredibly powerful.

grep "error" logfile.txt     # Find lines containing "error"
grep -i "ERROR" file.txt     # Case-insensitive search
grep -r "TODO" .             # Search all files in current directory

locate

Super fast file finding, but requires an updated database.

locate filename              # Quick search by filename
sudo updatedb               # Update the locate database

File Permissions: Controlling Access

chmod

Control who can read, write, or execute your files.

chmod 755 script.sh          # Owner: read/write/execute, Others: read/execute
chmod +x script.sh           # Make file executable
chmod -w file.txt            # Remove write permission

The numbers represent permissions: 4=read, 2=write, 1=execute. Add them up for combinations. I will write another blog on this topic specifically later. For now just know these.

chown

Change who owns a file.

sudo chown user:group file.txt    # Change owner and group
sudo chown user file.txt          # Change just the owner

System Information: Knowing Your System

whoami

Simple but useful tells you which user you’re logged in as.

whoami
# Output: your_username

uname

Get information about your Linux system.

uname -a                     # Show all system information
uname -r                     # Show kernel version

df

Check your disk space essential for system management.

df -h                        # Show disk usage in human-readable format
df -i                        # Show inode usage

free

Monitor your memory usage.

free -h                      # Show memory usage in human-readable format
free -m                      # Show memory in megabytes

top

Real-time view of what’s happening on your system.

top                          # Interactive process viewer
# Press 'q' to quit, 'k' to kill a process

Process Management: Controlling Running Programs

ps

See what programs are running.

ps aux                       # Show all running processes
ps -ef                       # Alternative format
ps aux | grep firefox        # Find specific process

kill

Stop processes that are misbehaving.

kill 1234                    # Kill process with ID 1234
killall firefox              # Kill all Firefox processes
kill -9 1234                 # Force kill (use as last resort)

jobs

See background tasks in your current session.

jobs                         # List active jobs
bg                           # Put job in background
fg                           # Bring job to foreground

Network Commands: Connecting to the World

ping

Test if you can reach other computers or websites.

ping google.com              # Test connectivity to Google
ping -c 4 192.168.1.1        # Send only 4 ping packets

curl

Download files or test web connections.

curl https://example.com     # Download webpage content
curl -O https://site.com/file.zip  # Download and save file

wget

Another way to download files from the internet.

wget https://example.com/file.zip   # Download file
wget -r https://site.com            # Download entire website

Help & Documentation: When You Need Guidance

man

Your built-in manual never be lost again.

man ls                       # Show manual for ls command
man -k keyword               # Search for commands related to keyword

which

Find out where a program is installed.

which python                 # Show path to python executable
which firefox                # Find Firefox location

history

See your command history great for remembering what you did.

history                      # Show recent commands
history | grep install      # Find commands containing "install"
!123                         # Re-run command number 123
!!                           # Re-run last command

Common Beginner Mistakes (And How to Avoid Them)

  1. Using **rm** without thinking: Always double-check what you’re deleting. Use rm -i for interactive deletion.
  2. Forgetting sudo: Some commands need administrator privileges. If you get “permission denied,” try adding sudo at the beginning.
  3. Not using tab completion: Why type long filenames when Linux can complete them for you?
  4. Ignoring case sensitivity: Linux is case-sensitive. File.txt and file.txt are different files.
  5. Not reading the manual: When stuck, man command_name is your best friend.

Your Next Steps

Start with the navigation commands (pwd, ls, cd) and practice moving around your system. Then gradually add file management commands (mkdir, touch, cp, mv, rm). Don’t try to memorize everything at once – muscle memory comes with practice.

Remember, every Linux expert was once a beginner who felt overwhelmed by the command line. The key is consistent practice and not being afraid to experiment. Create a practice directory, try commands, make mistakes, and learn from them. The best way to learn is by doing. Open your terminal and start practicing these commands today. You’ve got this!