You can support us by downloading this article as PDF from the Link below. Download the guide as PDF

One fundamental key to the success of diagnosis and finding out what ails a system when it is showing signs of “ill-health” is the ability to get as much information from it as possible. It works the same way as a doctor taking samples from a patient on order to come up with factual and accurate treatment/prescription.

There are many tools that have been developed for the terminal that will give you a glimpse into the inner working of applications, memory and load even though they are not all installed by default. The tools covered on this article can be used to obtain huge amounts of information fast and as you will definitely agree quick resolution of issues will ensue.

Here are the best command line tools that will help you monitor a Linux system and troubleshoot bottlenecks to ensure applications are running smoothly and efficiently.

1. glances

Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information through a curses or Web based interface. The information dynamically adapts depending on the size of the user interface.

Am amazing thing about glances is that it can also work in client/server mode. Remote monitoring could be done via terminal, Web interface or API (XML-RPC and RESTful). Stats can also be exported to files or external time/value databases.

Install Glances

To install both dependencies and the latest Glances production ready version (aka master branch), just enter the following command line:

curl -L https://bit.ly/glances | /bin/bash

or

wget -O- https://bit.ly/glances | /bin/bash

Reference: Glances

2. bashtop

Resource monitor that shows usage and stats for processor, memory, disks, network and processes.

Features

  • Easy to use, with a game inspired menu system.
  • Fast and “mostly” responsive UI with UP, DOWN keys process selection.
  • Function for showing detailed stats for selected process.
  • Ability to filter processes.
  • Easy switching between sorting options.
  • Send SIGTERM, SIGKILL, SIGINT to selected process.
  • UI menu for changing all config file options.
  • Auto scaling graph for network usage.
  • Shows message in menu if new version is available
  • Shows current read and write speeds for disks
  • Multiple data collection methods which can be switched if running on Linux

Installation

Bashtop can be installed in Linux, OSX and FreeBSD

Manual installation Linux, OSX and FreeBSD

Clone and install

git clone https://github.com/aristocratos/bashtop.git
cd bashtop
sudo make install

--- Uninstalling Bashtop ---

sudo make uninstall

Reference: Bashtop

3. gtop

gtop is simply a system monitoring dashboard for terminal. It is simple, detailed and easy to install.

Requirements

Linux / OSX / Windows (partial support)
Node.js >= v4

Installation

To get gtop installed on your Linux/OSX, simply run the command below. You must have npm installed.

$ npm install gtop -g

Usage

Start gtop with the gtop command

gtop

To stop gtop use q, or ctrl+c in most shell environments.

You can sort the process table by pressing

  • p: Process Id
  • c: CPU usage
  • m: Memory usage

Reference: Gtop

4. gotop

Another terminal based graphical activity monitor, inspired by gtop and vtop, this time written in Go! This is a fork of original gotop project with a new maintainer to keep the project alive and growing. An objective of the fork is to maintain a small, focused core while providing a path to extend functionality for less universal use cases; examples of this is sensor support for NVidia graphics cards, and for aggregating data from remote gotop instances.

Features of gotop

  • Supports mouse clicking and scrolling,
  • gotop includes vi-like keys e.g a process can be killed by typing dd
  • Displays the CPU, memory and network usage history using colored graphs
  • gotop shows the disk usage, temperatures plus top process list such as CPU and memory usage.
  • Allows toggling process grouping
  • Sort the process list by CPU or memory usage
  • Guilt-in color themes (default, default-dark, solarized and monokai)
  • One can set the polling rate for CPU and Memory widgets
  • You can choose to show each CPU or the average CPU usage in the CPU widget

Install gotop

Then proceed as follows:

git clone --depth 1 https://github.com/cjbassi/gotop
cd gotop/scripts
./download.sh
sudo mv gotop /usr/local/bin/

Arch | Manjaro

For Arch Linux users and its derivatives. gotop is found in AUR as gotop, gotop-bin, or gotop-git

yay -S gotop

FreeBSD

pkg install gotop

Homebrew

brew tap cjbassi/gotop
brew install gotop

Reference: Gotop

5. ytop

The original author of gotop started a new tool in Rust, called ytop, and deprecated his Go version which was picked/forked by other developers and continued to maintain it. So ytop is a TUI system monitor written in Rust.

ytop currently works on Linux and macOS with support planned for all major platforms.

Installation

Any Linux:

curl -s https://api.github.com/repos/cjbassi/ytop/releases/latest | grep browser_download_url | grep linux | cut -d '"' -f 4 | wget -qi -
tar xvf ytop-*.tar.gz
sudo mv ytop /usr/local/bin

