Tuesday Tooling on a Fun Friday: Bashtop!
What day is it? I'm sure that it is a Friday, but why are we looking at a cool Linux tool? Well because it is fun.
So what is it?
Bashtop is a cool looking resource monitor running in a BASH terminal.
Well yeah that sounds cool but I've got a perfectly good system monitor already!
Well sure on Ubuntu we have the GUI System Monitor, which is great.
We can also install htop another great terminal based system monitor. I've used htop for years and it is rather good.
Hi reader!
So what can I do with Bashtop?
H = htop can do this too.
- See realtime CPU usage, as a single graph and per core. H
- If you have installed
lm-sensors
then bashtop will also show CPU temp.
- If you have installed
- See memory usage, including swap, cache, and available memory. H
- See the status (used and free space) of any mounted disk / drive.
- Manage system processes and terminate / kill any bad behaviour. H
- Get extra information on a process.
- Monitor network throughput.
- Change the look using downloadable themes.
Does it work with a Raspberry Pi?
Yup! Here it is running on a Raspberry Pi 4 via an SSH terminal.
Ok I'm sold, where do I get it and how do I install?
To download Bashtop, we can either clone the git repository.
git clone https://github.com/aristocratos/bashtop
Or if you are not a git user, download the ZIP archive and extract the contents.
ZIP Download link
Change directory to the bashtop
directory, this is in the location where we clone the repository or extracted the ZIP archive.
cd bashtop
Now run the bashtop file found in that directory.
./bashtop
You should see something like this! Cool!
But Bashtop is best enjoyed in fullscreen! So maximise that window!
I want to change the theme!
No worries, press m to open the menu and then with Options highlighted press Enter. The cursor is automatically on Color theme
and if you press Enter now, it will update the available themes. Here I chose the solarized_dark theme. To exit the menu press ESC and there is your new theme.
So what else can I do?
Via the menu we can also change
- The update time from 2.5s (2500ms) to what ever we want.
- Sort processes using values such as pid, program, arguments, threads, user, memory. The default is cpu lazy which updates according to the update time we have set. CPU responsive is the opposite and it updates all the time, at the cost of a few CPU cycles.
- Check temp will get the CPU temp if we have
lm-sensors
installed. - Draw clock, you can guess that one.
- Background update, tells Bashtop to update the user interface (where we see all the processes, disks, CPU) while we are in the menu. True will turn this on, false off.
- Custom CPU name, because Intel I7-3770 is not as cool as HAL9000.
- Proc reversed, reverse sort the processes.
- Proc gradient will add a slight fade effect to processes lower in the list. It looks nice, but it makes my eyes go a bit funny, so I turned this off.
- Disks filter is a way to only show the disks that you want. So in here we add the mount point for each disk.
- Net totals reset, this will enable the network usage totals to be reset. If on then it will be since last system start, if off then from when the adapter was reset.
- Error logging, turn on or off logging for errors. Keep it on, one day you will need it!
So I really love Bashtop, and I want to use it all the time!
I hear ya!
If you would like to make Bashtop part of your general use commands available from any location in the terminal, then copy the bashtop
file to /usr/local/bin
as so.
sudo cp bashtop /usr/local/bin/
Now we can call the command from anywhere and use this great piece of software!