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.
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
- Column view support
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 📖
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
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
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.
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
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.
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,
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 PATTERNinstead 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.
On Ubuntu 19.04 or later, install fd command by:
sudo apt install fd-find
fdfindto access the command.
It is available in the official repositories of most major Linux distributions.
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.
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.
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
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:
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.
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.
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
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.
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)"
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
You can get precompiled binaries from the official downloads page.
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
- Supports customization of the color scheme.
- Supports pre-selection
Skim is available in Fedora and Arch Linux repositories, from where you can install using
pacman respectively. For other users, it can be installed using cargo or homebrew.
cargo install skim
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.
Many distributions like Arch Linux, Fedora, and OpenSUSE have Tokei in their repositories. In Ubuntu, you can install Tokei using Cargo.
cargo install tokei
Alacritty is a modern terminal emulator supported on all major platforms. It comes with extensive configuration capabilities and 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.
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.
Suggested Read 📖
- 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.