DevSecOpsARTIGO

Personalize o seu terminal com prezto + zsh

O shell padrão das distribuições Linux é o bash. Mas existem outras opções, como zsh, que depois de conhecer você não vai querer largar. Vamos explorar os seus recursos e adicionar novas funcionalidades com o frameworks prezto.

Fala pessoal, tudo bem? Quero falar hoje de uma ferramenta que faz parte do meu dia-a-dia de desenvolvedor e sempre se mostra indispensável. Sim, estamos falado do terminal!

O shell padrão das distribuições é o bash. Entretanto existem outras opções, entre os quais eu cito o zsh, um shell que após você começar, não vai conseguir mais deixar de usá-lo.

O zsh traz consigo uma grande quantidade de recursos que não estão presentes no bash:

  • autocomplete para os comandos digitados;
  • correção do comando com erros de digitação;
  • exibição de uma listagem de diretórios e arquivos de acordo com as letras digitidas no prompt;
  • histórico de comandos compartilhado por todos os terminais;
  • possibilidade de extender e adicionar novas funcionalidades e temas e plugins.

Neste artigo vamos explorar mais os recursos do zsh e adicionar novas funcionalidades ao mesmo através do framework prezto.

Instalação

Primeiramente, vamos instalar o zsh

sudo apt-get install zsh

Para usufruir de mais recursos, pode utilizar o framework prezto. Ele possui alguns plugins que aumentam a produtividade do zsh. Para instalá-lo, precisamos primeiramente ter o git instalado.

sudo apt-get install git

Agora realizamos o clone do repositório do prezto. Aqui usaremos o fork que fiz do repositório original, pois dessa maneira tema e plugins úteis já vem habilitados.

git clone --recursive https://github.com/mstuttgart/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

No diretório home do seu usuário, iremos criar alguns links nencessários para o funcionamento do zprezto.

ln -s ~/.zprezto/runcoms/zlogin ~/.zlogin
ln -s ~/.zprezto/runcoms/zlogout ~/.zlogout
ln -s ~/.zprezto/runcoms/zpreztorc ~/.zpreztorc
ln -s ~/.zprezto/runcoms/zprofile ~/.zprofile
ln -s ~/.zprezto/runcoms/zshenv ~/.zshenv
ln -s ~/.zprezto/runcoms/zshrc ~/.zshrc

Agora basta executarmos o zsh.

zsh

Para definir o zshcomo prompt padrão basta entrar com o comando:

sudo chsh -s /usr/bin/zsh

e abrir uma nova aba ou janela de terminal. Você pode também trocar o prompt diretamente na tela de configurações do seu terminal, conforme a imagem abaixo:

aa

Imagem retirada do seguinte tutorial.

Plugins

Os módulos (plugins) disponíveis podem ser visualizados no diretótio modules dentro do diretório de instalação do zprezto:

~/.zprezto/modules

Os módulos que você deseja utilizar podem ser adicionados no arquivo ~/.zpreztorc.

# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'git' \
  'completion' \
  'prompt' \
  'adicione o plugin aqui'

Temas

A lista de temas pode ser visualizada com o comando:

prompt -l

Para visualizar um tema em expecífico no terminal, basta utilizar o comando e em seguida abrir um nova aba no terminal

prompt -p nomedotema

Para utilizar o tema de maneira permanente, basta adicioná-lo no arquivo ~/.zpreztorc entre aspas simples, na sessão destinada a entrada de temas:

#
# Prompt
#

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'nomedotema'

Conclusão

Além do prezto, existem outras opções de frameworks como o Oh my Zsh!. Porém, apesar de ele possuir um número superior de temas e plugins, o prezto é de longe o mais rápido. O utilizo a um bom tempo e tem sido uma das minhas principais ferramentas de desenvolvimento.

É isso pessoal. Espero que vocês gostem de utilizar o Zsh. Até a próxima!

Referências

Bacharel em Engenharia da Computação pela Universidade Federal de Itajubá. É apaixonado por desenvolvimento de software, tecnologia e ciências, além de ser entusiasta da filosofia de Software Livre. Desenvolvedor Python e Linux User, também contribui em diversos projetos Open Source (incluindo projetos próprios) e colaborada nos blogs Código Avulso e PythonClub. Sempre está em busca de novos conhecimentos e de compartilhar o que aprende.

Ver perfil