Command line tools might seem nerdy but they are often faster and more resource efficient than ‘full fat’ GUI alternatives.
1. btop++ (System Monitor)
Monitoring your computer’s resource usage is a bonafide geek past-time up there with memorising the periodic table, quoting Star Wars, and playing table-top role playing games — though maybe that’s describing me!
My go system monitor on Ubuntu is btop++. It’s an open source tool written in (surprise) C++ for speed. Not only is it fast, but it makes peeking at your system’s activities super informative thanks to its well-designed resource dashboard.
Don’t get me wrong; I love htop
as much as the next person, but btop++ puts 10x the amount of info on screen without making the data hard to parse or overwhelming to look at.
You get big memory, CPU and swap file graphs that update in real time; processor load and system uptime info; a sortable list of real-time process data on CPU usage, memory consumption, and process priority; plus a ton of configuration options that let you fine-tune which stats show up and in what order.
2. musikcube (Music Player)
A veritable chorus of command line music players exist that let you play music from the terminal, with cmus
, mpd
, and moc
among the best known and most feted.
Me? I like using musikcube
.
Musikcube has a UI that’s inspired by fully-feature desktop music players but, unlike those, it’s free of unnecessary distractions. I can zip through my whole library; filter by artist, album, genres, or playlist; and handcraft a play queue entirely suiting my mood without needing to take a single hand off of the keyboard.
Install the app, let it know which folder(s) your music is in, then get down to business. No getting distracted by album artwork, no getting sucked in to re-editing mismatched meta tags, and no multi-screen maze to get lost in. Just add, select, play, and rock on!
3. googler (Search the Web)
Did you know it is possible to search the web from the command line? Oh, you did? Well, did you know that it’s also a pretty good experience too?
Using the googler
CLI utility you can search Google from the command line (and if you’re not a fan of Sundar & co there’s an equally capable tool to search DuckDuckGo from the command line called ddgr
too).
Why might searching the web from the command line be useful? Perhaps you’re in a tty
cos your system has gone wonky and need to find a fix. You could pull out your phone and search, or you could use a command line search engine tool like googler
, right where you are.
Ditch any preconceptions you may have about poor formatting or hard-to-read results because as terminal search engine tools go both of these options are well designed and packed with features. They let you filter by keyword, limit search range, search specific sites only, open links in your GUI browser, and a whole lot more.
Once installed, run googler
and enter a search term when prompted.
4. rainbowstream (CLI Twitter App)
Here’s a question: is a fast-paced social network like Twitter usable at the command line?
Weirdly, the answer is yes!
Having started started life as a text messaging service, Twitter’s predominately text-centric updates are actually well suited to being parsed through the porthole of a CLI — a feat the terrific Rainbowstream Twitter client ably proves.
Rainbowstream‘s layout is clear, parsable, and well proportioned (even for pointer-preferring dweebs like me). Most of Twitter’s core features are supported in this app (though image previews come disabled by default) meaning you can read tweets, send tweets, like tweets, retweet tweets, read threads, search, and a whole lot more.
Limitations in the Twitter API mean the app is limited to polling for status updates (so the first time you run the app you have to wait for content to appear). That said, I don’t find it a major drawback as Twitter is highly ephemeral and ‘of the moment’ anyway.
The best way to install Rainbowstream is via pip
, so you’ll need to set that up first:
sudo apt install python3-pip
Install Rainbowstream:
sudo pip3 install rainbowstream
When installed, run rainbowstream
to get started. The app guides you through the process of linking a Twitter account the first time you run it.
As Rainbowstream is an interactive client you can enter commands at any time. For example, type t
followed by a message to tweet something. Press h
to see a help screen with more shortcuts, and be sure to use tab
key to autocomplete the various commands and save time.
5. neofetch (System Info)
I never tire of recommending the Neofetch system info tool because it is so frickin’ good at what it does.
A single command is all it takes to see a wealth of info about your Linux setup, from which distro you use to which kernel version you’re on, plus your desktop environment, window manager, theme, icon set, and a whole to more.
Did I mention it shows big, colourful ASCII distro art too?
Neofetch is slick, stylish and above all else super useful. You can install in on Ubuntu direct from the repos:
sudo apt install neofetch
Using Ubuntu on WSL? You’ll find a tool similar to Neofetch preinstalled. Just open a terminal and run the wslfetch
command.
6. wttr (Weather Forecast)
Rather like rainy days in the UK, desktop Linux weather apps are pretty common. There are all manner of widgets, panel applets, GUI clients, and status bar add-ons able to relay current meteorological conditions.
But you can also check the weather from the command line. Some tools are basic but others, like the one below, show you a multi-day forecast for any location you specify. This is handy for when you want to know more than what the weather is doing right now (that’s what windows are form right?).
My favourite is wttr.in
. It’s not the most detailed CLI weather tool but it looks good, doesn’t require any complex set-up (e.g., API keys), and it’s memorable — you don’t even need to install it if you have curl
around.
To fetch a forecast open a terminal and run the following, replacing ‘City’ with a location:
curl wttr.in/City
The app can “autodetect” your location based on your IP address but this won’t be as accurate as specifying a city by hand.
7. ncspot
I mainly listen to music streaming services these days, so dedicated music players like Musikcube (number 2 in this list) aren’t required. My music streaming service of choice is Spotify. You probably already know how to install Spotify on Ubuntu before, but did you know you can stream Spotify music from the command line too?
Yup, all you need a Spotify Premium account and the handy little ncspot CLI Spotify app that wraps around the librespot library (which can be used on its own, itself).
While the app is a little barebones compared to other CLI music players there is a beauty in its simplicity. Rather than serve solely as a frontend for just finding music ncspot
is built around the idea of curating playlists/play queues from your favourite artists and albums.
To get the app installed on Ubuntu just run:
sudo snap install ncspot
The first time you run the client it’ll prompt you to login with your credentials. Press ?
at any time to see an overview of keyboard shortcuts and available options.
8. ncdu (Disk Analyser)
For a practical and speedy way to find out which files and folders are taking up the most disk space on your system, turn to NCurses Disk Usage, or ncdu
as it’s better known. It’s a super-charged version of the regular du
tool that uses a curses-based, fully interactive user interface.
While ncdu does most of what your distro’s built-in storage tools can do it’s faster — a lot faster — and the way it presents size and structure is very efficient. You can navigate using arrow keys, hit enter
to boop in and out of folders, and tap d
to delete — but don’t worry, it’ll double check you’re sure!
sudo apt install ncdu
When you run ncdu
it’ll take a few moments to analyse your disk. Then it displays a list of the directories or files ranked by size, from largest directory to smallest.
9. nnn (File Manager)
You likely know how to zip around your filesystem from the CLI using the cd
command, and ls
, cp
, mv
etc to manage files. The nnn
file manager can do all of that too, and a whole lot more — all from the one interface.
The chief benefit of using nnn is that it’s super-light on resources, fast, and makes it easy to navigate using a couple of keys (rather than typing commands).
sudo apt install nnn
Press the ?
at any time to get a shortcut cheatsheet.
10. mapscii (Maps)
I’m going to end this list with a CLI tool that demonstrates the sheer ingenuity that terminal-based utilities often exhibit, and the pure-JavaScript mapscii
is just the ticket.
Is being able to view and navigate maps in a terminal hugely practical? No. But using mapscii
is like using Google Earth for the first time: you can’t help but want to dive in and explore.
You can navigate maps in Mapscii using keyboard arrow keys (or by using your mouse to click and drag the map) and zoom in or out using the a
and z
keys or your mouse scroll wheel.
What’s impressive is just just how detailed most of the maps are. You can zoom in to see buildings, streets, and other information in incredible detail. While I don’t think you’d want to plot a route somewhere unfamiliar using Mapscii, there’s no denying that its got a unique charm of its own.
You can install Mapscii from the Snap Store, but you can try it without installing it by running:
telnet mapscii.me
While there doesn’t appear to be a way to specific a start location the whole map is super responsive so getting where you need isn’t a problem.