14 Rust Tools for Linux Terminal Dwellers

Rust-powered tools for the terminal? Here are some of the best options as alternatives to some popular command-line tools!

Rust programming language is constantly getting more famous for its performance-oriented and memory-safe approach.

You can find plenty of software rewritten in Rust just to make things faster and more robust. As an example relevant to Linux users, System76 chose to build its desktop environment from scratch powered by Rust. So, it is undoubtedly loved by many.

Let me highlight some of the best Rust-powered Linux terminal tools to save you some trouble.

📋
The list is in no particular order of ranking.

1. Exa

One of the first tools, that comes to my mind, when thinking about rust apps is exa, a great alternative to the most common ls command.

It offers features like colored output, icon support, etc that make it visually pleasing to use.

exa command in terminal screenshot
Exa: An alternative to ls command

Features of Exa

  • It uses colors to distinguish file types and metadata.
  • It knows about symlinks, extended attributes, and Git.
  • Exa queries files in parallel, giving you performance on par with ls
  • Built-in tree tool
  • Column view support

Install Exa

Exa is available in almost all the repositories of major distributions. In Ubuntu, you can install exa by the following command:

sudo apt install exa

Once installed, you can use exa in the terminal to use it. If you want it instead of ls all the time, create an alias for ls with exa.

Suggested Read 📖

Linux Alias Command: Set, Create and Remove Aliases
Alias command in Linux saves a lot of your time and improves your efficiency. Learn how to use this command properly and see some of the common aliases I use.

2. Bat

One of the most commonly used command-line tool is cat, where we can output the content of a file to the terminal.

Bat is a worthy alternative to the cat command, which according to its developers, is "cat clone with wings."

A screenshot showing bat displaying bashrc file
Bat

Features of Bat

  • Syntax Highlighting for a large number of programming and markup languages.
  • Git integration
  • Show non-printable characters
  • Automatic paging for large files that don't fit into one page
  • File concatenation

Install bat

Bat is available in all repositories. You can install it in Ubuntu by using the following command:

sudo apt install bat

For Ubuntu users, once installed, you need to use batcat instead of bat to run it.

Suggested Read 📖

Cat Command in Linux: Essential and Advanced Examples
cat is one of the most used commands in Linux but do you really know the cat command? Learn the basics as well as advanced examples of cat command in Linux.

3. Starship Prompt

There are many shells out there like bash, zsh, etc. You probably know the popular ones, and if you are curious, we have a list of lesser-known shells.

But all of those provide a shell prompt, which looks almost the same.

Starship prompt allows you to change the look of your shell prompt the way you want with a vast amount of configuration options. Starship prompt is simply an excellent customization tool.

Starship Prompt: A Shell prompt written in rust with lot of customisation possibilities
Starship Prompt

Features of Starship Prompt

  • Minimal and fast
  • Works with almost all major shells
  • Intelligent: shows relevant information at a glance.
  • Feature-rich: support for all your favorite tools.
  • Customizable: configure every aspect of your prompt.

Install Starship Prompt

Starship prompt is not available in official repositories. In Ubuntu and other distributions, to install the latest version of Starship, first, ensure you have curl installed:

sudo apt install curl

Then, use this command to install the starship prompt:

curl -sS https://starship.rs/install.sh | sh

You can explore more about it in our how to use starship article. Also, the official wiki should be a good place to start.

4. Dust

Dust is a more intuitive Rust version of the du command. It gives you an instant overview of which directories are using the disk space without requiring to sort.

Dust command showing memory usage in user Home directory
Dust: A du command alternative

Features of Dust

  • The largest subdirectories will be colored.
  • Small, simple, and easy-to-understand
  • Returns a graphical overview of contents that shows its contents and what percentage each item holds.

Install Dust

Dust is available in the Arch Linux community repository, and you can install it directly from Arch-based distributions using Pacman commands.

On Ubuntu, you can install Dust using cargo. For that, you need to set up cargo in Ubuntu. Once set, install the tool using the following command:

cargo install du-dust

5. ripgrep

If you use the Linux terminal frequently, you may have used the grep command. It is such an important command with varied use cases.

ripgrep is the rust implementation of grep with more valuable features and tweaks. ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern.

