Command-line tools may seem nerdy, but they’re often faster and more resource-efficient than full-fledged GUI alternatives.
Plus, as you’re about to discover, they can be way more fun to use too!
Whether you want to search the web, stream music, or subtweet your secret crush, you can do it all from the comfort of your chosen terminal emulator.
In this post, I’ll run through 10 of the best terminal apps. These tools aren’t the only ones available for their respective tasks, but they’re easy to use and install on Ubuntu.
So scroll on to discover a stellar assortment of the best Linux terminal apps out there — and don’t forget to drop the name of your own favourite(s) down in the comments!
10 Best Linux Command Line Tools
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!
You can monitor your computer’s resource usage in style on Ubuntu using btop++, which I consider the best system monitor CLI app, period.
Btop++ displays a wealth of information about your system’s resources, including memory, CPU, swap file, processor load, system uptime, and process data.
I love htop
as much as the next person, but btop++ puts 10-times the data on screen, presented through a well-designed, well-proportioned, and well-stocked resource dashboard that’s easy to parse and understand.
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.
You can install btop++ on Ubuntu as a Snap app like so:
sudo snap install btop
Depending on your language preference there are Python and Bash versions of this app available. These can be installed from a PPA should you prefer to get software updates from a traditional source.
2. musikcube (Music Player)
Musikcube is a command-line music player with a user interface inspired by fully-featured desktop music players, but without the unnecessary distractions.
I can zip through my music library, filter by artist, album, genres, or playlist, and compile a playlist/queue to suit my mood without having to take my hand off of my keyboard.
You can install musikcube
on Ubuntu through the Snap Store with this command:
sudo snap install musikcube
Keyboard shortcuts are sign-posted throughout the app or you can press the ?
key to reveal a cheat-sheet.
You can interact with Musikcube’s UI using a mouse, the latest version of the app work flawless with PipeWire; and the app is able to scrobble to last.fm, if that’s a feature you look for.
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.
Give it a try!
sudo apt install googler
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 for 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 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)
A fast way to find out which files/folders take up the most disk space on Ubuntu is to install the NCurses Disk Usage, or ncdu
as it’s better known. This command-line tool is super-charged version of the regular du
app, but uses a curses-based, interactive user interface.
Ncdu does most of what your distro’s built-in storage tools can do, but faster — a lot faster.
Plus, the way it presents size and structure is very efficient. Navigate ncdu using your keyboard’s arrow keys, hit enter
to enter a folder, and tap d
to delete a file (don’t worry about accidentally deleting things as ncdu asks you to confirm).
sudo apt install ncdu
When you run ncdu
it takes a couple of seconds to analyse your disk. Then a list of the directories or files appear 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, explore, and look up places you know.
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.
Summary
So that’s my list of the top terminal apps I like using on my Ubuntu, Fedora, and other Linux installs.
You may have noticed that well-known CLI tools like vim
, emacs
, wget
, grep
, cal
, top
didn’t feature. There was a reason; while those CLI apps are terrific you know about them already. Rather than remind you of things you’re familiar with, I opted to showcase lesser known, but no-less impressive, CLI tools instead.
This list isn’t set in stone, though. If there’s a terminal app or CLI utility you think should be included on this list that isn’t, you can let me know about it down below. And who knows: I might love it enough to revise and include it!