Any Linux using AUR

ytop is available in three different AUR packages: ytop, ytop-bin, and ytop-git.

sudo pacman -S ytop

COPR – Fedora

ytop is also available in COPR:

sudo dnf copr enable atim/ytop -y
sudo dnf install ytop
Homebrew
brew tap cjbassi/ytop
brew install ytop

Reference: Ytop

6. htop

htop is an interactive text-mode process viewer for Unix systems. It aims to be a better ‘top’. htop requires ncurses and is developed primarily on Linux, but they also have code for running under FreeBSD and Mac OS X (help and testing are wanted for these platforms!)

This software has evolved considerably over the years, and is reasonably complete, but there is always room for improvement.

Features of htop

  • Solaris/Illumos/OpenIndiana support
  • -t/–tree flag for starting in tree-view mode
  • macOS: detects High Sierra version to avoid OS bug
  • OpenBSD: read battery data
  • Various automake and build improvements
  • Check for pkg-config when building with –enable-delayacct
  • Avoid some bashisms in configure script
  • Use CFLAGS from ncurses*-config if present
  • Header generator supports non-UTF-8 environments

Installation

To install htop, enter the commands below for various platforms

-------Ubuntu--------
sudo apt install htop

-------CentOs--------
sudo yum install htop

Reference: Htop

7. bottom

Bottom is a cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows. The project is inspired by both gtop and gotop.

Features


As yet another process/system visualization and management application, bottom supports the typical features:

  • CPU, memory, and network usage visualization
  • Display information about disk capacity and I/O per second
  • Display temperatures from sensors
  • Display information regarding processes, like CPU, memory, I/O usage, and process state
  • Process management (process killing is all you need, right?)

It also aims to be:

  • Lightweight
  • Cross-platform – supports Linux, Windows, and macOS
  • And much more

Installation

To install bottom on various platforms, run the commands below

--- Debian / Ubuntu ---
curl -s https://api.github.com/repos/ClementTsang/bottom/releases/latest | grep browser_download_url | grep amd64.deb | cut -d '"' -f 4 | wget -qi -
sudo apt install ./bottom*.deb


--- macOS ---
$ brew tap clementtsang/bottom
$ brew install bottom

--- Arch/Manjaro ---
$ yay bottom

--- Cargo ---
$ cargo install bottom

--- Chocolatey ---
$ choco install bottom

Then launch the tool with the command:

$ btm

Reference: Bottom

8. vtop

Vtop is a free and open source activity monitor for the command line. It’s written in node.js and can be easily extended. Command-line tools like “top” make it difficult to see CPU usage across multi-process applications (like Apache and Chrome), spikes over time, and memory usage. That is why vtop developers created vtop.

How to install

If you haven’t already got Node.js, then download that first, then run:

sudo npm install -g vtop

Running

This is pretty simple too.

$ vtop

Reference: vtop git and vtop website

9. zenith

Zenith is a terminal monitor that looks sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage written in Rust.

Features

  • Optional CPU, Memory, Network, and Disk usage charts
  • Quick glances at Disk free space, NIC IP addresses, CPU frequency
  • Highlight top users of CPU, Memory, & Disk
  • Battery percentage, time to charge or discharge, power used
  • A top-like filterable process table that includes per process disk usage
  • Change process priority
  • Zoomable chart views (with support to scroll back in time)
  • Managing processes with signals
  • Performance data saved between runs
  • GPU Utilization Metrics for NVIDIA GPUs (with –features nvidia)

Current supported Platforms

  • Linux
  • macOS

Installation

Before you install zenith, you ust have cargo/rust installed. After that, you can get Zenith on your Linux or Mac as follows

--- macOS ---
$ brew install zenith

--- Any Linux ---
curl -s https://api.github.com/repos/bvaisvil/zenith/releases/latest | grep browser_download_url | grep linux | cut -d '"' -f 4 | wget -qi -
tar xvf zenith.linux.tgz
chmod +x zenith
sudo mv zenith /usr/local/bin

Reference: Zenith

Epilogue

From personal experience, monitoring is a core component in administering systems, troubleshooting applications, and getting stuff done in an orderly and professional approach. Terminal monitoring provides that quick and easy way to immediately look into what is happening in your house and hence their invaluable nature. Check out the list above and select the ones you personally have a crush on. Otherwise, thank you for visiting and continue to peruse the guides and articles shared below.

You can support us by downloading this article as PDF from the Link below. Download the guide as PDF