Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
November 7, 2022 09:36 am GMT

Rust Easy! Modern Cross-platform Command Line Tools to Supercharge Your Terminal

Originally published at deepu.tech.

Rust is taking over the terminal. Rust is a general-purpose programming language that is blazing fast and memory safe. It is the fastest-growing and most loved programming language in the world. It is used to build everything from operating systems to web servers to command-line tools. Recently there has been a surge of command line tools and utilities written in Rust, and many of them are intended to replace standard Unix commands. They are faster, more user-friendly, and have more features than their standard Unix counterparts. In this post, I will cover some of the best Rust command line tools I have used for a while. You can also use these to supercharge your terminal.

These tools are available for both Linux and macOS. I have not tested them on Windows, but most should also work on Windows. I recommend aliasing the commands to replace the standard commands based on your preferences. If you have Cargo, the rust package manager, you can install all these using Cargo.

Alacritty

Let us start with the terminal itself. Alacritty is a cross-platform modern terminal emulator with sensible defaults. It is GPU accelerated, super fast, and highly configurable. You can use it on Linux, macOS, and Windows. It doesn't have much in terms of a UI, and hence all configurations are done through YAML files. I don't use it as my primary terminal as I love Yakuake too much for all its cool features. We can get most of those features (tabs, split panes, dropdown mode) using tmux and tdrop if really needed. I use Alacrity when I need speed and GPU acceleration. There is an excellent tutorial on using Alacritty with tmux.

Alacritty

Installation

# Arch Linuxyay -S alacritty# Fedora/CentOSdnf copr enable atim/alacrittydnf install alacritty# Debian/Ubuntuadd-apt-repository ppa:aslatter/ppaapt install alacritty# macOS Homebrewbrew install --cask alacritty# Windows Scoopscoop bucket add extrasscoop install alacritty# Cargo on anycargo install alacritty

Starship

Starship is the best terminal prompt I have ever used. Forget Oh My Zsh and stuff like that. Starship is fast, highly customizable, and has a great default theme and settings. I didn't even change most of the default settings, as things were perfect as it is. Starship works on shells like zsh, fish, and bash and can also work alongside other prompts like Oh My Zsh, in case you still want to use Oh My Zsh for other plugins like autosuggestions and so on. Starship works best with a Nerd Font as it can show icons and ligatures based on context. I used Oh My Zsh for many years with the powerlevel10k theme, but the prompt was a bit slow. Starship is blazing fast with more features and an excellent UX.

starship

Installation

# Arch Linuxyay -S starship# Fedora/CentOSdnf install starship# Debian/Ubuntucurl -sS https://starship.rs/install.sh | sh# macOS/Linux Homebrewbrew install starship# macOS MacPortsport install starship# Windows Scoopscoop install starship# Cargocargo install starship --locked

bat

bat is one of my favorite tools from this list. It's a replacement for cat, and once you have used bat, you will never go back. It provides features like syntax highlight, line numbers, Git change highlight, shows special chars, paging, and so on. It is super fast and looks beautiful. I have aliased cat to bat immediately after trying it for the first time. By default, bat behaves similarly to less by paging large output, but that can be disabled to make it work precisely like cat. It can be used as a drop-in replacement for cat even in scripts. bat can also be used as a previewer for fzf. It can also be combined with many other commands and tools like tail, man, and git, among others, to add syntax highlighting to outputs. Syntax highlighting themes are configurable.

bat

Installation

# Arch Linuxyay -S bat# Fedora/CentOSdnf install bat# Debian/Ubuntuapt install bat# macOS/Linux Homebrewbrew install bat# macOS MacPortsport install bat# Windows Scoopscoop install bat# Cargocargo install bat --locked

LSD and exa

Both LSD and exa are replacements for the ls command. They both look gorgeous with nice colors and icons and have features like headers, sorting, tree views, and so on. Exa is a bit faster than LSD for tree views and can show the Git status of files and folders. I prefer exa due to the Git support and faster tree views. I have set up my ls alias to use exa by default. Both can be configured to show custom columns and sorting behaviors.

lsd-exa

exa Installation

