← evolver-tools Blog evolver-tools Home

System Monitoring Without htop: 8 CLI Commands for CPU, Memory & Disk

Published: June 1, 2026 · 8 min read · evolver-tools

What You'll Learn

  1. The Problem With htop (and why you might not need it)
  2. CPU Usage Snapshot
  3. Memory Consumption Breakdown
  4. Disk Usage & Largest Files
  5. Process List & Resource Hogs
  6. Network Activity at a Glance
  7. Kill Processes by Port
  8. Build a One-Line Dashboard
  9. evolver-tools vs htop vs btop

The Problem With htop

htop is great — until you're on a fresh server, a minimal Docker container, or a CI runner where it's not installed. Installing it means apt install htop (which pulls in 20+ dependencies), or worse, building from source.

The same goes for modern alternatives like btop (C++ build), glances (Python, heavy dependency tree), or bashtop.

What if you could do all of this — CPU, memory, disk, network, processes — using tools that are already on your system? That's where evolver-tools comes in: 261 zero-dependency CLI tools in one pip install, all using only Python stdlib.

Here are 8 practical monitoring tasks you can do right now without installing htop or any other system monitor.

1. CPU Usage Snapshot

htop shows real-time CPU graphs. Sometimes that's overkill — you just need a snapshot of current CPU load.

$ evtool cpu-stats
CPU Cores: 8
Architecture: x86_64
Model: Intel(R) Core(TM) i7-10870H
CPU Usage: 23.4%
Load Average (1m):  1.87
Load Average (5m):  2.12
Load Average (15m): 2.45

For a quick load check:

$ evtool cpu-stats --load-only
1.87  2.12  2.45

The --load-only flag gives you three numbers you can pipe into alerting scripts, Slack notifications, or monitoring dashboards.

2. Memory Consumption Breakdown

Checking memory usage should be one command, not three (free -h, then mentally calculating percentages).

$ evtool mem-info
Memory Information
─────────────────────
Total:   15.4 GB
Used:     8.2 GB  (53.2%)
Free:     3.1 GB  (20.1%)
Available: 7.2 GB (46.7%)
Swap Total:  2.0 GB
Swap Used:   0.3 GB  (15.0%)

What to look for: If "Available" drops below 10% of total, you're running low. If swap usage is consistently above 50%, you need more RAM.

