Pular para o conteúdo

Zsh

O Zsh é um shell que busca ser mais poderoso e flexível que o Bash (o shell padrão do Ubuntu e do Fedora) Ele permite a instalação de uma série de plugins de forma mais simplificada.

Vamos instalá-lo já pensando em utilizar seu framework de customização Oh My Zsh. Para instalar o Zsh, vamos seguir as instruções do site do Oh My Zsh.

Instalação

Ubuntu e WSL

Execute o comando abaixo no terminal:

Terminal window
sudo apt install zsh -y

Verifique a instalação com o comando:

Terminal window
zsh --version

E então o defina como o shell padrão:

Terminal window
chsh -s $(which zsh)

Fedora

Execute o comando abaixo no terminal:

Terminal window
sudo dnf install zsh -y

Verifique a instalação com o comando:

Terminal window
zsh --version

E então o defina como o shell padrão:

Terminal window
sudo lchsh $USER

Windows

Infelizmente, o Zsh não é suportado nativamente no Windows. Ainda assim, instalaremos alguns plugins no PowerShell para aprimorá-lo.


Arquivo de configuração

Após instalar o Zsh, feche o terminal e abra-o novamente. Se tudo correr bem, você verá o texto de boas-vindas.

Terminal do Ubuntu WSL com texto de boas-vindas do Zsh. São apresentadas quatro opções de configuração: (q) sair sem criar o arquivo de configuração, (0) criar um arquivo de configuração vazio, (1) continuar para o menu e (2) criar um arquivo com as configurações recomendadas.
Texto de boas-vindas do Zsh no Windows Terminal rodando o Ubuntu.

O Zsh está pedindo para você criar um arquivo de configuração para ele. O shell, assim como diversos outros programas no Linux utilizam arquivos de configuração para definir suas opções.

Pressione 0 para criar um arquivo vazio. Não se preocupe, vamos preenchê-lo mais adiante.

O arquivo de configuração do Zsh é o .zshrc, assim mesmo, com ponto no começo e sem extensão. Sua localização é na pasta do seu usuário.

Oh My Zsh

O Oh My Zsh é um framework para gerenciar a configuração do zsh. Ele é altamente customizável e extensível, graças a uma grande quantidade de plugins e temas disponíveis.

Uma vez que ele depende do Zsh, sua instalação pode ser feita no Ubuntu, no Fedora e no WSL, mas não no PowerShell.

Instalação

Suas instruções de instalação estão disponíveis no seu repositório no GitHub.

Execute o seguinte comando no terminal para instalar o Oh My Zsh:

Terminal window
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Além de instalar o Oh My Zsh, o script de instalação também configura o arquivo .zshrc de forma a carregar o framework.

Terminal do Ubuntu WSL, em que se executa o script de instalação do Oh My Zsh.
Script de instalação do Oh My Zsh sendo executado no Ubuntu WSL.

Configuração

Feche e abra um novo terminal para que as alterações feitas no arquivo .zshrc tenham efeito.

Vamos usar um editor de texto para abrir o arquivo de configuração. Como já instalamos o Visual Studio Code, podemos usá-lo.

Digite no terminal o seguinte comando:

Terminal window
code ~/.zshrc

O ~ é um atalho para a pasta do usuário, ou seja, /home/gabriel no meu caso. Dentro dela, está o arquivo .zshrc.

Arquivo de configuração do Zsh exibido no VSCode, com o aviso de arquivo modo restrito.
Abrindo o arquivo de configuração do Zsh no Visual Studio Code.

Caso dentro do VSCode haja um aviso de que o arquivo está em modo restrito, clique em “Manage”. Então, na próxima página clique em “Trust”.

Tela de autorização para confiar no arquivo de configuração do Zsh no VSCode.
Permitindo confiar no arquivo de configuração do Zsh no VSCode.

Uou, realmente é um arquivo grande! Mas não se preocupe, todas as linhas que começam com # são comentários e não são executadas. Então, na verdade, não tem quase nada sendo definido no arquivo.

Por isso, vamos apagar tudo, e adicionar as seguintes linhas:

Terminal window
# Shell configuration
ZSH_THEME="robbyrussell"
## Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
## Path configuration
PATH=$PATH:~/.local/bin
## Source Oh my Zsh
source $ZSH/oh-my-zsh.sh
## Plugins
plugins=(git)

Por enquanto não definimos nada novo. Vamos fazer isso no próximo subcapítulo.