Configurações, aliases e prompts centralizados para todos os seus ambientes de sistema, mantendo a experiência consistente seja no Desktop, Servidor, Contêiner ou WSL.
Você pode escolher o contexto do ambiente passando o parâmetro --context (opções: desktop, server, container, wsl).
Por padrão, se não for informado, o script assumirá o contexto desktop.
1. Clone o repositório:
sudo git clone "https://github.com/GabrielFrigo4/Shell" "/usr/local/share/shell"2. Execute a instalação: Escolha o contexto desejado abaixo e copie o comando do seu shell de preferência:
💻 Desktop (Padrão)
bash "/usr/local/share/shell/install.sh" --context desktop
# ou
zsh "/usr/local/share/shell/install.sh" --context desktop
# ou
sh "/usr/local/share/shell/install.sh" --context desktop🌐 Server
bash "/usr/local/share/shell/install.sh" --context server
# ou
zsh "/usr/local/share/shell/install.sh" --context server
# ou
sh "/usr/local/share/shell/install.sh" --context server📦 Container
bash "/usr/local/share/shell/install.sh" --context container
# ou
zsh "/usr/local/share/shell/install.sh" --context container
# ou
sh "/usr/local/share/shell/install.sh" --context container🧩 WSL
bash "/usr/local/share/shell/install.sh" --context wsl
# ou
zsh "/usr/local/share/shell/install.sh" --context wsl
# ou
sh "/usr/local/share/shell/install.sh" --context wsl💡 Ambiente: No Windows, o projeto funciona utilizando o terminal do MSYS2.
1. Clone o repositório:
git clone "https://github.com/GabrielFrigo4/Shell" "${HOME}/.shell"2. Execute a instalação:
bash "${HOME}/.shell/install.sh" --context desktop
# ou
zsh "${HOME}/.shell/install.sh" --context desktopReinicie o shell ou recarregue o arquivo RC manualmente:
. ~/.bashrc
# ou
. ~/.zshrc
# ou
. ~/.shrc💡 Nota Importante: O script detecta automaticamente o seu OS, distribuição 🐧
Linuxe qual 🐚Shellestá rodando, e injeta as linhas desourceno arquivo RC correto de forma inteligente — tanto para o seu usuário atual como para oroot.
O projeto inclui aliases inteligentes integrados para que você possa manter seu ambiente atualizado sem esforço, diretamente do terminal:
- 🔄
upsh(Update Shell): Sincroniza o seu repositório local (git pull) e recarrega as configurações atuais sem precisar fechar o terminal. - ♻️
resh(Reinstall Shell): Vai além da atualização. Ele baixa as novidades e reexecuta o scriptinstall.shpreservando o seu contexto atual (ex:desktopouserver). Ideal para quando há mudanças estruturais profundas no repositório.
Para manter este repositório 100% público e seguro, o sistema possui uma integração nativa com um repositório de cofre privado (Vault).
Se o diretório ~/.vault for detectado, o shell carregará automaticamente:
- 🔑 Variáveis e Configurações: Credenciais, tokens, chaves de API, endereços de servidores e atalhos de conexão privados (
vault.sh). - 🛡️ Chaves SSH: O alias
vault-keysdetecta o seussh-agentrodando e adiciona automaticamente todas as suas chaves privadas contidas na pasta do cofre de forma segura e silenciosa. - 🔄
upvt(Update Vault): Sincroniza o repositório do seu cofre (git pullem~/.vault) e recarrega o terminal com as novas variáveis e chaves atualizadas.
O projeto conta com módulos avançados de reconhecimento em library/detect.sh que mapeiam perfeitamente o seu ecossistema:
- OS e Shell: Reconhece se você está no 🐧
Linux, 😈FreeBSD, 🍎MacOSou 🪟Windows(via MSYS2), e identifica o 🐚Shellrodando (📜bash, ⚡zsh, ⚙️sh). - Distribuição Linux e Família: Ao rodar no 🐧
Linuxou no 🧩WSL2, o módulo descobre a distribuição exata (detect_distro) e a agrupa pela família do gerenciador de pacotes base (detect_distro_family— ex:debian,arch,fedora). Isso permite que os aliases universais (comoupalleupsys) chamem as ferramentas corretas automaticamente sob os panos (apt,pacman/yay, oudnf), sem sobrepor os comandos ou quebrar scripts. Gerenciadores isolados comoflatpakesnaptambém são detectados e ganham comandos separados (upflat/upsnap) apenas se estiverem presentes no sistema.
- 🎨
target/: Configurações divididas por Sistema Operacional (🐧Linux, 😈FreeBSD, 🍎MacOS, 🪟Windows). Mantém a experiência visual exata 1:1, independentemente de ser um pinguim, demônio ou janela. - 📚
library/: A biblioteca padrão do projeto. Fornece o arsenal de ferramentas, utilitários de sistema e módulos de inteligência (como o rastreamento do SO), garantindo que operações complexas funcionem de forma limpa em qualquer plataforma POSIX. - ⚙️
core/: O núcleo do projeto. Responsável por inicializar as fundações do ambiente, variáveis essenciais e integrações primárias (como o Vault), servindo de base estrutural para todos os outros módulos e contextos. - 🎯
context/: O orquestrador de ambientes. Adapta dinamicamente o comportamento e as ferramentas do shell com base no seu escopo de uso atual, garantindo o fluxo de trabalho ideal para cada cenário:- 💻
desktop/: O ambiente de produtividade primário. Carregado com um conjunto rico de ferramentas, atalhos gráficos e otimizações de interface projetadas para maximizar a eficiência e o conforto no uso diário. - 🌐
server/: A fundação de alta performance. Um perfil extremamente enxuto, seguro e focado em estabilidade, projetado especificamente para servidores remotos e ambientes de produção onde agilidade é crucial. - 📦
container/: O perfil para microambientes. Derivado do contexto servidor, é rigorosamente otimizado para a execução em 📦Contêineres(comoLXC/Incusno 🐧LinuxouJails/Bastilleno 😈FreeBSD), garantindo o mínimo de sobrecarga computacional. - 🧩
wsl/: O ambiente híbrido de ponte. Une o melhor dos dois mundos, integrando o ecossistema 🐧Linuxdo 🧩WSL2de forma fluida com as ferramentas nativas do 🪟Windows(interoperabilidade com Explorer, PowerShell, CMD e área de transferência).
- 💻
- 🖌️
theme/: A camada de identidade visual. Responsável por unificar a estética do terminal, gerenciando o prompt, esquema de cores e integrações com frameworks (como Oh-My-Zsh e Oh-My-Bash) para garantir uma experiência consistente e premium.