$

Command Syntax

$ command [options] [arguments]
Command
The program to execute
Options
Flags that modify behavior (e.g., -l, --help)
Arguments
Targets like files or directories

File Management

ls - List directory contents

$ ls -lah /path/to/directory

Common options: -l (long format), -a (show hidden), -h (human readable)

cd - Change directory

$ cd /path/to/directory
$ cd ~ # Go to home directory
$ cd .. # Go up one directory
$ cd - # Go to previous directory

pwd - Print working directory

$ pwd

Shows the full path of current directory

mkdir - Make directories

$ mkdir dirname
$ mkdir -p /path/to/nested/dirs # Create parent directories

rm - Remove files or directories

$ rm file.txt
$ rm -r directory/ # Remove directory recursively
$ rm -rf directory/ # Force remove without prompts

cp - Copy files or directories

$ cp source.txt dest.txt
$ cp -r source_dir/ dest_dir/ # Copy directory recursively

mv - Move or rename files

$ mv oldname.txt newname.txt # Rename
$ mv file.txt /path/to/dest/ # Move

touch - Create empty file or update timestamp

$ touch newfile.txt

ln - Create links

$ ln -s /path/to/file linkname # Create symbolic link
$ ln /path/to/file linkname # Create hard link

File Viewing & Editing

cat - Concatenate and display files

$ cat file.txt
$ cat file1.txt file2.txt > combined.txt # Combine files

less - View file contents (paginated)

$ less file.txt

Use arrows to navigate, q to quit, / to search

more - View file contents (simple pager)

$ more file.txt

head - Display first lines of file

$ head file.txt # First 10 lines
$ head -n 20 file.txt # First 20 lines

tail - Display last lines of file

$ tail file.txt # Last 10 lines
$ tail -n 20 file.txt # Last 20 lines
$ tail -f log.txt # Follow file updates (real-time)

nano - Simple text editor

$ nano file.txt

Use Ctrl+X to exit, Ctrl+O to save

vim - Advanced text editor

$ vim file.txt

Press i to insert, Esc then :wq to save and quit

System Information

uname - System information

$ uname -a # All information
$ uname -r # Kernel version

whoami - Current username

$ whoami

hostname - Show or set system hostname

$ hostname
$ hostname -I # Show IP addresses

uptime - System uptime

$ uptime

Shows how long system has been running and load averages

date - Display or set date and time

$ date
$ date +"%Y-%m-%d %H:%M:%S" # Custom format

df - Disk space usage

$ df -h # Human readable format

du - Directory space usage

$ du -sh directory/ # Summary
$ du -h --max-depth=1 # One level deep

free - Memory usage

$ free -h # Human readable

lscpu - CPU information

$ lscpu

Process Management

ps - Process status

$ ps aux # All processes
$ ps aux | grep nginx # Find specific process

top - Real-time process monitor

$ top

Press q to quit

htop - Interactive process viewer

$ htop

More user-friendly than top (requires installation)

kill - Terminate process by PID

$ kill 1234 # Graceful termination
$ kill -9 1234 # Force kill

killall - Kill processes by name

$ killall nginx

jobs - List background jobs

$ jobs

bg - Resume suspended job in background

$ bg %1 # Resume job 1

fg - Bring job to foreground

$ fg %1 # Bring job 1 to foreground

nice - Run command with modified priority

$ nice -n 10 command # Lower priority

User Management

useradd - Create new user

$ sudo useradd username
$ sudo useradd -m -s /bin/bash username # Create with home dir

userdel - Delete user

$ sudo userdel username
$ sudo userdel -r username # Remove home directory too

usermod - Modify user account

$ sudo usermod -aG sudo username # Add to group

passwd - Change user password

$ passwd # Change your password
$ sudo passwd username # Change another user's password

su - Switch user

$ su username # Switch to user
$ su - # Switch to root with environment

sudo - Execute command as superuser

$ sudo command
$ sudo -i # Start root shell

who - Show logged in users

$ who

w - Show who is logged in and what they're doing

$ w

Network Commands

ping - Test network connectivity

$ ping google.com
$ ping -c 4 google.com # Send only 4 packets

netstat - Network statistics (legacy)

$ netstat -tuln # Show listening ports

ss - Socket statistics (modern alternative to netstat)

$ ss -tuln # Show listening ports

ifconfig - Network interface configuration (legacy)

$ ifconfig

ip - Network configuration (modern)

$ ip addr show # Show IP addresses
$ ip route # Show routing table

See our IP Command Cheatsheet for detailed reference

curl - Transfer data from/to servers

$ curl https://example.com
$ curl -O https://example.com/file.zip # Download

See our Curl Cheatsheet for comprehensive examples

