Um script simples, robusto e bem documentado para automatizar a configuração de um ambiente Zsh profissional no Linux.
Perfeito para quem acabou de formatar o sistema e quer rapidamente um terminal bonito, funcional e com produtividade máxima.
Quando instalo ou formato uma máquina, perco tempo configurando manualmente Zsh, Oh-My-Zsh, Powerlevel10k, plugins e meu .zshrc personalizado.
Este projeto nasceu para resolver esse problema de uma vez por todas, com um único comando que:
- Instala Zsh e dependências necessárias.
- Configura Oh-My-Zsh e o tema Powerlevel10k.
- Instala plugins úteis (
zsh-autosuggestions,zsh-syntax-highlighting). - Aplica um
.zshrcbem organizado, com aliases, histórico compartilhado e autocompletar otimizado. - Faz backup automático do
.zshrcantigo antes de sobrescrever. - Altera o shell padrão para Zsh de forma segura.
- Zsh – Shell moderno e poderoso.
- Oh-My-Zsh – Framework para gerenciar configuração do Zsh.
- Powerlevel10k – Tema rápido e altamente customizável.
- Plugins:
zsh-autosuggestions– Sugere comandos baseados no histórico.zsh-syntax-highlighting– Coloriza comandos antes da execução.
- grc – Colorização para comandos como
ping,netstat,traceroute. - .zshrc Personalizado:
- Aliases para Git, Docker e manutenção do sistema.
- Histórico compartilhado entre múltiplas sessões.
- Cache de completions para inicialização rápida.
- Proteção para
rm(rm -ipergunta antes de deletar). - Cores nativas para
ls,grep,diff.
Clone o repositório:
git clone https://github.com/PauloNRocha/zsh-setup.git
cd zsh-setupDê permissão de execução e rode o script:
chmod +x setup_zsh.sh
./setup_zsh.shObs: o script pode pedir sua senha para alterar o shell padrão com
chsh.
Reinicie o terminal ou aplique imediatamente:
source ~/.zshrc- Sistema baseado em Debian/Ubuntu (usa
apt). - Acesso a
sudopara instalar pacotes e mudar o shell. - Conexão com a internet (clona repositórios e baixa instaladores).
Comandos básicos:
# execução padrão (silenciosa, com spinner)
./setup_zsh.sh
# modo verboso (mostra toda a saÃda)
./setup_zsh.sh -v
# ajuda
./setup_zsh.sh -hOpções:
-v, --verbose— mostra a saÃda completa dos comandos (sem spinner).-h, --help— exibe a ajuda e sai.
Após finalizar:
# defina o Zsh como shell padrão (se necessário)
chsh -s "$(command -v zsh)"
# feche e reabra o terminal (recomendado)
# ou, se ainda estiver no Bash, entre no Zsh manualmente:
zsh
# já dentro do Zsh, aplique as mudanças
source ~/.zshrcNota:
- Não rode
source ~/.zshrcdentro do Bash. Abra um shell Zsh (rodandozshou reabrindo o terminal apóschsh).
Para ajustar o tema após a instalação, consulte o guia: docs/powerlevel10k_configure.md.
Atalho rápido para reconfigurar:
p10k configureExecute o desinstalador:
chmod +x uninstall_zsh.sh
./uninstall_zsh.shO script pergunta qual caminho seguir:
- Modo revert – restaura o
~/.zshrcanterior (mantém Oh-My-Zsh, tema e plugins instalados). - Modo full – remove Oh-My-Zsh, Powerlevel10k e faz rollback para o Bash padrão.
Para automatizar, passe --mode e --yes:
./uninstall_zsh.sh --mode revert --yes
./uninstall_zsh.sh --mode full --yes --remove-packagesOpções adicionais:
--remove-packages— (modo full) remove zsh, grc, fonts-powerline.--remove-all-packages— (modo full) também removegit,curl,wget.-v, --verbose— mostra a saÃda completa dos comandos.
O desinstalador sempre cria um backup de segurança (~/.zshrc.uninstall.bak) antes de qualquer mudança.
- No modo
full, se o~/.zshrcrestaurado ainda referenciar o Oh-My-Zsh, ele é substituÃdo por uma versão mÃnima sem dependências externas.
Motivação Pessoal:
Eu sempre gostei de ambientes organizados e produtivos, mas cada vez que formatava minha máquina, tinha que repetir dezenas de passos manualmente.
Decidi transformar esse processo em um script automatizado, não só para economizar tempo, mas para aprender boas práticas de shell script e compartilhar algo útil com outras pessoas.
set -e→ interrompe em erros crÃticos para evitar configuração inconsistente.- Mensagens coloridas → melhor feedback visual.
- Backup automático → segurança ao sobrescrever arquivos.
- Idempotência → pode rodar várias vezes sem duplicar instalações.
- Fingerprint inicial e final → rastreabilidade (data, usuário, host e versão do Zsh).
Este projeto é distribuÃdo sob a licença MIT.
Sinta-se à vontade para usar, modificar e contribuir!