- Published on
Faster and colorful Command-Line tools 🌈⚡
- Authors
- Name
- Oscar Dominguez
- @oscard0m_
Today is Sunday, and I decided I wanted to look into some of the Command-Line tools written in Rust out there. Some of them have a lot of stars ⭐ on GitHub, so I have a good feeling these will be tools I will enjoy as a user and improve my productivity.
Rust is a programming language I want to get involved with. I came up with the idea of integrating some Command Line tools written in Rust in my day-to-day could be an excellent opportunity to get in touch with them as a user and, from there, maybe get involved in opening a new issue or drafting a Pull Request. Why not!
Here's the list of Command-Line tools I installed today on my personal computer:
bat
: A cat(1) clone with wings. It offers Syntax highlighting and Git integrationbandwhich
: A terminal bandwidth utilization tool. This CLI utility displays current network utilization by process, connection and remote IP/hostname.bottom
: A customizable cross-platform graphical process/system monitor for the terminal.delta
: A syntax-highlighting pager for git, diff, and grep output.dust
: A more intuitive version of du in Rust.eza
: A modern replacement forls
.fd
: A simple, fast and user-friendly alternative to 'find'.hyperfine
: A command-line benchmarking tool.prox
: A modern replacement forps
written in Rust.ripgrep
:ripgrep
recursively searches directories for a RegEx pattern while respecting your.gitignore
. Similar to popular search tools likeThe Silver Searcher
,ack
andgrep
.sd
: Intuitive find & replace CLI (sed
alternative).tealdeer
: A very fast implementation oftldr
in Rust. A more approachable complement to traditionalman pages
.zoxide
: A smarter cd command. Supports all major shells. Thanks for this one Stefan! @buckstefan
Some of these tools promise to give a better performance ⚡ than the common UNIX commands they are replacing. Others expand its functionality and improve the colouring 🌈 and presentation of the outputs, which is something I'm already enjoying.
To make them more traction, I added some aliases
in my .bash_profile
to ensure I use them in my daily work. Here's the snippet of bash just in case you want to apply the same aliases I did:
defineAlias () {
type "$2" >/dev/null 2>&1 && alias "$1"="$2"
}
defineAlias cat bat
defineAlias ls exa
defineAlias top btm
defineAlias du dust
defineAlias find fd
defineAlias ps procs
defineAlias grep rg
defineAlias sed sd
The defineAlias()
function does not define the alias if the command does not exist. It is handy if we decide to uninstall one of these tools and forget to remove the alias from our bash profile. I found this code snippet in this StackOverflow post.
This post was initially published on my blog. Come by and check other publications I have at https://oscardom.dev or say hi to me on Twitter: @oscard0m_