wget - Download files from web

$ wget https://example.com/file.zip
$ wget -c https://example.com/file.zip # Resume download

ssh - Secure shell remote login

$ ssh user@hostname
$ ssh -p 2222 user@hostname # Custom port

scp - Secure copy over SSH

$ scp file.txt user@hostname:/path/
$ scp user@hostname:/path/file.txt ./ # Download

Package Management

Package manager varies by Linux distribution. Use the appropriate commands for your system.

Debian/Ubuntu (apt/apt-get)

Update package list

$ sudo apt update

Upgrade packages

$ sudo apt upgrade
$ sudo apt full-upgrade # Also handles dependencies

Install package

$ sudo apt install package-name

Remove package

$ sudo apt remove package-name
$ sudo apt purge package-name # Also remove config files

RHEL/CentOS/Fedora (yum/dnf)

Update package list

$ sudo yum check-update
$ sudo dnf check-update # Fedora

Install package

$ sudo yum install package-name
$ sudo dnf install package-name # Fedora

Remove package

$ sudo yum remove package-name
$ sudo dnf remove package-name # Fedora

Arch Linux (pacman)

Update and upgrade

$ sudo pacman -Syu

Install package

$ sudo pacman -S package-name

Remove package

$ sudo pacman -R package-name

Archiving & Compression

tar - Archive files

$ tar -czf archive.tar.gz directory/ # Create gzipped archive
$ tar -xzf archive.tar.gz # Extract gzipped archive
$ tar -cjf archive.tar.bz2 directory/ # Create bzip2 archive
$ tar -xjf archive.tar.bz2 # Extract bzip2 archive
$ tar -tf archive.tar.gz # List contents

Options: c=create, x=extract, z=gzip, j=bzip2, f=file, v=verbose

gzip - Compress files

$ gzip file.txt # Compress (creates file.txt.gz)
$ gzip -d file.txt.gz # Decompress

gunzip - Decompress gzip files

$ gunzip file.txt.gz

zip - Create ZIP archives

$ zip archive.zip file1 file2
$ zip -r archive.zip directory/ # Recursive

unzip - Extract ZIP archives

$ unzip archive.zip
$ unzip -l archive.zip # List contents

bzip2 - Compress with bzip2

$ bzip2 file.txt # Compress
$ bzip2 -d file.txt.bz2 # Decompress

Searching

find - Search for files

$ find /path -name"*.txt" # Find by name
$ find /path -type f -mtime -7 # Modified in last 7 days
$ find /path -type d # Find directories only
$ find /path -size +100M # Files larger than 100MB

grep - Search text patterns

$ grep"pattern" file.txt
$ grep -r"pattern" /path/ # Recursive search
$ grep -i"pattern" file.txt # Case insensitive
$ grep -n"pattern" file.txt # Show line numbers
$ grep -v"pattern" file.txt # Invert match

locate - Find files by name (fast)

$ locate filename
$ sudo updatedb # Update locate database

which - Locate a command

$ which python
$ which -a python # Show all matches

whereis - Locate binary, source, and manual

$ whereis python

Text Processing

awk - Pattern scanning and processing

$ awk'{print $1}' file.txt # Print first column
$ awk -F:'{print $1}' /etc/passwd # Custom delimiter

sed - Stream editor

$ sed's/old/new/' file.txt # Replace first occurrence
$ sed's/old/new/g' file.txt # Replace all occurrences
$ sed -i's/old/new/g' file.txt # Edit file in-place

cut - Cut out sections of lines

$ cut -d: -f1 /etc/passwd # Cut by delimiter
$ cut -c1-10 file.txt # Cut by character position

sort - Sort lines

$ sort file.txt
$ sort -r file.txt # Reverse sort
$ sort -n file.txt # Numeric sort

uniq - Remove duplicate lines

$ sort file.txt | uniq
$ sort file.txt | uniq -c # Count occurrences

wc - Word count

$ wc file.txt # Lines, words, bytes
$ wc -l file.txt # Count lines
$ wc -w file.txt # Count words

tr - Translate or delete characters

$ echo"hello" | tr'a-z''A-Z' # Uppercase
$ tr -d'' < file.txt # Delete spaces

Permissions

chmod - Change file permissions

$ chmod 755 file.txt
$ chmod u+x script.sh # Add execute for user
$ chmod -R 644 directory/ # Recursive

chown - Change file owner

$ sudo chown user file.txt
$ sudo chown user:group file.txt
$ sudo chown -R user:group directory/

chgrp - Change group ownership

$ sudo chgrp group file.txt
Learn More: For comprehensive information about Linux file permissions, numeric notation, and best practices, see our detailed Linux File Permissions Cheatsheet.