🐚🦀Shell commands rewritten in rust
Tags: rust, shell, terminal, beginners
Published: 2024-06-17 13:36:54

## Introduction

For every software engineer, developer, or programmer, command-line tools are essential for making life easier, especially when working with code. In recent years, with the rise in popularity of the Rust language, we have seen a growing number of these tools being rewritten in Rust, providing better performance and reliability.

But you might be wondering: Why should I use a command rewritten in Rust? The answer is simple: because it's amazing!

In this article, we will present a list of some of these tools that we use in our daily lives.

🚨🚨🚨 **WARNING:If you like it this article please click in reaction and save, also follow me here and on my [Github](https://github.com/girordo)**

## Essential Tools

### [**bat**](https://github.com/sharkdp/bat)

"bat" is a clone of `cat` with syntax highlighting and Git integration. It works on Windows, MacOS, and Linux, offering syntax highlighting for a wide variety of file extensions.

### [**bottom**](https://github.com/ClementTsang/bottom)

"bottom" is a process and system monitoring tool. It provides graphical widgets to monitor CPU, RAM, network, disk, and other resources, making it a versatile and highly customizable choice for Linux, MacOS, and Windows.

### [**lsd**](https://github.com/lsd-rs/lsd)

"lsd" is an enhanced version of the `ls` command. It adds colors, icons, tree view, and more formatting options, making directory listing more informative and visually pleasing.

### [**fd**](https://github.com/sharkdp/fd)

"fd" is a fast and user-friendly alternative to the `find` command for locating entries in your file system. While it does not aim to replicate all the advanced functionalities of `find`, it offers opinionated defaults for most use cases.

### [**sd**](https://github.com/chmln/sd)

"sd" is an intuitive command-line tool for finding and replacing text. It simplifies the search and replace process with an easy-to-understand syntax, eliminating the need to deal with backslashes and other special characters.

## Bonus

Here are some additional tools that we plan to start using:

### [**xh**](https://github.com/ducaale/xh)

"xh" is a friendly and fast tool for making HTTP requests. It shares many of the great design features of HTTPie but focuses on improving performance. While we still use HTTPie out of habit, we plan to switch to "xh" soon.

### [**joshuto**](https://github.com/kamiyaa/joshuto)

A terminal file manager inspired by Ranger. Currently, we use Ranger, but we are considering switching to "joshuto."

### [**jql**](https://github.com/yamafaktory/jql)

"jql" is a JSON Query Language tool built in Rust. It provides a convenient way to query JSON data effectively.

### [**xcp**](https://github.com/tarka/xcp)

"xcp" is a partial clone of the Unix "cp" command. It is not intended to be a complete replacement but rather a complementary utility that provides more user-friendly feedback and specific optimizations for certain tasks.

## Custom Configurations

Here are some useful aliases that we have configured for "bat" and "lsd":

```
# Aliases
alias bat='batcat'
alias ll='lsd -la'
alias lld='lsd -la --date=relative --group-dirs=first'
alias lle='lsd -la --date=relative --sort=extension --group-dirs=first'
alias la='lsd -a'
alias l='lsd -l'
alias lt='lsd --tree'
```

## Conclusion

These are some of the tools we love to use in our daily workflow, and we hope you find them useful as well. Additionally, we introduced some options that we plan to adopt in the future.

For more information and to explore more commands and applications rewritten in Rust, check out the following links:

- [List of commands](https://gist.github.com/sts10/daadbc2f403bdffad1b6d33aff016c0a)
- [Original article](https://zaiste.net/posts/shell-commands-rust/)

Try out these tools and see how they can enhance your development and terminal experience!