CLI Tools that I use daily
Abstract
Managing different environments for the same program isn’t always straightforward, so I rely on a set of free tools that simplify the process. Most of these tools work well right out of the box or need only minimal setup. The tools mentioned here are used on Ubuntu 22.04, running within WSL2 on Windows 10. This post is designed as a quick-reference list, and I’ll update it as I add new tools to my workflow.
Programming
-
pyenv
“pyenv lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well”
-
rbenv
“rbenv is a version manager tool for the Ruby programming language on Unix-like systems. It is useful for switching between multiple Ruby versions on the same machine and for ensuring that each project you are working on always runs on the correct Ruby version”
-
sdkman
“Meet SDKMAN! – your reliable companion for effortlessly managing multiple Software Development Kits on Unix systems. Imagine having different versions of SDKs and needing a stress-free way to switch between them”
-
scala-cli
“Scala CLI combines all the features you need to learn and use Scala in your scripts, playgrounds and (single-module) projects. Scala CLI will soon become the default Scala runner and will be shipped as
scala
“ -
podman
“Podman is a utility provided as part of the libpod library. It can be used to create and maintain containers. The following tutorial will teach you how to set up Podman and perform some basic commands.”
-
tfenv
“Terraform version manager inspired by rbenv”
Other
-
oh-my-posh
“Oh My Posh is a custom prompt engine for any shell that has the ability to adjust the prompt string with a function or variable”
-
tmux
“tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal”
-
libwebp
“WebP codec is a library to encode and decode images in WebP format. This package contains the library that can be used in other programs to add WebP support, as well as the command line tools ‘cwebp’ and ‘dwebp’ to compress and decompress images respectively”