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á.
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:
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.
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!
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:
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!
Muito obrigada por ler ❤️🏳️⚧️ e me segue nas redes, é tudo @lissatransborda 👀
Top comments (4)
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
#
, comopip 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 comCtrl
+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.Obrigado pelo comentário Klosowski, fiz algumas mudanças no artigo com isso em mente.
Meu sistema operacional é um Xubuntu 21.04 (baseado em Ubuntu). Para adicionar os plugins novos (dnf, zsh-syntax-highlighting e zsh-autosuggestions) no arquivo .zshrc, NAO PODE COLOCAR AS VIRGULAS!
Ex.:
plugins=(git dnf zsh-syntax-highlighting zsh-autosuggestions)
Complementando ainda os comentários e o artigo... Nem reiniciar o terminal você precisa, basta dar um
`
source ~/.zshrc
que o arquivo é lido novamente e as configurações são carregadas.