System Administration Featured

Linux Commands Cheatsheet

Comprehensive guide to essential Linux commands covering file operations, system information, process management, networking, package management, text processing, and more. Your go-to reference for daily Linux terminal operations.

#linux #commands #cli #terminal #sysadmin #bash
Sign In to Download

Free account required

$

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.

Master Linux on Powerful VPS Hosting

Ready to put your Linux skills to work? Explore our curated VPS providers, find the perfect hosting with our comprehensive benchmarks, and compare performance to choose the best infrastructure for your Linux workloads.