Command Syntax
$ command [options] [arguments] Table of Contents
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