The traditional Unix ps command has been the standard utility for auditing running processes since the early days of BSD and Linux. However, running ps aux on a modern production system or desktop workstation frequently yields a wall of unformatted, monochrome text with truncated command strings and obscure memory counters expressed in raw kilobytes.
To deliver a more readable, intuitive command-line process viewer, developer communities developed procs. Written in Rust for maximum execution speed, procs serves as a drop-in modern replacement for ps. It formats process output with distinct colour hierarchies, automatic column alignment, human-readable data units (MB, GB), integrated TCP/UDP listening port mapping, and interactive tree views.
Why procs Outperforms Legacy ps
While standard ps requires memorising complicated syntax flags (such as -ef, aux, or custom -o output parameters), procs delivers actionable insights out of the box:
- Human-Readable Metric Units: Memory footprints automatically display in megabytes and gigabytes rather than confusing 6-digit block numbers.
- Automatic Network & Docker Mapping: Detects and highlights which network ports a daemon is listening on, alongside associated Docker container names.
- Intelligent Keyword Search: Typing
procs nginxautomatically filters running processes without requiringgrepor piping commands. - Non-Truncated Command Paths: Wraps or cleanly formats long command execution arguments, ensuring you can distinguish between multiple microservice instances.
Installing procs in Ubuntu and Linux Distributions
There are several straightforward methods to install procs across Linux platforms:
Method 1: Direct Installation via APT (Ubuntu 24.04 and Newer)
On modern Ubuntu releases, procs is packaged directly within standard universe repositories:
sudo apt update
sudo apt install procs
Method 2: Installation via Snap
If you prefer containerised application packages across any Ubuntu LTS version:
sudo snap install procs
Method 3: Direct Precompiled Binary Download
For standalone environments, download the official precompiled release from GitHub:
wget https://github.com/dalance/procs/releases/latest/download/procs-v0.14.8-x86_64-lnx.zip
unzip procs-v0.14.8-x86_64-lnx.zip
sudo mv procs /usr/local/bin/
sudo chmod +x /usr/local/bin/procs
Method 4: Installation via Cargo (Rust Package Manager)
If you have a Rust development toolchain configured:
cargo install procs
Running procs and Exploring Default Visualisations
To inspect active processes across your system, simply execute:
procs
The command outputs a structured table displaying:
- PID & User: Highlighted in distinct colour codes for root versus standard user processes.
- TTY: Indicates which terminal session owns the process.
- CPU & Memory Footprint: Color-coded progress thresholds (green for minimal consumption, shifting to yellow and red as consumption escalates).
- Read / Write I/O Rates: Live disk throughput consumed by each process.
- Command: The full command path and execution arguments.
Filtering and Searching Processes Easily
Unlike ps which requires ps aux | grep process_name, procs accepts search arguments directly:
procs firefox
procs sshd
procs python
The command instantly filters the list to processes matching that string while retaining table headers and colorised metric highlights.
Displaying Process Hierarchies in Tree View
To understand parent-child relationships between system daemons, background workers, and shell instances, activate the tree visualisation:
procs --tree
Procs draws clean unicode branch lines connecting parent systemd units directly to their child threads, allowing you to trace rogue child processes back to their launcher.
Sorting by Resource Usage
Identify hardware resource bottlenecks instantly using built-in sort flags:
procs --sortd cpu # Sort descending by CPU usage
procs --sortd mem # Sort descending by Memory consumption
procs --sortd read # Sort descending by Disk read rate
Watching Processes in Real Time
To keep the display live like top or htop without leaving procs, invoke the watch mode:
procs --watch
The interface updates automatically every second, highlighting fluctuating CPU and memory statistics in real time.