DEV Community

loading...
Cover image for Instalando e Utilizando ZSH

Instalando e Utilizando ZSH

edersonferreira profile image Ederson Ferreira Updated on ・5 min read

ZSH é um shell. na maioria dos sistemas UNIX ou Linux o shell padrão é o Bash, que na opinião de muitos, não é o mais prazeroso para pessoas que querem maior personalização e produtividade no seu shell, enquanto o ZSH permite uma maior personalização e produtividade no uso de um Terminal.

ZSH permite instalação de plugins que extendem as funções normais de um shell, instalação de temas diretamente no shell (sem ser um tema para um terminal específico), e um TAB melhorado

Instalando ZSH

Para instalar o ZSH usando a linha de comando é bem simples, siga a lista abaixo e procure o seu sistema operacional:

Mac OS

Instalação:
brew install zsh git

Debian (Ubuntu, Linux Mint,etc)

Instalação:
sudo apt install zsh git

OpenSuse

Instalação:
sudo zypper install zsh git

Arch Linux e Manjaro

Instalação:
sudo pacman -S zsh git

Fedora

Instalação:
sudo dnf install zsh git

Lembrando que estamos instalando também o Git caso você não tenha, pois ele será utilizado no processo.

Usando o ZSH

Usar o ZSH é como usar o Bash que você está acustumado, mas com alguns super-poderes, como o TAB melhorado que iremos ver, temas e plugins, mas na utilização de comandos é exatamente a mesma coisa, o que poderá mudar são algumas mensagens de erro do próprio shell, que poderão ser um pouco diferentes do Bash, mas não é algo que irá atrapalhar o seu uso.

Nós instalamos o ZSH, agora, para definir ele como shell padrão do nosso sistema, use este comando abaixo para definir o ZSH como shell padrão:

chsh -s $(which zsh)

A função deste comando é alterar o Shell padrão apenas para o seu usuário, não afetando outros usuários na máquina, assim, se você trocar de usuário e começar a usar o root da máquina por exemplo, esse usuário ainda estará com o bash, para fazer com que o root também esteja com o ZSH, será necessário executar este mesmo comando logado como root.

Se você quiser entrar no ZSH diretamente, execute:

zsh

O ZSH será iniciado no terminal que você está.

Captura de tela do ZSH padrão

TAB, o seu melhor amigo!

no ZSH, o TAB é o seu melhor amigo, vamos relembrar que no Bash, usavamos o TAB para autocompletar o nome de um diretório, não precisando escrever seu nome completo, mas isso era um trabalho muito manual, pois caso dois diretórios tivessem nomes muito parecidos, como Downloads e Documentos iriamos precisar escrever cd Do e mais um caractere para determinar onde estamos querendo ir, mas no ZSH, esse trabalho é facilitado, vamos ver:

No bash, caso você execute cd Do e aperte TAB dentro da sua home, irá aparecer as duas opções, que são Downloads e Documentos (ou Documents caso seu sistema esteja em inglês), e você precisa apertar mais um caractere para seu TAB funcionar e autocompletar o caminho de um desses diretórios:

Primeiro exemplo do uso do TAB no ZSH

Mas no ZSH, seu TAB se torna uma extensão da sua mente! caso você execute cd Do e aperte TAB, irá aparecer os diretórios Downloads e Documentos, mas caso você aperte TAB novamente, o ZSH automaticamente selecionará o primeiro, e se apertar denovo, ele irá selecionar o outro, isso que é o interessante do TAB do ZSH, entrar em diretórios ou executar arquivos se torna muito rápido, pois você pode rapidamente selecionar arquivos ou diretórios, precisando escrever menos fazendo mais, teste o TAB no zsh que você irá entender o seu funcionamento.

Segundo exemplo do uso do TAB no ZSH

Oh My ZSH

O Oh My ZSH é um gestor de configurações do ZSH, com ele, poderemos instalar Temas e Plugins para o nosso ZSH, aumentando a personalidade, beleza e produtividade.

Para instalar o Oh My ZSH use:

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

Pronto, agora podemos começar a instalar plugins e temas para o nosso ZSH.

zshrc

