Htop – An Interactive Process Viewer for Linux

This article is the continuation of our Linux system monitoring series, today we’re talking about the most popular monitoring tool called htop, which is just reached to version 2.2.0 and comes with some cool new features.

Htop Linux Process Monitoring Tool
Htop 2.2: Linux Process Monitoring

Htop is an interactive real-time process monitoring application for Linux/Unix like systems and also a handy alternative to top command, which is a default process monitoring tool that comes with pre-installed on all Linux operating systems.

Htop has numerous other user-friendly features, which are not available under the top command and they are:

  1. In htop you can scroll vertically to view the full process list and scroll horizontally to view the full command lines.
  2. It starts very quickly as compared to the top, because it doesn’t wait to fetch data during startup.
  3. In htop you can kill more than one process at once without inserting their PIDs.
  4. In htop you no longer needed to enter process number or priority value to re-nice a process.
  5. Press “e” to print the set of environment variables for a process.
  6. Use the mouse to select list items.

Install Htop Using Binary Packages in Linux

To install Htop on RHEL 8/7/6/5 and CentOS 8/7/6/5, your system must have EPEL repository installed and enabled, to do so run the following commands on your respective distributions to install and enable it for your system architecture (32bit or 64bit).

On RHEL/CentOS – 32-bit OS

-------------- For RHEL/CentOS 6 --------------
# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ihv epel-release-6-8.noarch.rpm

-------------- For RHEL/CentOS 5 --------------
# wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -ihv epel-release-5-4.noarch.rpm

On RHEL/CentOS – 64-bit OS

-------------- For RHEL/CentOS 8 --------------
# yum install epel-release   [CentOS 8]
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]

-------------- For RHEL/CentOS 7 --------------
# yum install epel-release

-------------- For RHEL/CentOS 6 --------------
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ihv epel-release-6-8.noarch.rpm

-------------- For RHEL/CentOS 5 --------------
# wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ihv epel-release-5-4.noarch.rpm

Once the EPEL repository has been installed, you can hit the following yum command to fetch and install the htop package as shown.

# yum install htop

On Fedora OS

Fedora users can easily install htop using Fedora Extras repository by typing:

# yum install htop
# dnf install htop      [On Fedora 22+ releases]

On Debian and Ubuntu

In Debian and Ubuntu, you can fetch htop by typing:

# sudo apt-get install htop

Compile and Install Htop from Source Packages

To install Htop 2.2.0 version, you must have Development Tools and Ncurses installed on your system, to do so run the following series of commands on your respective distributions.

On RHEL/CentOS and Fedora

# yum groupinstall "Development Tools"
# yum install ncurses ncurses-devel
# wget http://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz
# tar xvfvz htop-2.2.0.tar.gz
# cd htop-2.2.0

On Debian and Ubuntu

$ sudo apt-get install build-essential  
$ sudo apt-get install libncurses5-dev libncursesw5-dev
$ wget http://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz
$ tar xvfvz htop-2.2.0.tar.gz
$ cd htop-2.2.0

Next, run the configure and make a script to install and compile htop.

# ./configure
# make
# make install

How do I use htop?

Now run the htop monitoring tool by executing the following command on the terminal.

# htop

Htop is having three sections mainly

  1. Header, where we can see info like CPU, Memory, Swap and also shows tasks, load average, and Up-time.
  2. List of processes sorted by CPU utilization.
  3. Footer shows different options like help, setup, filter tree kill, nice, quit, etc.
Htop Linux Processes Monitoring
Htop Linux Processes Monitoring

Press F2 or S for setup menu > there are four columns i.e Setup, Left Column, Right Column, and Available Meters.

Here, you can configure the meters printed at the top of the window, set various display options, select among color patterns and choose which columns are printed in which order.

Htop Setup Screen
Htop Setup Screen

Type tree or t to display processes tree view.

Htop Process View in Tree Format
Htop Process View in Tree Format

You can refer function keys displayed at the footer to use this nifty htop application to monitor Linux running processes. However, we advise to use character keys or shortcut keys instead of function keys as it may have mapped with some other functions during secure connection.

Htop Shortcut and Function Keys

Some of the shortcut and function keys and their functionality to interact with htop.

Htop Command Shortcuts and Keys
Htop Command Shortcuts and Keys

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

38 thoughts on “Htop – An Interactive Process Viewer for Linux”

    • @Axel,

      Yes it was dead a long back ago and I forget to update this article, but thanks for notifying the same. I’ve updated the htop article with latest version htop 2.0.2 with installation via EPEL repository..

      Reply
  1. The RPM Forge instructions still installed the old version of HTOP, so I built from source (I’m on CentOS 7). It builds okay using your instructions but at the end, you need to say in order to run HTOP this way, you need to run it with a dot-slash:

    # ./htop

    Reply
    • @Dave,

      Even if you use EPEL or any other third party repository, you will get the old version of htop, that’s the reason I’ve included instructions to build from source to get most recent version, but I did tried same instructions on my CentOS 7.0 and I can able to run as:

      # htop
      
      Reply
    • Your path probably doesn’t include your current directory (represented by a single period/dot). Try typing this and you’ll see what I mean:

      echo $PATH

      Sample output:

      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

      This set of directories is your PATH. When you type a command, your OS will search these directories looking for that command. You would think it would start with your current directory by default, but it doesn’t. Note that the directories are seperated by colons. To include the current working directory, you would have to add this to the end of the PATH:

      :.

      (A colon then a period/dot)

      You can alter your path by editing the rc file for whatever shell you are using. If you don’t know which shell that is, you can try one of two commands to find out:

      echo $SHELL
      Example output: /bin/bash

      or

      env | grep ‘SHELL=’
      Example output: SHELL=/bin/bash

      So in my case I’m using bash, so I would backup the file .bashrc in my home directory

      cp ~/.bashrc ~/.bashrc.bak

      Then edit the original with a text editor (I use vi, but nano or emacs should work as well):

      vi ~/.bashrc

      At the bottom of the file (in case there are other export PATH statements in it) add the following statement on a line by itself:

      export PATH=$PATH:.

      and save the file. Note that your command syntax may vary if you are not using bash as your shell.

      Open up a NEW terminal window and type:

      echo $PATH

      Example output. Note the :. at the end

      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:.

      Now your current directory should always be part of the path and you won’t need to use ./ to run scripts. Note that this only takes effect when you start a new terminal.

      NOTES:

      1. To make sure you never lock yourself out of shell, ALWAYS open a new terminal KEEPING YOUR OLD ONE OPEN to verify that your changes worked. And remember, backups are a really good idea.

      2. I tested these specific instructions on Linux Mint (a variant of Ubuntu) using the bash shell. I cannot guarantee they will work *exactly* the same everywhere. I can say that I have edited the PATH variable successfully on other linux variants for bash and the technique should be very similar if not identical.

      3. Through research I have noted that some prefer to put this type of command in the file .profile or .bash_profile. I have not tried doing this. You can find more info here: http://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path
      like htop when your in their directory.

      Hope this helps!

      Reply
  2. # rpm -i rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    error: Failed dependencies:
    rpmlib(FileDigests) <= 4.6.0-1 is needed by rpmforge-release-0.5.3-1.el6.rf.x86_64
    rpmlib(PayloadIsXz) <= 5.2-1 is needed by rpmforge-release-0.5.3-1.el6.rf.x86_64

    getting error after running all command

    Reply

Got something to say? Join the discussion.

This site uses Akismet to reduce spam. Learn how your comment data is processed.