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.
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.
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 π
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."
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 π
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.
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.
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.
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.
Features of fd
- Short syntax:
fd PATTERN
instead offind -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
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.
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.
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.
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.
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.
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.
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.
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.
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.