# Quick check: is memory OK?
$ evtool mem-info | grep Available
Available: 7.2 GB (46.7%)
Tip: evtool mem-info reports "Available" memory (the Linux kernel's estimate of reclaimable memory), which is more useful than plain "Free" for understanding real pressure.

3. Disk Usage & Largest Files

Replace du -sh * | sort -hr (which you always forget the flags for) with a dedicated tool:

$ evtool disk-usage /var/log
Path              Size    Used    Avail   Use%
/var/log         50G     12.3G   37.7G   24.6%

Largest Directories:
/var/log/nginx       4.2 GB
/var/log/journal     3.1 GB
/var/log/postgresql  1.8 GB
/var/log/syslog      1.2 GB
/var/log/auth.log    0.4 GB

To find files over 100MB across the whole system:

$ evtool find-large --size 100M /
/var/log/nginx/access.log.1      847 MB
/var/log/journal/system.journal  3.1 GB
/opt/docker/overlay2/...         1.4 GB
/home/user/downloads/video.mp4   2.1 GB

This is easier than remembering find / -type f -size +100M -exec ls -lh {} \; and formatting the output.

4. Process List & Resource Hogs

htop's killer feature is the interactive process list. When you don't need interactivity — just the top consumers — use this:

$ evtool process-list --top-cpu 10
PID   NAME                CPU%   MEM%   STATUS
1452  firefox              12.4   8.7    Sleeping
2389  chrome               8.1    6.2    Running
3102  python3              5.7    2.1    Running
1789  slack                4.2    3.5    Sleeping
...
$ evtool process-list --top-mem 5
PID   NAME                CPU%   MEM%   RSS
1789  slack                2.1   12.3   1.9 GB
1452  firefox              8.7    8.7   1.3 GB
2389  chrome               6.2    6.2   935 MB
...

Pipe into evtool csv-stats to track over time:

$ evtool process-list --top-cpu 10 | evtool csv-stats

5. Network Activity at a Glance

Need to know which ports are open and what's listening? No need for netstat or ss:

$ evtool port-scan localhost
PORT    STATE    SERVICE
22      open     SSH
80      open     HTTP
443     open     HTTPS
3000    open     Unknown (Node.js?)
5432    open     PostgreSQL
8080    open     HTTP-Alt

To get your external IP and check connectivity:

$ evtool ip-info
External IP: 203.0.113.42
Internal IP: 192.168.1.50
ISP:         ExampleNet
Location:    San Francisco, US
$ evtool dns-lookup example.com
Host:     example.com
IP:       93.184.216.34
TTL:      3600
Aliases:  (none)

6. Kill Processes by Port

One of the most common sysadmin frustrations: "port 3000 is in use" and you have to find the PID, then kill it. Two commands becomes one:

$ evtool kill-port 3000
🔍 Found process 3102 (node) on port 3000
⚠️  Attempting graceful shutdown...
✅ Port 3000 is now free

This is especially useful in development environments where you restart servers frequently, or in CI/CD scripts that need to clean up between runs.

7. Build a One-Line Dashboard

The real power of composable CLI tools: chain them together for a rolling system check:

$ echo "=== CPU ==="  &&  evtool cpu-stats --load-only  &&  echo "=== MEM ==="  &&  evtool mem-info  &&  echo "=== DISK ==="  &&  evtool disk-usage /  &&  echo "=== TOP 5 ==="  &&  evtool process-list --top-mem 5
=== CPU ===
1.87  2.12  2.45
=== MEM ===
Total: 15.4 GB | Used: 8.2 GB (53.2%)
=== DISK ===
/  50G   23G   27G   46%
=== TOP 5 ===
slack    12.3%  1.9 GB
firefox  8.7%   1.3 GB
chrome   6.2%   935 MB
...

Save this as a shell alias:

$ alias dashboard='echo "=== CPU ===" && evtool cpu-stats --load-only && echo "=== MEM ===" && evtool mem-info | head -5 && echo "=== TOP 5 ===" && evtool process-list --top-mem 5'

Run it whenever you SSH into a server. No htop required.

8. evolver-tools vs htop vs btop

Feature htop btop evtool
Install size ~2 MB (with deps) ~5 MB (C++ build) ~200 KB
Dependencies ncurses, libdev, etc. C++ compiler required Zero (Python stdlib)
Interactive TUI Yes Yes (GPU-accelerated) No (CLI output)
Scriptable Batch mode Limited Yes (pipe-friendly)
Install time 3-10 seconds 30+ seconds (compile) <1 second
Available on Windows WSL only WSL only Native + WSL
Extensible No Limited 261 tools, composable

When to use htop/btop: When you need real-time interactive monitoring with visual graphs and keyboard navigation. These are excellent tools — I'm not suggesting you uninstall them.

When to use evtool: When you're on a minimal server, SSH'd into a container, writing a monitoring script, or just want a quick check without context-switching to a TUI. evolver-tools shines in scripts, CI pipelines, and one-shot diagnostics.

Practical: One-Line Server Health Check

Here's a production-ready server health check you can run over SSH:

$ ssh myserver "evtool cpu-stats --load-only && evtool mem-info | grep Available && evtool disk-usage / | tail -1 && evtool port-scan localhost | grep -c open && echo 'OK'"
0.45  0.52  0.48
Available: 12.3 GB (79.8%)
/  100G   34G   66G   34%
5 open ports
OK

Add this to your deployment scripts, monitoring cron jobs, or onboarding checklists.

Try It Right Now

No install required for a quick test:

$ curl -sL https://evolver-dev.github.io/evolver-tools/try.sh | bash

Or install permanently:

$ pip install evolver-tools

Browse All 261 Tools

Summary

What you want Instead of Use
CPU load htop (overkill) evtool cpu-stats
Memory usage free -h + mental math evtool mem-info
Disk usage df -h + du evtool disk-usage
Resource hogs ps aux --sort evtool process-list --top-cpu 10
Open ports netstat -tlnp evtool port-scan
Kill by port lsof + kill evtool kill-port