Instalando e Configurando o ZSH no Ubuntu 20.04

Augusto Ribeiro (Guto)
7 min readMay 7, 2020

--

Mas o que é ZSH?

O Z Shell ou simplesmente o ZSH, é um shell assim como o Bash e SH. Um shell no mundo GNU/Linux é a interface entre o usuário e o sistema operacional através da qual o usuário interage em linha de comando.

Existem vários shell’s, o shell padrão em um terminal no Ubuntu é o bash. Como saber qual o shell está sendo utilizado por seu usuário?

Em um terminal digite:

echo $SHELL
Executando o echo $SHELL no terminal

Como saída do comando, foi exibido /bin/bash, ou seja, o usuário está usando o bash como shell padrão.

Com o ZSH é possível usufruir de alguns recursos avançados de usabilidade quando comparado ao bash. Para quem utiliza o git como sistema de controle de versão, por exemplo, o ZSH possibilita integração, exibindo no terminal a branch atual, dentre outros recursos.

O ZSH é muito mais personalizável e possui uma série de plugins que permitem estender suas funcionalidades.

Instalando o Z Shell (ZSH) no Ubuntu 20.04

Como o ZSH já está disponível no repositório oficial do Ubuntu 20.04, a sua instalação fica facilitada, pois basta utilizar o apt (gerenciador de pacotes do Ubuntu) para instalá-lo.

1º) Atualize o cache do apt com o comando:

sudo apt update
Execução do comando: sudo apt update

2º) Instale o ZSH com o comando:

sudo apt install zsh -y
Execução do comando: sudo apt install zsh -y

Observação: o “-y” no final do comando é para não ter confirmação antes da instalação.

3º) Verifique se o ZSH está realmente instalado com o comando:

zsh --version
Execução do comando zsh — version

A saída do comando será:

zsh 5.8 (x86_64-ubuntu-linux-gnu

Definindo o ZSH como o shell padrão do usuário

1º) Precisamos saber onde está o binário do ZSH com o comando:

whereis zsh
Execução do comando: whereis zsh

Observe na saída do comando o trecho em negrito, ele indica o path (caminho) do binário do zsh:

zsh: /usr/bin/zsh /usr/lib/x86_64-linux-gnu/zsh /etc/zsh /usr/share/zsh /usr/share/man/man1/zsh.1.gz

2º) Agora pode-se definir queo ZSH será o shell padrão para o usuário com o comando:

sudo usermod -s /usr/bin/zsh $(whoami)
Execução do comando: sudo usermod -s /usr/bin/zsh $(whoami)

O comando define que o shell padrão do usuário, que é retornado pela execução do whoami entre os parenteses em uma variável, será o indicado no path da opção -s, ou seja, o zsh.

3º) Feche o terminal e abra novamente e observe a mensagem que surge:

Primeira execução do terminal após definição do ZSH como o shell default

Tecle 2 para que o ZSH crie o arquivo .zshrc dentro do diretório home do usuário. É nesse arquivo que ficam as configurações do ZSH.

ZSH configurado

Estilizando o ZSH com o tema Powerlevel9k

O Powerlevel9k é um tema bem bonito para linha de comando do ZSH. Para nossa sorte, ele também está disponível no repositório oficial do Ubuntu 20.04.

Instalando o Powerlevel9k

1º) Instale o tema powerlevel9k com o seguinte comando:

sudo apt install zsh-theme-powerlevel9k
Execução do comando: sudo apt install zsh-powerlevel9k

2º) Após a instalação do tema, precisamos adicionar a configuração no arquivo .zshrc definindo que ele será o tema utilizado pelo ZSH. Uma das formas de se fazer isso é com o comando abaixo:

echo "source /usr/share/powerlevel9k/powerlevel9k.zsh-theme" >> ~/.zshrc
Adição da configuração do tema powerlevel9k como padrão no ZSH

O comando anterior adiciona no final do arquivo .zshrc, que está dentro do diretório home do usuário, o conteúdo entre aspas.

3º) Feche a abra novamente o terminal para ver efeito, conforme figura abaixo:

ZSH com tema Powerlevel9K habilitado

Habilitando destaque de comandos (Syntax Highlighting)

Adicionalmente, pode-se habilitar um destaque nos comandos digitados. Esse recurso é conhecido como Syntax Highlighting e é amplamente utilizado em outros editores de textos, IDEs, etc.

1ª) O pacote que provê o syntax highlighting no ZSH também está disponível no repositório oficial do Ubuntu 20.04. Portanto, para instalar esse recurso, basta executar o comando abaixo:

