O que é o Zsh? Explicando porque os programadores o adoram e as suas diferenças com o Bash
Na série até agora, aprendemos sobre o "rei dos shells", o Bash, e o trunfo do Windows, o PowerShell. Espero que tenha sentido o quão poderoso é o mundo da linha de comandos e o seu potencial para melhorar drasticamente a eficiência do seu trabalho. Agora, para culminar, vamos apresentar o shell supremo "Zsh" (Z Shell), que muitos programadores elogiam, dizendo que "depois de o usar, não se consegue voltar atrás".
Especialmente no macOS, o Zsh foi adotado como o shell padrão há vários anos, tornando-se uma presença inevitável também para os criadores web. Vamos responder a perguntas como "Qual é a diferença do Bash?" e "Porque é tão popular?" de uma forma fácil de entender, com exemplos que lhe permitem experimentar as suas funcionalidades e manuseamento específicos.
Se o Bash é um sedan nacional fiável, então o Zsh é como um carro desportivo de luxo repleto de funcionalidades úteis e personalização infinita. Quando terminar de ler este artigo, com certeza que também se terá apercebido do encanto do Zsh e estará ansioso por abrir o seu terminal!
O que é o Zsh (Z Shell)?
O Zsh, tal como o Bash, é um tipo de shell Unix. Foi desenvolvido com o objetivo de incorporar as boas partes do Bash, adicionando e expandindo-as com funcionalidades mais poderosas. Por essa razão, as operações básicas de comandos (como ls, cd, rm, etc.) e o uso de pipelines (|) são quase idênticos aos do Bash. Pode considerá-lo como uma espécie de superconjunto do Bash, onde o seu conhecimento de Bash é diretamente aplicável.
Então, qual é a razão da imensa popularidade do Zsh entre os programadores? O segredo reside principalmente nas seguintes três características:
- Funcionalidades de preenchimento poderosas: Reduz drasticamente os erros de digitação de comandos e melhora a velocidade.
- Funções de conveniência inteligentes: Repleto de funcionalidades que resolvem pequenos incómodos, como atalhos para a navegação de diretórios.
- Rica personalização: Usando frameworks como o "Oh My Zsh", pode estender infinitamente a sua aparência e funcionalidade ao seu gosto.
Em vez de explicar com palavras, a melhor maneira é experimentar a diferença por si mesmo. Na próxima secção, vamos ver algumas das incríveis funcionalidades do Zsh.
Sinta o encanto do Zsh! Funcionalidades úteis que mostram a diferença do Bash
Aqui, vamos apresentar algumas das funcionalidades mais convenientes e fáceis de experimentar do Zsh. Por favor, experimente-as no seu terminal (num ambiente macOS ou Linux com o Zsh instalado).
1. A funcionalidade de preenchimento "demasiado inteligente"
Digitar parte de um comando ou nome de ficheiro e premir a tecla Tab para completar o resto é uma funcionalidade que o Bash também tem. No entanto, a funcionalidade de preenchimento do Zsh vai muito além disso.
Por exemplo, e se se esquecer das opções para o comando git? Tente digitar git checkout - e depois prima a tecla Tab.
$ git checkout -[Pressionar a tecla Tab]
Aparecerá uma lista de opções disponíveis com descrições, e pode selecionar uma com as teclas de seta. Já não precisa de consultar o manual.
A navegação de diretórios também se torna mais inteligente. Por exemplo, quando quer mover-se para um diretório muito fundo na hierarquia, pode simplesmente digitar a primeira letra de cada nível para o completar.
$ cd /u/l/b[Pressionar a tecla Tab]
# Será automaticamente completado da seguinte forma:
$ cd /usr/local/bin/
2. Navegação de diretórios sem o comando `cd`
No Zsh, se ativar uma opção (setopt AUTO_CD), pode mover-se para um diretório apenas digitando o seu nome, como se tivesse digitado o comando cd.
$ ../../
# Move-se dois níveis de diretório para cima
3. Pesquisa de ficheiros avançada (Globbing)
Globbing refere-se à expansão de nomes de ficheiros usando caracteres universais (como *). No Zsh, isto é extremamente poderoso.
Por exemplo, se quiser encontrar todos os ficheiros com a extensão .html em todos os subdiretórios sob o diretório atual, pode escrevê-lo assim:
$ ls **/*.html
O ** significa uma pesquisa recursiva. Fazer isto no Bash requer configurações adicionais e é um pouco mais complicado.
"Oh My Zsh" - O framework que torna o Zsh invencível
O que liberta todo o potencial do Zsh são os "frameworks" como o Oh My Zsh. Este é um sistema que facilita a gestão de configurações úteis, plugins e temas do Zsh.
Ao instalar o particularmente famoso Oh My Zsh, pode desfrutar imediatamente de benefícios como estes:
- Aliases convenientes: Por exemplo, operações comuns do Git como
git statuspodem ser executadas comgst, egit pushcomgp. - Integração melhorada com o Git: O nome do branch Git atual e o estado das modificações são sempre exibidos no prompt (a linha de entrada de comandos), ajudando a evitar erros de trabalho.
- Uma riqueza de temas: Pode alterar a aparência do seu prompt para qualquer um de centenas de designs num instante.
Tentar fazer todas estas configurações sozinho seria uma tarefa enorme, mas com o Oh My Zsh, pode tornar suas as configurações úteis criadas por programadores de todo o mundo em apenas alguns minutos.
Compatibilidade com o Bash e pontos a ter em atenção ao escrever scripts
Como vimos, para uso interativo, o Zsh pode ser usado como quase um superconjunto completo do Bash. No entanto, ao escrever scripts de shell, há uma diferença importante a ter em conta.
Essa é o número inicial dos índices dos arrays.
No Bash (os índices começam em 0):
#!/bin/bash
my_array=("apple" "banana" "cherry")
echo ${my_array[0]} # -> apple
No Zsh (os índices começam em 1):
#!/bin/zsh
my_array=("apple" "banana" "cherry")
echo $my_array[1] # -> apple
Esta diferença pode causar erros inesperados, por exemplo, ao executar um script escrito para Bash no Zsh. É importante escrever corretamente o shebang (ex: #!/bin/bash) na primeira linha do script para deixar claro com qual shell se pretende que seja executado.
Conclusão
Desta vez, explicámos o encanto do shell "Zsh", que se tornou o padrão no macOS e é adorado por muitos programadores.
- Pode aproveitar o seu conhecimento de Bash enquanto usa funcionalidades ainda mais convenientes.
- O preenchimento poderoso reduz a digitação e previne erros.
- Com frameworks como o Oh My Zsh, pode personalizar livremente tanto a aparência como a funcionalidade.
O Zsh é uma ferramenta muito poderosa que pode transformar o trabalho diário na linha de comandos de uma "tarefa entediante" para uma "experiência confortável e criativa". Como criador web, agora que ferramentas como operações de servidor e Git são inevitáveis, dominar o Zsh será uma enorme vantagem.
Para aqueles que agora estão a pensar: "Quero mesmo instalar o Zsh no meu próprio ambiente!", o próximo artigo explicará os passos específicos para instalar o Zsh e o Oh My Zsh no macOS e Linux e realizar a configuração inicial. Fique atento!
Como instalar o Zsh (macOS / Linux) e um guia de configuração inicial