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.
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.
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
wget -O- https://bit.ly/glances | /bin/bash
Resource monitor that shows usage and stats for processor, memory, disks, network and processes.
- 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
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
gtop is simply a system monitoring dashboard for terminal. It is simple, detailed and easy to install.
Linux / OSX / Windows (partial support)
Node.js >= v4
To get gtop installed on your Linux/OSX, simply run the command below. You must have npm installed.
$ npm install gtop -g
Start gtop with the gtop command
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
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
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
pkg install gotop
brew tap cjbassi/gotop brew install gotop
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.
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
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
To install htop, enter the commands below for various platforms
-------Ubuntu-------- sudo apt install htop -------CentOs-------- sudo yum install htop
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.
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:
- Cross-platform – supports Linux, Windows, and macOS
- And much more
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:
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
This is pretty simple too.
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.
- 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
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
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.