Saudações pessoal!
Produtividade sempre é um tema em alta nesses tempos, não é mesmo? E para nós que trabalhamos sempre com linux, lidar com inúmeros comandos e ações via terminal pode ser algo não muito produtivo. Por isso, hoje vou dar uma dica: utilize o ZSH com alguns plugins para aumentar sua produtividade no terminal.
O que é o ZSH?
O Z-shell ou Zsh é um interpretador de comandos UNIX como o bash, que atualmente é o interpretador mais utilizado. Entre suas características, destacam-se a gama de personalizações que podem ser aplicadas em sua interface e, principalmente, as otimizações disponíveis para o terminal do Linux.
Instalação do ZSH
Geralmente as distribuições linux trazem o pacote com o nome de zsh
mesmo. Para realizar a instalação em sua distribuição basta pesquisar este pacote. Vou deixar abaixo um pequeno guia com as principais distros: E
# Fedora:
dnf install zsh
# Arch:
pacman -S zsh zsh-completions
# OpenSUSE:
zypper in zsh
# Ubuntu:
apt install zsh
# BSD:
pkg install zsh bash
Com o ZSH devidamente instalado, vamos agora instalar o Oh My ZSH, um pacote que facilitará nossa vida ao configurar o interpretador. Nesta etapa sua senha será solicitada para realizar a alteração de seu shell padrão.
curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh; zsh
Se seu shell padrão não for atualizado na etapa anterior, execute o seguinte comando para forçar a troca:
sudo usermod --shell $(which zsh) $USER
Qualquer exemplo citado irá surtir efeito apenas na próxima seção. Você pode reiniciar seu computador aqui, ou pode simplesmente fazer logout e login novamente.
Configurações ZSH
Todas as configurações do ZSH são feitas por padrão no arquivo ~/.zshrc
, não utilizaremos mais o ~/.bashrc
ou derivados. Se você simplesmente abrir seu terminal após a instalação deverá ver uma tela semelhante a esta:

Bom, simplesmente de instalar o ZSH já poderemos perceber algumas diferenças com o bash. Por exemplo, a função de ‘tab’ permite que você utilize as setas para navegar entre as opções de pastas/arquivos do comando. Por exemplo:

Também funciona com as opções de comandos. Tente executar git <comando>
ou mesmo outro comando que você utilize bastante no dia a dia, e conseguirá navegar entre as opções utilizando as setas ou mesmo o TAB.
Você pode habilitar vários plugins no ZSH editando o arquivo ~/.zshrc
. Por exemplo, vamos habilitar o plugin systemd
:

Sempre que quiser adicionar um plugin, basta adicioná-lo a este bloco de seu arquivo. Para que a mudança entre em vigor, releia o arquivo de configurações do zsh com o comando source ~/.zshrc
. Teremos vários alias para o systemd, por exemplo:

Visto como instalar plugins, vamos instalar alguns para melhorar a aparência de nosso terminal, bem como para aumentar nossa produtividade de fato.
Vamos começar isntalando o plugin zsh-syntax-highlighting que basicamente vai deixar o comando verde se tiver sido digitado corretamente, ou do contrário, vermelho. E ao digitar um caminho, ele ficará sublinhado caso o arquivo/diretório existir.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Após clonar o repositório do plugin, adicione zsh-syntax-highlighting
na lista de plugins do seu arquivo de configurações.

Releia o arquivo de configurações do ZSH e você terá algo semelhante a:

Outro plugin interessante a se instalar é o zsh-autosuggestions que sugere comandos baseados no seu histórico. O processo é semelhante ao anterior. Primeiro clonamos o repositório:
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
Depois adicione zsh-autosuggestions
ao arquivo de configuração de seu zsh, e releia as configurações.

Após reler as configurações você terá algo semelhante a:

Agora um buscador de arquivos muito completo e fácil de usar, diretamente pelo terminal! Sempre que o instalador perguntar algo, responda que sim, ok?
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

Com o plugin instalado basta utilizar Ctrl + T
em seu terminal quando precisar buscar por algum arquivo.
Existem diversos outros plugins para zsh espalhados na internet, mas deixo aqui o link do repositório oficial para o zsh. Entre no site e busque plugins que façam sentido para seu dia a dia! É só clicar aqui!
Vamos configurar a aparência a partir de agora! Comece entrando no site Nerd Fonts: e realizando o download da fonte que você mais gostar. Vamos utilizar em nosso tutorial a fonte Hack que foi feita para uso em terminais.

Agora extraia o conteúdo dessa pasta em ~/.fonts:
cd ~ wget https://github.com/ryanoasis/nerd-fonts/releases/download/v1.2.0/Hack.zip mkdir ~/.fonts && cd ~/.fonts unzip ../Hack.zip
Agora nas preferências do seu emulador de terminal selecione a fonte que você baixou e extraiu. Será algo semelhante a:

Se você baixou a fonte hack, será possível exibir ícones diretamente de seu terminal.
O ZSH possui vários temas, um dos mais populares é o Powerlevel9k que se integra de maneira muito fluida ao git, suporta os ícones instalados no passo anterior e vai poupar alguns comandos repetitivos como o clássico git status
só pra conferir se tem algo alterado no repo 😆
Se você preferir pode utilizar o Powerlevel10K no lugar dele, pois possui as mesmas funções, com renderização otimizada.
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Agora basta trocar o ZSH_THEME
no seu “~/.zshrc” para powerlevel9k/powerlevel9k
visando habilitá-lo como tema e adicione POWERLEVEL9K_MODE="nerdfont-complete"
para habilitar os ícones:

Releia o arquivo de configuração do ZSH e terá um terminal semelhante a este:

Assim como o bash, por padrão ele exibirá seu-usuario@nome-de-host seguido do seu diretório atual. Isso pode ser totalmente personalizado! Dá pra exibir quantidade de RAM usada, Load Adverage, code coverage e várias outras coisas. Todas as opções disponíveis podem ser encontradas aqui:
https://github.com/bhilburn/powerlevel9k#prompt-customization
Em linhas gerais basta adicionar POWERLEVEL9K_LEFT_PROMPT_ELEMENTS = (...elements)
e POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS = (...elements)
no seu “~/.zshrc” logo após o POWERLEVEL9K_MODE
:

Releia as configurações e terá algo semelhante a:

Se você utilizar muito o git
ele irá alterando as cores e ícones para você saber sempre que houver algum arquivo modificado, deletado, adicionado, ou mesmo algum stash ou commit para baixar ou enviar… É bem detalhado, traz até a branch que você está! Essa parte ajuda bastante!
Isso são só algumas coisas possíveis de serem feitas, você pode visitar o site -> Show-Off-Your-Config e conferir várias outras personalizações, aumentando assim sua produtividade no terminal!
Espero que tenham curtido! Compartilhem aí com a galera!
Valeu!
Abraço!