Introduction to htop
htop is a powerful, cross-platform interactive process viewer that serves as an enhanced alternative to the traditional top
command. Released under the GPL license and written in C, htop provides system administrators and developers with a colorful, user-friendly interface for monitoring system resources and managing processes in real-time.
Unlike the classic top
command, htop offers superior usability with its intuitive navigation, horizontal and vertical scrolling capabilities, and interactive process management features. This comprehensive guide will walk you through everything you need to know about htop, from installation to advanced usage.
Key Features and Advantages
htop stands out from other process monitoring tools with its comprehensive feature set:
- Enhanced Visual Interface: Colorful display with graphical meters for CPU, memory, and swap usage
- Interactive Navigation: Full scrolling support to view all processes and complete command lines
- Direct Process Management: Kill, renice, and manage processes without entering PIDs manually
- Customizable Display: Configurable columns, sorting options, and color schemes
- Tree View: Hierarchical process display showing parent-child relationships
- Multi-core Support: Individual CPU core monitoring with separate meters
- Search and Filter: Real-time process searching and filtering capabilities
- Cross-platform Compatibility: Supports Linux, BSD, macOS, and other Unix-like systems
Installation Guide
htop is available in most Linux distribution repositories, making installation straightforward. Here are the installation commands for popular distributions:
Ubuntu/Debian-based Systems
# Update package repositories
sudo apt update
# Install htop
sudo apt install htop
Fedora/RHEL/CentOS
# For Fedora
sudo dnf install htop
# For RHEL/CentOS (requires EPEL repository)
sudo dnf install epel-release
sudo dnf install htop
Arch Linux/Manjaro
# Install using pacman
sudo pacman -S htop
macOS
# Using Homebrew
brew install htop
openSUSE
# Install using zypper
sudo zypper install htop
Alternative Installation Methods
You can also install htop using snap packages for broader compatibility:
# Install via snap
sudo snap install htop
Building from Source
For the latest features or custom builds, you can compile htop from source. This requires several build dependencies:
Prerequisites
Install the necessary build tools and libraries:
# Debian/Ubuntu
sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essential
# Fedora/RHEL
sudo dnf install ncurses-devel automake autoconf gcc
# Arch Linux
sudo pacman -S ncurses automake autoconf gcc
Compilation Process
# Clone the repository
git clone https://github.com/htop-dev/htop.git
cd htop
# Build and compile
./autogen.sh && ./configure && make
# Install system-wide
sudo make install
Getting Started with htop
Launch htop by simply typing the command in your terminal:
htop
Understanding the Interface
The htop interface consists of three main sections:
- Header Section: Displays system-wide information including CPU usage bars, memory usage, swap usage, load averages, uptime, and running tasks
- Process List: Shows detailed information about running processes including PID, user, priority, CPU usage, memory usage, and command
- Footer: Function key shortcuts for quick actions
Basic Navigation
htop offers intuitive keyboard navigation:
- Arrow Keys: Navigate through the process list
- Page Up/Down: Scroll through pages of processes
- Home/End: Jump to the beginning or end of the process list
- F3: Search for processes
- F4: Filter processes by name
- F5: Toggle tree view
- F9: Kill selected process
- F10/q: Quit htop
Advanced Configuration and Customization
Setup Menu
Access the configuration menu by pressing F2. This opens a comprehensive setup interface where you can:
- Customize displayed columns and their order
- Configure meters and their arrangement
- Set color schemes
- Choose display options
- Configure header layout
Command Line Options
htop supports various command-line options for customized launches:
# Launch with monochrome colors
htop -C
# Start in tree view mode
htop -t
# Show processes for specific user only
htop -u username
# Show only specific process IDs
htop -p PID1,PID2,PID3
# Update delay (in deciseconds)
htop -d 10
Configuration File
htop stores its configuration in ~/.config/htop/htoprc
. You can backup and share this file to maintain consistent settings across systems:
# Backup htop configuration
cp ~/.config/htop/htoprc ~/htop-config-backup
# View current configuration
cat ~/.config/htop/htoprc
Process Management Operations
Killing Processes
htop simplifies process termination:
- Navigate to the target process using arrow keys
- Press F9 to open the kill menu
- Select the appropriate signal (TERM, KILL, etc.)
- Confirm the action
For system processes, you may need elevated privileges:
# Run htop with sudo for system process management
sudo htop
Changing Process Priority (Renice)
Adjust process priority without manual PID entry:
- Select the target process
- Press F8 to decrease priority or F7 to increase priority
- Or press F8 and manually enter the niceness value
CPU Affinity
On supported systems, you can set CPU affinity for processes:
- Select the process
- Press a to open the affinity menu
- Toggle CPU cores using space bar
- Press Enter to apply changes
Build Options and Features
htop offers several build-time options for enhanced functionality:
Performance Co-Pilot (PCP) Support
Enable PCP support for extended system monitoring:
# Configure with PCP support
./configure --enable-pcp
Hardware Location (hwloc) Support
For advanced CPU topology and affinity management:
# Configure with hwloc support
./configure --enable-hwloc
Linux-Specific Features
Several Linux-specific features can be enabled:
- libsensors support: Temperature monitoring
- Linux capabilities: Enhanced process information
- Delay accounting: I/O wait time tracking
- OpenVZ/VServer support: Container monitoring
# Configure with multiple Linux features
./configure --enable-sensors --enable-capabilities --enable-delayacct
Troubleshooting Common Issues
ncurses Library Issues
If htop fails to start due to ncurses issues:
# Ensure ncurses is properly installed
sudo apt install libncurses5-dev libncursesw5-dev # Ubuntu/Debian
sudo dnf install ncurses-devel # Fedora/RHEL
Terminal Compatibility
For terminal compatibility issues, try different color modes:
# Force monochrome mode
htop --no-color
# Set TERM environment variable
export TERM=xterm-256color
htop
Permission Denied Errors
Some system monitoring features require elevated privileges:
# Run with sudo for full functionality
sudo htop
# Or add user to appropriate groups
sudo usermod -a -G proc username
Performance Tips and Best Practices
Optimizing Update Frequency
Adjust the update interval based on your monitoring needs:
# Slower updates for battery conservation
htop -d 50
# Faster updates for active monitoring
htop -d 5
Useful Aliases
Create convenient aliases for common htop usage patterns:
# Add to ~/.bashrc or ~/.zshrc
alias ht='htop'
alias htt='htop -t' # Tree view by default
alias htu='htop -u $USER' # Show only user processes
alias htcpu='htop -s PERCENT_CPU' # Sort by CPU usage
Integration with System Monitoring
Combine htop with other monitoring tools for comprehensive system analysis:
# Use alongside iotop for I/O monitoring
sudo apt install iotop
iotop
# Combine with nethogs for network monitoring
sudo apt install nethogs
sudo nethogs
htop vs. Alternatives
While htop is excellent, understanding alternatives helps choose the right tool:
- top: Traditional, always available, but less user-friendly
- atop: Advanced system monitoring with historical data
- btop++: Modern alternative with beautiful interfaces
- gtop: Web-based system monitoring dashboard
- glances: Cross-platform monitoring with web interface
Contributing and Development
htop is actively maintained by a collaborative team. To contribute:
- Visit the official GitHub repository
- Check the issue tracker for bugs and feature requests
- Join the development mailing list for discussions
- Submit pull requests following the contribution guidelines
For support, you can:
- Join the IRC channel #htop on Libera.Chat
- Subscribe to the development mailing list
- Report bugs through the GitHub issue tracker
Conclusion
htop represents a significant improvement over traditional process monitoring tools, offering an intuitive interface, comprehensive features, and cross-platform compatibility. Whether you’re a system administrator managing servers, a developer debugging applications, or simply monitoring your desktop system, htop provides the visibility and control needed for effective system management.
Its continuous development, active community support, and extensive customization options make htop an essential tool in any Linux or Unix user’s toolkit. By mastering htop’s features and incorporating it into your daily workflow, you’ll gain deeper insights into system performance and more efficient process management capabilities.
Remember to explore the various configuration options, experiment with different view modes, and consider building from source to access the latest features. With htop’s powerful monitoring capabilities at your disposal, system administration becomes more efficient and insightful.