# Arch Linuxyay -S exa# Fedora/CentOSdnf install exa# Debian/Ubuntuapt install exa# macOS Homebrewbrew install exa# Cargocargo install exa# Alias ls to exaalias ls='exa --git --icons --color=always --group-directories-first'

LSD Installation

# Arch Linuxyay -S lsd# Fedora/CentOSdnf install lsd# Debian/Ubuntudpkg -i lsd_0.23.1_amd64.deb # get .deb file from https://github.com/Peltoche/lsd/releases# macOS Homebrewbrew install lsd# macOS MacPortsport install lsd# Windows Scoopscop install lsd# Cargocargo install lsd# Alias ls to lsdalias ls='lsd --header --color=always --group-directories-first'

rip

rip is an improved version of the rm command. It is faster, safer, and user-friendly. rip sends deleted files to a temp location so they can be recovered using rip -u. I really like the simplicity and the revert feature, as I don't have to worry about accidentally deleting something using rm. While rip can be aliased to replace rm, the creators advise not doing that as you might get used to it and do rm on other systems where you cannot revert the delete.

Installation

# Arch Linuxyay -S rm-improved# Fedora/CentOS/Debian/Ubuntu# Install from binary or build locally using Cargo# macOS Homebrewbrew install rm-improved# Cargocargo install rm-improved

xcp

xcp is a partial clone of the cp command. It is faster and more user-friendly with progress bars, parallel copying, .gitignore support, and so on. I like its simplicity and developer experience, especially the progress bars. I have aliased cp to xcp so I can use it everywhere.

xcp

Installation

# Arch Linuxyay -S xcp# Fedora/CentOS/Debian/Ubuntu/macOS# Install from binary or build locally using Cargo# Cargocargo install xcp# Alias cp to xcpalias cp='xcp'

zoxide

zoxide is a smarter cd replacement. It remembers the directories you visit, and you can jump to them without providing a full path. You can provide partial paths or even a word from the path. When there are similar paths, zoxide offers an interactive selection using fzf. It is super fast and works with all major shells. I like how it works, and I have aliased cd to z so I can use it everywhere.

zoxide

Installation

# Arch Linuxyay -S zoxide# Fedora/CentOSdnf install zoxide# Debian/Ubuntuapt install zoxide# macOS/Linux Homebrewbrew install zoxide# macOS MacPortsport install zoxide# Windows Scoopscoop install zoxide# Cargocargo install zoxide --locked

Once installed, you must add the following to your shell config file. For other shells, refer the docs

# bash (~/.bashrc)eval "$(zoxide init bash)"# zsh (~/.zshrc)eval "$(zoxide init zsh)"# fish (~/.config/fish/config.fish)zoxide init fish | source# Alias cd to zalias cd='z'

dust

Dust is an alternative for the du command. It is fast and has a better UX with nice visualization for disk usage.

dust

Installation

# Arch Linuxyay -S dust# Fedora/CentOS# Install binary from https://github.com/bootandy/dust/releases# Debian/Ubuntudeb-get install du-dust# macOS Homebrewbrew install dust# macOS MacPortsport install dust# Windows Scoopscoop install dust# Cargocargo install du-dust

ripgrep

ripgrep (rg) is a line-oriented search tool that recursively searches your current directory for a regex pattern. It is faster than grep and has many features like compressed files search, colorized output, smart case, file type filtering, multi-threading, and so on. It understands .gitignore files and skips hidden and ignored files. Here is a feature comparison with other similar tools, and yes, it is faster than all the other tools in the list.

ripgrep

Installation

# Arch Linuxyay -S ripgrep# Fedora/CentOSdnf install ripgrep# Debian/Ubuntuapt-get install ripgrep# macOS/Linux Homebrewbrew install ripgrep# macOS MacPortsport install ripgrep# Windows Scoopscoop install ripgrep# Cargocargo install ripgrep

fd

fd is a simpler alternative to find. It is more intuitive to use and comes with sensible defaults. It is extremely fast due to parallel traversing and shows a modern colorized output and supports patterns and regex, parallel commands, smart case, understands .gitignore files, and so on. I have aliased find to fd as I could never remember what options to pass to get a basic find command working.

fd

Installation