ripgrep command is used to search for a certain text inside files of a directory
ripgrep: A modern grep command alternative

Features of ripgrep

  • ripgrep defaults to recursive search and does automatic filtering.
  • ripgrep can search specific types of files, like python files (rg -tpy foo). Also, it can be taught about new file types with custom matching rules.
  • Supports many features found in grep. It stays fast while supporting Unicode.
  • ripgrep has optional support for switching its regex engine to use PCRE2. This makes it possible to use look-around and backreferences in your patterns, which are not supported in ripgrep's default regex engine.

Install ripgrep

For Ubuntu 18.10+ users, ripgrep can be installed by using the following command:

sudo apt install ripgrep

Once installed, you can use ripgrep by using the name of the binary, that is, rg.

6. fd

fd is a program to find entries in your filesystem, which is an alternative to the ever-famous find command. The developer mentions:

While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.
fd command screenshot
fd: A find command alternative, written using Rust

Features of fd

  • Short syntax: fd PATTERN instead of find -iname '*PATTERN*'.
  • Uses colors to highlight different file types (same as ls).
  • Smart case: the search is case-insensitive by default. It switches to case-sensitive if the pattern contains an uppercase character.
  • Very fast due to parallelized directory traversal.

Install fd

On Ubuntu 19.04 or later, install fd command by:

sudo apt install fd-find
💡
In Ubuntu, you should use fdfind to access the command.

It is available in the official repositories of most major Linux distributions.

7. Procs

Procs is a modern replacement for the ps command, written in Rust.

It provides a colored, human-readable output with automatic theme detection based on the terminal background. It is also available for all major platforms, Linux, Mac, and Windows.

Procs command returns the running processes and their details
Procs Command

Features of Procs

  • Multi-column keyword search
  • Pager support
  • Watch mode (like top) and Tree view
  • Some additional information which are not supported by ps: TCP/UDP port, Read/Write throughput, Docker container name, and More memory information.

Install Procs

Procs is available as a snap. So if you are using Ubuntu, or you have snap app support enabled, run the following command to install procs:

sudo snap install procs

It is also available in the Arch Linux community repository and Fedora official repositories.

8. Tealdeer

tldr is a simplified, community-driven collection of manpages, while Tealdeer is a speedy rust implementation of tldr.

Man pages are a treasure for those starting new in the Linux command line. But the traditional man page provides a huge amount of information, which may overwhelm many.

The simplified tldr is a great relief because Tealdeer adds fast retrieval of the data in a neat format.

Tealdeer command displays a consise and easy to comprehend man page
Tealdeer

Features of Tealdeer

  • Downloads and cache pages, so you need internet only when updating the cache.
  • Advanced highlighting and configuration.
  • Output color support.
  • Comply with the tldr client specification

Install TealDeer

Tealdeer is available in Arch Linux and Fedora repositories. Users of these systems can install it from there. If you are using Ubuntu, install tealdeer with cargo:

cargo install tealdeer

Once installation is finished, run the following command to update the cache:

tldr --update

Another exciting thing is that a static binary available to download, which doesn't require any installation. You can check it on their GitHub releases page.

9. Bottom

Bottom is a customizable cross-platform graphical process/system monitor inspired by tools like htop, gtop, etc.

One of the main highlights of this system monitor tool is the availability of graphical visualization widgets for CPU usage, RAM usage, etc.

Bottom Command: Another system monitor tool. A gif showing its working.
Bottom: A System Monitor

Features of Bottom

  • Widgets for displaying info about battery usage, disk capacity, temperature sensors, etc.
  • A process widget for displaying, sorting, and searching info about processes, as well as support for kill signals and tree mode.
  • Customizable behavior that can be controlled with command-line flags or a config file.
  • An htop-inspired basic mode and expansion, which focuses on just one widget.

Install Bottom

Bottom is available in the Arch Linux Community repository and also available as a snap. If you use Ubuntu/Debian, there is a deb package for stable and nightly builds on its GitHub releases page.

You can also use the following commands to install it via the terminal:

curl -LO https://github.com/ClementTsang/bottom/releases/download/0.7.1/bottom_0.7.1_amd64.deb
sudo dpkg -i bottom_0.7.1_amd64.de

10. Zoxide

