My terminal setup for higher productivity

Shell Type - I am currently using zsh shell on my system, which comes by default on macOS Catalina. I have been using ohmyz.sh to manage my zsh configuration and I highly recommend the same setup. The number of plugins that come with it makes life so much easier.

To install zsh - github.com/ohmyzsh/ohmyzsh/wiki/Installing-..

To install 'oh my zsh' - github.com/ohmyzsh/ohmyzsh/wiki

My ohmyzsh theme recommendation -

powerlevel10k

This theme allows so much customization of your terminal experience. As soon as you install, you go through a quick configuration setup, which allows you to change your setup according to your needs.

One of the little things that really help me personally is that I can see my current Kubernetes context and namespace on the right while running kubectl commands. This is really helpful when working with mulitple clusters and namespaces.

ohmyzsh plugins that I use -

  1. kubectl

Everyone working with Kubernetes eventually ends up making aliases for common kubectl commands. This plugin is basically a list of intuitive short-form aliases. For eg -

kgp - kubectl get pods

kgs - kubectl get svc

they are pretty intuitive and with some time you understand the pattern of aliases and it makes it so much faster to work kubectl

  1. zsh-autosuggestions

I can't imagine working without this plugin anymore. As the name hints, it gives autocomplete suggestions for commands based on your history

  1. zsh-syntax-highlighting

  2. web-search

Fuzzy searching everything

fzf fzf allows you to fuzzy search basically everything from directory to history.

The below article explains it way better than I ever could pragmaticpineapple.com/four-useful-fzf-tric..

but the tl:dr is

  • it allows you to move through directories really fast
  • preview files present basically anywhere on your system
  • Search through thousands of commands of history in an instant

To explore more tools checkout - modern-unix