O ~/.zshrc é o arquivo de configuração do ZSH apenas para seu usuário, ele será utilizado para editarmos as configurações do nosso ZSH, como por exemplo os Aliases, que caso você não saiba, são acrônomos que podemos criar para os nossos comandos, como por exemplo, ao invés de digitarmos git add . podemos digitar gita caso você crie um Aliases com esse nome (Lembrando que os aliases estão disponíveis para vários shells, como ZSH, BASH, FISH,etc). Mas este arquivo será principalmente para adicionarmos temas e plugins ao nosso ZSH, vamos!

Você poderá editar o ~/.zshrc com qualquer editor de texto, como o Gedit, Xed, e até mesmo o Vim se você quiser, pois ele é só um arquivo de configuração, caso você seja iniciante, recomendo usar o editor gráfico do seu sistema, como o Gedit caso você esteja no Ubuntu, e como o Xed caso você esteja no linux Mint, para editar por exemplo, usando o gedit, faça gedit .zshrc e pronto, o editor irá se abrir já com o arquivo.

Temas no ZSH

Agora vamos instalar um tema muito popular, o Spaceship usando o Oh My ZSH.

Primeiro para baixar ele no seu sistema, clone o repositório do Spaceship usando o Git, dessa maneira:

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Agora crie um Link simbólico dele na pasta do seu Oh My ZSH:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Agora entre dentro do arquivo ~/.zshrc que é o arquivo de configuração do seu zsh usando o editor de texto que você escolheu, e edite a variável de ambiente ZSH_THEME, mude o valor corrente dela para spaceship

ZSH_THEME="spaceship"

Agora reinicie o terminal e pronto!, o Spaceship estará instalado!

Captura de tela do tema Spaceship

Também recomendo que você pesquise o tema Powerlevel10k, que é outro tema também muito utilizado e que permite uma altíssima personalização.

Plugins no ZSH

No ZSH podemos instalar plugins que adicionam funções e produtividade no uso com o Oh My ZSH. Vamos instalar 2 plugins para melhorar nosso ZSH.

zsh-syntax-highlighting

Adiciona syntax Highligth no nosso ZSH, facilitando você saber se o comando que está sendo digitado no momento está correto.

Para instalar, use:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Agora para definir ele como um dos plugins do seu ZSH, entre em ~/zshrc, procure uma parte com plugins=() e edite:

plugins=( git, dnf, zsh-syntax-highlighting )

Agora você verá algo parecido com isso:

Captura de tela do zsh-syntax-highlighting

Obs: estou usando o tema Powerlevel10k que eu havia comentado no capítulo anterior

zsh-autosuggestions

Adiciona uma auto-sugestão no ZSH baseada em seu histórico, tornando mais fácil a repetição de comandos já utilizados.

Instale ele na sua máquina:

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

edite seu ~/zshrc para adicionar o plugin na lista:

plugins=( git, dnf, zsh-syntax-highlighting, zsh-autosuggestions )

Pronto, agora você tem um shell bem configurado, e pronto para uso!

Discussion (2)

pic
Editor guide
Collapse
eduardoklosowski profile image
Eduardo Klosowski

Artigo interessante apresentando o zsh. Porém não é necessário reiniciar o computador, basta deslogar e logar novamente para trocar o shell. Existe sim uma diferença na forma como o zsh e o bash interpretam comandos, eu já tive problemas com comandos que tem o caractere #, como pip install git+https://github.com/eduardoklosowski/deduplicated.git#egg=deduplicated[web], que funciona no bash, mas no zsh precisei colocar a URL entre aspas para funcionar, que aparentemente o zsh considera a parte depois do # um comentário, enquanto o bash parte do comando. Mas são pequenas diferenças, ou casos bem específicos. O bash também possui suporte a alias, inclusive com um arquivo dedicado para isso em algumas distros (~/.bash_aliases que é carregado pelo ~/.bashrc), e sugestão de comandos baseado no histórico com Ctrl + r, embora talvez o funcionamento seja um pouco diferente. Acredito que destacar isso no artigo seja interessante, uma vez que quem ler o artigo, caso não conheça o bash, pode acreditar que essas funcionalidades só existem no zsh. E se quiser se aventurar mais ainda, existe o fish que também possui algumas funcionalidades diferentes.

Collapse
edersonferreira profile image
Ederson Ferreira Author

Obrigado pelo comentário Klosowski, fiz algumas mudanças no artigo com isso em mente.