Linux administration is built on a rich ecosystem of command-line tools. Whether you are managing a single server or orchestrating hundreds of nodes, the right tool can turn a tedious task into a one-liner. This reference organizes the most important Linux tools by category so you can quickly find what you need.
Each tool includes its primary use case and a practical example. Bookmark this page as a quick reference — or use our printable cheat sheet for an offline-friendly version.
File Management & Navigation
These tools form the foundation of daily Linux work. Navigating directories, manipulating files, and searching the filesystem are tasks every admin performs dozens of times a day.
| Tool | Purpose | Example |
|---|---|---|
| ls | List directory contents | ls -lah /var/log |
| cd | Change directory | cd /etc/nginx/conf.d |
| find | Search for files by criteria | find / -name "*.log" -mtime -7 |
| locate | Fast file lookup via index | locate nginx.conf |
| cp / mv / rm | Copy, move, remove files | cp -r /src /backup/src-$(date +%F) |
| mkdir | Create directories | mkdir -p /opt/app/logs |
| ln | Create symbolic/hard links | ln -s /opt/app/current /opt/app/v2.1 |
| tree | Display directory structure | tree -L 2 /etc |
| du / df | Disk usage / free space | du -sh /var/* | sort -rh | head |
Text Processing & Filtering
Linux treats everything as text. These tools let you search, transform, and analyze text streams — the backbone of log analysis, data extraction, and scripting.
| Tool | Purpose | Example |
|---|---|---|
| grep | Search text with patterns | grep -rn "ERROR" /var/log/app/ |
| awk | Column-based text processing | awk '{print $1, $9}' access.log |
| sed | Stream editor for transforms | sed -i 's/old/new/g' config.yml |
| sort | Sort lines of text | sort -t: -k3 -n /etc/passwd |
| uniq | Remove duplicate lines | sort access.log | uniq -c | sort -rn |
| cut | Extract columns from text | cut -d: -f1,3 /etc/passwd |
| wc | Count lines, words, bytes | wc -l /var/log/syslog |
| head / tail | View start/end of files | tail -f /var/log/nginx/error.log |
| jq | JSON processor | curl -s api/health | jq '.status' |
# Real-world pipeline: find top 10 IPs hitting your server
$ awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Networking & Connectivity
Network troubleshooting is a core skill for any Linux admin. These tools help you diagnose connectivity issues, inspect traffic, and manage network interfaces.
| Tool | Purpose | Example |
|---|---|---|
| ping | Test host reachability | ping -c 4 8.8.8.8 |
| traceroute | Trace packet route to host | traceroute -n example.com |
| dig / nslookup | DNS lookups | dig +short A example.com |
| curl | Transfer data via URLs | curl -I https://example.com |
| wget | Download files from the web | wget -q https://example.com/file.tar.gz |
| ss / netstat | Show socket statistics | ss -tulnp |
| ip | Network interface management | ip addr show eth0 |
| tcpdump | Capture network packets | tcpdump -i eth0 port 443 -c 100 |
| nmap | Network/port scanner | nmap -sV -p 22,80,443 10.0.0.0/24 |
| iptables / nftables | Firewall rules | iptables -L -n --line-numbers |
System Monitoring & Performance
When a server is slow or unresponsive, these tools help you identify the bottleneck — whether it is CPU, memory, disk I/O, or a runaway process.
| Tool | Purpose | Example |
|---|---|---|
| top / htop | Interactive process viewer | htop -u www-data |
| ps | Snapshot of running processes | ps aux --sort=-%mem | head -20 |
| free | Memory usage summary | free -h |
| vmstat | Virtual memory statistics | vmstat 1 10 |
| iostat | CPU and disk I/O stats | iostat -xz 1 5 |
| sar | Historical system activity | sar -u 1 10 |
| uptime | Load average and uptime | uptime |
| dmesg | Kernel ring buffer messages | dmesg -T | tail -50 |
# Quick server health check in one pipeline
$ echo "=== Load ===" && uptime && echo "=== Memory ===" && free -h && echo "=== Disk ===" && df -h /
Process & Service Management
Controlling processes and services is essential for keeping systems running smoothly. These tools let you start, stop, inspect, and debug processes and daemons.
| Tool | Purpose | Example |
|---|---|---|
| systemctl | Manage systemd services | systemctl status nginx |
| journalctl | Query systemd journal logs | journalctl -u nginx --since "1 hour ago" |
| kill / killall | Send signals to processes | kill -9 $(pgrep -f "zombie-proc") |
| nice / renice | Set process priority | nice -n 19 /opt/scripts/backup.sh |
| nohup | Run command immune to hangups | nohup ./long-task.sh & |
| lsof | List open files/sockets | lsof -i :8080 |
Users, Groups & Permissions
Managing access control is fundamental to server security. These tools handle user accounts, group memberships, and file permission models.
| Tool | Purpose | Example |
|---|---|---|
| chmod | Change file permissions | chmod 750 /opt/app/deploy.sh |
| chown | Change file ownership | chown -R www-data:www-data /var/www |
| useradd / usermod | Create/modify user accounts | useradd -m -s /bin/bash -G sudo deploy |
| passwd | Set user passwords | passwd deploy |
| sudo | Execute as another user | sudo -u postgres psql |
| visudo | Safely edit sudoers file | visudo |
Package Management
Every Linux distribution has a package manager. Knowing the right commands for your distro saves time and prevents dependency headaches.
| Distro Family | Install | Update | Search |
|---|---|---|---|
| Debian / Ubuntu | apt install nginx | apt update && apt upgrade | apt search redis |
| RHEL / Fedora | dnf install nginx | dnf upgrade | dnf search redis |
| Arch | pacman -S nginx | pacman -Syu | pacman -Ss redis |
| Alpine | apk add nginx | apk upgrade | apk search redis |
Archiving & Compression
Backups, deployments, and file transfers all rely on archiving and compression. These tools handle every format you will encounter.
# Create a compressed tarball
$ tar -czf backup-$(date +%F).tar.gz /opt/app/data
# Extract a tarball
$ tar -xzf backup-2026-04-06.tar.gz -C /tmp/restore
# Compress with gzip / bzip2 / xz (best ratio)
$ gzip access.log # fast, good ratio
$ xz database.dump # slow, best ratio
# Create a zip archive (for cross-platform sharing)
$ zip -r project.zip /opt/project -x "*.git*"
Security & Auditing
Keeping servers secure requires a combination of proactive hardening and ongoing monitoring. These tools are essential for security-focused administration.
| Tool | Purpose | Example |
|---|---|---|
| ssh | Secure remote access | ssh -i ~/.ssh/prod_key [email protected] |
| ssh-keygen | Generate SSH key pairs | ssh-keygen -t ed25519 -C "deploy@prod" |
| fail2ban | Ban IPs after failed logins | fail2ban-client status sshd |
| ufw | Simple firewall frontend | ufw allow 22/tcp && ufw enable |
| openssl | TLS/SSL toolkit | openssl s_client -connect example.com:443 |
| auditctl | Linux audit framework | auditctl -w /etc/passwd -p wa -k passwd_changes |
Disk & Storage Management
Managing disks, partitions, and filesystems is critical for server provisioning and maintenance.
# List block devices
$ lsblk
# Check filesystem health
$ fsck -n /dev/sda1
# Mount a filesystem
$ mount /dev/sdb1 /mnt/data
# Check disk usage by directory
$ du -sh /var/* | sort -rh | head -10
# LVM: extend a logical volume
$ lvextend -L +10G /dev/vg0/data && resize2fs /dev/vg0/data
Modern Replacements Worth Knowing
The Linux ecosystem keeps evolving. These modern alternatives offer better UX, speed, or output formatting while being largely compatible with their classic counterparts.
| Classic | Modern | Why switch |
|---|---|---|
| ls | exa / eza | Color-coded, git-aware, tree view |
| cat | bat | Syntax highlighting, line numbers, git diff |
| grep | ripgrep (rg) | 10-100x faster, respects .gitignore |
| find | fd | Simpler syntax, faster, smart defaults |
| top | btop / htop | Rich TUI, mouse support, graphs |
| du | dust / ncdu | Visual disk usage, interactive |
| sed | sd | Simpler regex syntax, no escaping headaches |
Quick Reference: Commands You Will Use Daily
$ tail -f /var/log/syslog # follow logs in real time
$ ss -tulnp # what is listening on which port
$ df -h # disk space at a glance
$ free -h # memory usage
$ ps aux --sort=-%cpu | head # top CPU consumers
$ systemctl status nginx # check a service
$ journalctl -u app --since "1h ago" # recent service logs
$ grep -rn "ERROR" /var/log/app/ # find errors across logs