sudo apt install zsh-syntax-highlighting
Execução do comando: sudo apt install zsh-syntax-highlighting

2º) Habilite a configuração de Syntax Highlighting no zsh com comando abaixo:

echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
Execução do comando: echo “source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh” >> ~/.zshrc

3º) Feche a abra novamente o terminal. Ao executar comandos, perceberá que serão destacados em cores diferentes, comandos, opções e parêmetros de comandos, dentre outros destaques.

Visualizando o destaque nos comandos digitados

Configurando a integração do ZSH com o Git

Existe um framework adequado que provê facilidades/funcionalidades no shell para o uso do git com o shell ZSH. Esse framework é o Oh-My-ZSH, que está disponível no GitHub.

Dentre as funcionalidades, pode-se citar a exibição no prompt do shell a branch atual, se há alterações pendentes de commit, dentre outras.

1ª) Caso ainda não tenha o git instalado, instale com o comando abaixo:

sudo apt install git

2ª) Depois de ter o git em seu sistema, para instalar o Oh-My-ZSH, execute no terminal:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Instalando o Oh-My-ZSH

Quando se instala o Oh-My-ZSH, o arquivo de configuração do ZSH (.zshrc) é alterado. Logo, as alterações feitas anteriormente como ter habilitado o tema Powerlevel9k e o Syntax Highlighting foram perdidas.

3º) Habilitando novamente o Powerlevel9k com o comando:

echo "source /usr/share/powerlevel9k/powerlevel9k.zsh-theme" >> ~/.zshrc

4º) Habilitando novamente o plugin Syntax Highlighting com o comando:

echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc

5º) Feche a abra novamente o terminal para visualizar as alterações.

6º) Para ilustrar a integração com o Git, pode-se criar um diretório, dentro do diretório home, e nele inicializar um repositório git. Para tanto, basta executar o comando abaixo:

mkdir repo-teste && cd repo-teste && git init
Criando um respositório teste para visualizar a integração ZSH com o Git

Personalizando ainda mais o ZSH

Habilitando Plugins do Oh-My-ZSH

O framework Oh-My-ZSH possui muitos plugins que extendem sua fucionalidades. Ao instalar o framework, conforme descrito anteriormente, dentro do diretório home foi criado um diretório .oh-my-zsh com o todo o seu código.

Dentro do diretório .oh-my-zsh, há um diretório plugins que contém os plugins disponíveis para o framework. O comando abaixo exibe os plugins disponíveis:

ls .oh-my-zsh/plugins

A saída do comando será vários diretórios, cada um para um plugin diferente. Destaca-se alguns: colored-man-pages, docker, ansible, mvn, dentre outros. Todos os plugins proporcionam funcionalidades extras no ZSH.

Como se habilita um plugin do Oh-My-ZSH?

Conforme já foi dito, qualquer configuração do ZSH fica dentro do diretório home do usuário em um arquivo nomeado .zshrc.

Para exemplificar, pode-se habilitar o plugin colored-man-pages, que proporciona a exibição colorida de páginas de manuais de comandos no GNU/Linux.

1ª) Usando um editor de texto, por exemplo o nano ou o vi, abra o arquivo de configuração com o comando:

nano ~/.zshrc

2º) Localize a linha que tem “plugins=”. Já deve ter entre os parenteses o plugin git, vamos acrescentar o colored-man-pages, conforme abaixo:

plugins=(
git
colored-man-pages
)

3º) Salve e feche o arquivo. Feche a abra novamente o terminal para carregar as alterações.

4º) Para visualizar o efeito que plugin proporciona, digite no terminal:

man git
Exibindo a página de manual do comando git, com o uso do plugin colored-man-pages

Habilitando outros temas

É possível utilizar outros temas no ZSH, além d Powerlevel9k. Para consultar alguns temas disponíveis, acesse https://github.com/ohmyzsh/ohmyzsh/wiki/Themes.

Para habilitar um tema diferente, abra novamente o arquivo .zshrc e localize a linha ZSH_THEME=. Entre as aspas duplas, basta informar o nome do tema desejado.

Observação importante é que para funcionar o novo tema, deve-se comentar, adicionando um # no início da linha que habilita o tema powerlevel9k, no final do arquivo:

#source /usr/share/powerlevel9k/powerlevel9k.zsh-theme

Explore mais temas e plugins para tornar o seu terminal shell mais produtivo e elegante.

Referências:

--

--