# Arch Linuxyay -S fd# Fedora/CentOSdnf install fd-find# Debian/Ubuntuapt install fd-find# macOS Homebrewbrew install fd# macOS MacPortsport install fd# Windows Scoopscoop install fd# Cargocargo install fd-find

sd

sd is a find-and-replace CLI, and you can use it as a replacement for sed and awk. It is way more user-friendly and modern. It is also magnitudes faster than sed.

Installation

# Arch Linuxyay -S sd# Fedora/CentOSdnf install sd# Debian/Ubuntu# Install binary from the release page# macOS Homebrewbrew install sd# Windows Scoopchoco install sd-cli# Cargocargo install sd

procs

procs is a ps replacement. It provides colorized human-readable output, multi-column search, more information than ps, docker support, paging, watch mode, and tree view. It is a much more user-friendly and modern alternative to ps. You can filter by name and PID and use logical and/or operators to combine multiple filters. It also has a tree view which is very useful for seeing the process hierarchy. It can also show docker container names for the process running docker containers.

procs

Installation

# Arch Linuxyay -S procs# Fedora/CentOSdnf install procs# Debian/Ubuntu# Install binary from the release page# macOS Homebrewbrew install procs# macOS MacPortsport install procs# Windows Scoopscoop install procs# Cargocargo install procs

bottom

bottom is a top replacement with a nice terminal UI. It's quite feature-rich and customizable.

bottom

Installation

# Arch Linuxyay -S bottom# Fedora/CentOSdnf copr enable atim/bottom -ydnf install bottom# Debian/Ubuntudpkg -i bottom_0.6.8_amd64.deb# macOS Homebrewbrew install bottom# macOS MacPortsport install bottom# Windows Scoopscoop install bottom# Cargocargo install bottom --locked

Topgrade

Topgrade is a fantastic utility if you prefer to keep your system up-to-date, like me. It detects most of the package managers on your system and triggers updates. It is configurable, so you can configure it to ignore certain package managers. On my system, it detected pacman, SDKMAN, Flatpak, snap, Homebrew, rustup, Linux firmware, Pip, and so on. Topgrade is cross-platform; you can use it on Windows, macOS, and Linux.

topgrade

Installation

# Arch Linuxyay -S topgrade# Fedora/CentOS/Debian/Ubuntu/Windows# Install binary from the release page# macOS Homebrewbrew install topgrade# macOS MacPortsport install topgrade# Cargocargo install topgrade --locked

Broot

Broot is a tree alternative with a better user experience, and you can use it to navigate a file structure. It's fast and respects .gitignore. You can cd into a directory from the tree view, open sub-directories in a panel, and even preview files. It has excellent keyboard navigation as well. It has many more features.

broot

Installation

# Arch Linuxyay -S broot# Fedora/CentOS/Debian/Ubuntu/Windows# Install binary from release page https://dystroy.org/broot/install/# macOS Homebrewbrew install broot# macOS MacPortsport install broot# Cargocargo install broot --locked

Tokei

Tokei is a nice utility to count lines and stats of code. It is very fast, accurate, and has a nice output. It supports over 150 languages and can output in JSON, YAML, CBOR, and human-readable tables.

tokei

Installation

# Arch Linuxyay -S tokei# Fedora/CentOSdnf install tokei# Debian/Ubuntu# Install binary from the release page# macOS Homebrewbrew install tokei# macOS MacPortsport install tokei# Windows Scoopscoop install tokei# Cargocargo install tokei

Other notable tools

  • kdash: A fast and simple dashboard for Kubernetes. Its created by me :)
  • xh: A HTTPie alternative with better performance.
  • monolith: Convert any webpage into a single HTML file with all assets inlined.
  • delta: A syntax-highlighting pager for git, diff, and grep output.
  • ripsecrets: Find secret keys in your code before committing them to git.
  • eva: A CLI REPL calculator.
  • You can find a list of other Rust CLI tools here

If you like this article, please leave a like or a comment.

You can follow me on Twitter and LinkedIn.

Cover image credit: Image derived from work in egonelbre/gophers created by @egonelbre.


Original Link: https://dev.to/deepu105/rust-easy-modern-cross-platform-command-line-tools-to-supercharge-your-terminal-4dd3

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To