🚀 Configurador de Máquina - Ubuntu & Rocky Linux 9
Scripts para configuração inicial de máquinas de desenvolvimento, compatíveis com Ubuntu e Rocky Linux 9.
Desenvolvido para facilitar a configuração inicial de máquinas de desenvolvimento 🚀
📋 Índice
- Sobre o Projeto
- O que é Instalado
- Estrutura dos Scripts
- Instalação
- Pré-requisitos
- Backup Automático
- Uso
- Pós-Instalação
- Aliases e Funções
- Verificação da Instalação
- Solução de Problemas
- Documentação Útil
- Contribuindo
- Documentação de Referência
- Contribuições
- Licença
🎯 Sobre o Projeto
Este projeto consiste em um conjunto de scripts bash para automatizar a configuração inicial de máquinas de desenvolvimento. Ele foi projetado para funcionar tanto em sistemas Ubuntu quanto Rocky Linux 9, instalando e configurando todas as ferramentas essenciais para desenvolvimento moderno.
✨ Características Principais
- Multi-plataforma: Compatível com Ubuntu e Rocky Linux 9
- Backup automático: Preserva configurações existentes
- Instalação modular: Execute apenas o que precisa
- Interface interativa: Menu amigável para seleção de opções
- Verificação completa: Confirma se tudo foi instalado corretamente
- Aliases úteis: Comandos abreviados para produtividade
- Documentação detalhada: Guias completos de uso
🎨 Interface
O projeto oferece uma interface colorida e intuitiva, com:
- Cores diferenciadas para diferentes tipos de mensagens
- Emojis para facilitar a identificação visual
- Progresso detalhado durante a instalação
- Confirmações para operações importantes
📋 O que é Instalado
🐧 Sistema e Shell
- ZSH com Oh My Zsh
- Shell avançado com autocompletar inteligente
- Histórico de comandos persistente
- Navegação por diretórios otimizada
- Powerlevel10k theme
- Tema moderno e altamente customizável
- Informações em tempo real (git status, tempo de execução, etc.)
- Ícones e cores para melhor visualização
- Plugins úteis:
- : Sugestões baseadas no histórico
zsh-autosuggestions
- : Destaque de sintaxe em tempo real
zsh-syntax-highlighting
- : Completar avançado para comandos
zsh-completions
- : Abrir repositórios no navegador
git-open
- Aliases úteis para comandos comuns
- Fontes Nerd Fonts (MesloLGS NF) para ícones
🐳 Docker
- Docker Engine (versão mais recente)
- Containerização de aplicações
- Isolamento de ambientes
- Deploy consistente entre ambientes
- Docker Compose plugin
- Orquestração de múltiplos containers
- Definição de serviços em YAML
- Gerenciamento de redes e volumes
- Configuração automática do grupo docker
- Permite usar Docker sem sudo
- Configuração de segurança adequada
- Aliases úteis:
- : Comando docker principal
d
- : Docker Compose
dc
- : Listar containers ativos
dps
- : Listar todos os containers
dpsa
- : Listar imagens
di
- : Executar comando em container
dex
- : Ver logs em tempo real
show
- : Ver logs das últimas 100 linhas
show_last
- : Rebuildar e iniciar containers
rebilda
📦 Node.js & Ferramentas
- NVM (Node Version Manager)
- Gerenciamento de múltiplas versões do Node.js
- Mudança rápida entre versões
- Instalação isolada por projeto
- Node.js LTS (versão estável)
- Runtime JavaScript no servidor
- Suporte a longo prazo
- Estabilidade para produção
- Gerenciadores de pacotes:
- Yarn: Gerenciador rápido e seguro
- pnpm: Gerenciador eficiente em espaço
- Bun: Runtime JavaScript rápido e moderno
- Ferramentas de desenvolvimento:
- TypeScript: Superset tipado do JavaScript
- ts-node: Executar TypeScript diretamente
- nodemon: Reiniciar automaticamente em mudanças
- Aliases úteis:
- : Comando node principal
n
- : npm run
nr
- : npm run dev
nrd
- : npm run build
nrb
- : npm run test
nrt
🔧 Ferramentas de Desenvolvimento
- Ferramentas de build:
- Make: Sistema de build tradicional
- CMake: Sistema de build multiplataforma
- pkg-config: Configuração de bibliotecas
- Git com configurações otimizadas
- Controle de versão distribuído
- Configurações de segurança
- Aliases para comandos comuns
- VS Code (se disponível via snap)
- Editor de código moderno
- Extensões para desenvolvimento
- Integração com ferramentas
- Fontes Nerd Fonts (MesloLGS NF)
- Suporte a ícones no terminal
- Compatibilidade com Powerlevel10k
- Melhor experiência visual
📁 Estrutura dos Scripts
. ├── menu.sh # Script interativo (recomendado) ├── install.sh # Script principal (executa tudo) ├── setup-zsh.sh # Script de instalação principal ├── backup-config.sh # Script de backup ├── verify-install.sh # Script de verificação ├── README.md # Documentação do projeto └── LICENSE # Licença MIT
🚀 Instalação
📋 Pré-requisitos
Antes de começar, certifique-se de que:
- Você não está logado como root
- Tem conexão com internet
- Tem privilégios sudo
- Está em um sistema suportado (Ubuntu ou Rocky Linux)
🔧 Instalação de Pré-requisitos
Se você não tem os pré-requisitos instalados, execute estes comandos:
Ubuntu/Debian:
# Atualizar sistema sudo apt update && sudo apt upgrade -y # Instalar pré-requisitos básicos sudo apt install -y curl git wget unzip build-essential
Rocky Linux/CentOS/RHEL:
# Atualizar sistema sudo dnf update -y # Instalar pré-requisitos básicos sudo dnf install -y curl git wget unzip gcc gcc-c++ make
Verificar instalação:
# Verificar se curl está disponível curl --version # Verificar se git está disponível git --version # Verificar se sudo funciona sudo -l
🔍 Verificação Rápida
Execute este comando para verificar se seu sistema é compatível:
# Verificar sistema operacional cat /etc/os-release | grep -E "(Ubuntu|Rocky|CentOS|RHEL)" # Verificar se não é root whoami # Verificar se tem sudo sudo -l
📦 Opções de Instalação
Opção 1: Script Interativo (Mais Recomendado)
# 1. Clonar ou baixar o repositório git clone <url-do-repositorio> cd setup-zsh # 2. Dar permissão de execução chmod +x menu.sh # 3. Executar o menu interativo ./menu.sh
Vantagens do menu interativo:
- ✅ Interface amigável e colorida
- ✅ Opções modulares (execute apenas o que precisa)
- ✅ Confirmações para operações importantes
- ✅ Execução em sequência automática
- ✅ Documentação integrada
Opções disponíveis:
- 1 - Verificar dependências
- 2 - Fazer backup das configurações
- 3 - Instalar tudo (backup + instalação)
- 4 - Instalar apenas (sem backup)
- 5 - Verificar instalação
- 6 - Mostrar documentação
- 7 - Executar tudo em sequência
- 0 - Sair
Opção 2: Instalação Completa (Recomendado)
# 1. Dar permissão de execução chmod +x install.sh # 2. Executar o script principal ./install.sh
Características:
- ✅ Backup automático antes da instalação
- ✅ Instalação completa em uma execução
- ✅ Verificação de dependências
- ✅ Interface com cores e progresso
Opção 3: Instalação Manual (Avançado)
# 1. Fazer backup primeiro chmod +x backup-config.sh ./backup-config.sh # 2. Executar instalação chmod +x setup-zsh.sh ./setup-zsh.sh # 3. Verificar instalação (opcional) chmod +x verify-install.sh ./verify-install.sh
Características:
- ✅ Controle total sobre cada etapa
- ✅ Execução individual de scripts
- ✅ Útil para debugging ou instalações parciais
- ✅ Permite pausar entre etapas
🚀 Instalação Rápida (One-liner)
Para usuários experientes que querem instalar tudo rapidamente:
# Download e execução em uma linha curl -fsSL https://raw.githubusercontent.com/samuelrms/setup-machine/main/install.sh | bash
⚠️ Aviso: Esta opção não faz backup automático!
⚠️ Requisitos
🔧 Requisitos do Sistema
- Sistema Operacional: Ubuntu 18.04+ ou Rocky Linux 9+
- Arquitetura: x86_64 (64 bits)
- Memória RAM: Mínimo 2GB (recomendado 4GB+)
- Espaço em disco: Mínimo 5GB livre
🔐 Requisitos de Permissões
- Não execute como root (o script verifica isso automaticamente)
- Privilégios sudo para instalar pacotes do sistema
- Permissões de escrita no diretório home do usuário
🌐 Requisitos de Rede
- Conexão com internet estável para baixar pacotes
- Acesso a repositórios oficiais (Ubuntu/Debian, EPEL)
- Porta 443 (HTTPS) para downloads seguros
📦 Dependências Mínimas
O script verifica e instala automaticamente:
- - Para downloads
curl
- - Para clonar repositórios
git
- - Para instalação de pacotes
sudo
- - Alternativa para downloads
wget
- - Para extrair arquivos
unzip
🔄 Backup Automático
📁 O que é Backupado
O script faz backup automático das seguintes configurações:
Arquivos de configuração:
- - Configurações do ZSH
~/.zshrc
- - Configurações do Bash
~/.bashrc
- - Perfil do Bash
~/.bash_profile
- - Perfil do sistema
~/.profile
- - Configurações do Git
~/.gitconfig
- - Configurações do NPM
~/.npmrc
Diretórios de configuração:
- - Oh My Zsh e plugins
~/.oh-my-zsh/
- - Node Version Manager
~/.nvm/
- - Configurações do Docker
~/.docker/
- - Chaves SSH
~/.ssh/
📍 Localização do Backup
Formato:
~/.config-backup-YYYYMMDD_HHMMSS/
Exemplo:
~/.config-backup-20250115_143022/
🔄 Restauração
Para restaurar configurações:
# Restaurar arquivo específico cp ~/.config-backup-YYYYMMDD_HHMMSS/.zshrc ~/ # Restaurar todos os arquivos cp ~/.config-backup-YYYYMMDD_HHMMSS/* ~/ # Restaurar diretórios cp -r ~/.config-backup-YYYYMMDD_HHMMSS/.oh-my-zsh ~/
🎯 Uso
🚀 Primeiro Uso
Após a instalação, execute estes passos:
- Logout e login para aplicar mudanças do shell
- Configure a fonte 'MesloLGS NF' no terminal
- Personalize o tema:
p10k configure
- Use Docker sem sudo:
newgrp docker
🎨 Configuração do Terminal
Para uma experiência completa, configure seu terminal:
- Instale a fonte MesloLGS NF
- Configure a fonte no terminal
- Ajuste o tema Powerlevel10k:
p10k configure
🔧 Comandos Úteis
# Recarregar configurações do ZSH source ~/.zshrc # Verificar versão do Node.js node --version # Verificar versão do Docker docker --version # Listar aliases disponíveis alias | grep -E "(git|docker|node)"
🎨 Pós-Instalação
Após a instalação, execute:
- Logout e login para aplicar mudanças
- Configure a fonte 'MesloLGS NF' no terminal
- Personalize o tema:
p10k configure
- Use Docker sem sudo:
newgrp docker
🎯 Aliases e Funções
🐙 Git Aliases
gs # git status ga # git add gc # git commit gp # git push gl # git log --oneline gco # git checkout gcb # git checkout -b
Exemplos de uso:
gs # Ver status do repositório ga . # Adicionar todas as mudanças gc -m "feat: nova funcionalidade" gp origin main gl # Ver histórico compacto gco feature/nova-funcionalidade gcb hotfix/correcao-urgente
🐳 Docker Aliases
d # docker dc # docker-compose dps # docker ps dpsa # docker ps -a di # docker images dex # docker exec -it show # docker logs -f show_last # docker logs -f --tail 100 rebilda # docker compose up -d --build
Exemplos de uso:
dps # Listar containers ativos dpsa # Listar todos os containers di # Listar imagens dex meu-container bash # Entrar no container show meu-container # Ver logs em tempo real show_last meu-container # Ver últimas 100 linhas rebilda # Rebuildar e iniciar
📦 Node.js Aliases
n # node nr # npm run nrd # npm run dev nrb # npm run build nrt # npm run test
Exemplos de uso:
n app.js # Executar arquivo nr start # npm run start nrd # npm run dev nrb # npm run build nrt # npm run test
🗂️ Navegação Aliases
ll # ls -la la # ls -A l # ls -CF .. # cd .. ... # cd ../.. .... # cd ../../..
🔧 Funções Úteis
mkcd nome # Criar diretório e entrar nele findf nome # Encontrar arquivos findd nome # Encontrar diretórios
Exemplos de uso:
mkcd projeto-novo # Criar e entrar no diretório findf config # Encontrar arquivos com "config" findd src # Encontrar diretórios com "src"
🎨 Aliases de Cores
grep='grep --color=auto' fgrep='fgrep --color=auto' egrep='egrep --color=auto'
📋 Comandos Úteis Adicionais
# Verificar espaço em disco df -h # Verificar uso de memória free -h # Verificar processos ps aux | grep nome # Verificar portas em uso netstat -tulpn | grep :porta
🔍 Verificação da Instalação
Após a instalação, você pode verificar se tudo foi instalado corretamente:
chmod +x verify-install.sh ./verify-install.sh
Este script verifica:
- Ferramentas do sistema (ZSH, Git, Make, CMake)
- Docker e Docker Compose
- Node.js, NVM, NPM, Yarn, PNPM, Bun, TypeScript
- Oh My Zsh e plugins
- Fontes Nerd Fonts
🐛 Solução de Problemas
🔧 Problemas Comuns
Docker sem sudo não funciona
Sintoma: Erro "permission denied" ao executar comandos docker
Solução:
# Adicionar usuário ao grupo docker sudo usermod -aG docker $USER # Recarregar grupos (ou fazer logout/login) newgrp docker # Verificar se funcionou docker ps
Fonte não aparece no terminal
Sintoma: Ícones aparecem como quadrados ou caracteres estranhos
Solução:
# Atualizar cache de fontes fc-cache -f -v # Reiniciar terminal # Ou configurar fonte manualmente no terminal
NVM não funciona
Sintoma: Comando
nvm
Solução:
# Recarregar configurações source ~/.zshrc # Ou instalar manualmente curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Verificar instalação nvm --version
Tema Powerlevel10k não carrega
Sintoma: Tema não aparece ou aparece com erro
Solução:
# Reinstalar tema cd ~/.oh-my-zsh/custom/themes/ rm -rf powerlevel10k git clone --depth=1 https://github.com/romkatv/powerlevel10k.git # Recarregar configurações source ~/.zshrc
🚨 Problemas Avançados
Script não executa
Sintoma: "Permission denied" ao executar scripts
Solução:
# Dar permissão de execução chmod +x *.sh # Ou executar com bash bash script.sh
Falha na instalação de pacotes
Sintoma: Erro ao instalar Docker, Node.js, etc.
Solução:
# Atualizar repositórios sudo apt update # Ubuntu sudo dnf update # Rocky Linux # Verificar conexão com internet ping google.com # Verificar espaço em disco df -h
ZSH não é o shell padrão
Sintoma: Terminal ainda abre com bash
Solução:
# Verificar shell atual echo $SHELL # Definir ZSH como padrão chsh -s $(which zsh) # Fazer logout e login novamente
🔍 Debugging
Verificar logs de instalação
# Verificar se scripts foram executados ls -la ~/.config-backup-* # Verificar instalações which docker which node which zsh # Verificar configurações cat ~/.zshrc | grep -E "(theme|plugins)"
Verificar dependências
# Verificar se curl está disponível which curl # Verificar se git está disponível which git # Verificar se sudo funciona sudo -l
📞 Suporte
Se você ainda tiver problemas:
- Verifique os logs de instalação
- Execute o script de verificação:
./verify-install.sh
- Consulte a documentação das ferramentas
- Abra uma issue no repositório
📚 Documentação Útil
🤝 Contribuindo
Para melhorar os scripts:
- Teste em diferentes versões do Ubuntu e Rocky Linux
- Adicione novas ferramentas úteis
- Mantenha a compatibilidade com ambos os sistemas
- Documente mudanças importantes
📚 Documentação de Referência
🔗 Links Importantes
- Oh My Zsh - Framework para ZSH
- Powerlevel10k - Tema para ZSH
- NVM - Node Version Manager
- Docker - Containerização
- Node.js - Runtime JavaScript
- TypeScript - Superset do JavaScript
📖 Guias de Configuração
🤝 Contribuições
📋 Como Contribuir
- Fork o repositório
- Crie uma branch para sua feature ()
git checkout -b feature/nova-funcionalidade
- Commit suas mudanças ()
git commit -am 'Adiciona nova funcionalidade'
- Push para a branch ()
git push origin feature/nova-funcionalidade
- Abra um Pull Request
🧪 Testando
Para testar os scripts:
- Use uma VM ou container limpo
- Teste em diferentes sistemas (Ubuntu, Rocky Linux)
- Verifique compatibilidade com diferentes versões
- Execute o script de verificação após instalação
📝 Diretrizes
- Mantenha compatibilidade com Ubuntu e Rocky Linux
- Sempre faça backup antes de aplicar mudanças
- Documente novas funcionalidades
- Teste em ambientes limpos
- Siga as boas práticas de shell scripting
📄 Licença
Este projeto está licenciado sob a MIT License.
Desenvolvido para facilitar a configuração inicial de máquinas de desenvolvimento 🚀
Autor: Samuel Ramos
Ano: 2025
Licença: MIT