You should be aware of the cd command used to move into various directories. While cd is plenty good, Zoxide is kind of a smarter cd. Zoxide can remember the directories you use most frequently, so you can "jump" to them in just a few keystrokes.

This helps to boost your productivity, and more importantly, it is available for all significant shells out there.

Zoxide works same as cd command, but remembers the frequent directories. A gif showing its working.
Zoxide: A modern cd command alternative

Features of Zoxide

  • Runs on most major platforms, Linux, mac, Windows, BSD and Android.
  • Third-party integrations for Vim, Emacs, Ranger file manager, ZSH-Autocomplete, etc.
  • Optional interactive selection using fzf command-line fuzzy finder
  • Works on all major shells.

Install Zoxide

For Ubuntu 21.04 and above, Zoxide is available on official repositories. Just run:

sudo apt install zoxide

Or if you want to install the latest version, use:

curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash

After installing, add the following line to the bottom of your bashrc.

eval "$(zoxide init bash)"

11. Broot

Broot is another rust tool, through which you can navigate directories.

You can get an overview of big directories, making it easier for you to explore. And, when searching for a file, it tries to select the most relevant file.

Broot: Navigate directories
Broot: Navigate directories

Features of Broot

  • Get overview of big directories
  • You may also search with a regular expression
  • Manipulate your files: Move, copy, rm, mkdir, are built in and you can add your shortcuts.
  • Manage files with panels and preview files

Install Broot

You can get precompiled binaries from the official downloads page.

12. Skim

Skim is a command-line fuzzy finder. It can be used as a general filter (like grep) or as an interactive interface for invoking commands.

You can explore its GitHub page for usage instructions.

skim command-line fuzzy find screenshot
Skim: Command-Line Fuzzy Finder

Features of Skim

  • It can invoke other commands dynamically.
  • It provides a regex mode, which you can switch dynamically by pressing Ctrl-R (Rotate Mode).
  • Supports customization of the color scheme.
  • Supports pre-selection

Install Skim

Skim is available in Fedora and Arch Linux repositories, from where you can install using dnf and pacman respectively. For other users, it can be installed using cargo or homebrew.

cargo install skim

13. Tokei

Tokei is a program that displays statistics about your code, like the number of files, total lines within those files and code, comments, etc. It is available for macOS, Linux, and Windows.

Tokei tool displaying statistics of a code screenshot
Tokei: Displays statistics about your code

Features of Tokei

  • Tokei is very fast and can count millions of lines of code in seconds.
  • Correctly handles multi-line and nested comments, and not counting comments in strings. Providing accurate code statistics.
  • Supports over 150 languages and their various extensions.
  • Tokei is also a library allowing you to easily integrate it with other projects.

Install Tokei

Many distributions like Arch Linux, Fedora, and OpenSUSE have Tokei in their repositories. In Ubuntu, you can install Tokei using Cargo.

cargo install tokei

14. Alacritty

Alacritty is one of the best Linux terminal emulators that supports all major platforms. It comes with extensive configuration capabilities and is known for its fast performance.

Alacritty: A Modern Terminal Emulator
Alacritty: A Modern Terminal Emulator

Features of Alacritty

  • The vi mode allows moving around Alacritty's viewport and scrollback using the keyboard.
  • You can open URLs with your mouse by clicking on them.\
  • Search allows you to find anything in Alacritty's scrollback buffer.
  • Alacritty supports running multiple terminal emulators from the same instance.

Install Alacritty

Precompiled binaries are available on their GitHub releases page. You can also install it using cargo. First, you need to install the required dependencies:

sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3

Now install Alacritty using the command below:

cargo install alacritty

Once installed, launch Alacritty from the terminal.

Honorable Mentions

  • monolith: CLI tool for saving complete web pages as a single HTML file
  • macchina: A system information frontend.
  • Ouch: Painless compression and decompression for your terminal
  • Difftastic: structural diff tool that compares files based on their syntax.
  • Topgrade: Upgrade all the things by detecting the tools you use and running the appropriate commands to update them.
  • sd: Intuitive find & replace CLI (sed alternative)

💬What is your favorite on the list? Did we miss listing your favorite rust tools for the Linux terminal? Share your thoughts in the comments section below.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.