Script profesional de instalación automatizada para configurar un entorno de terminal productivo en sistemas Linux (Debian/Ubuntu) y macOS, incluyendo Neofetch y Starship.
Ideal para:
- 🍎 macOS (con Homebrew)
- 🏠 Templates de Proxmox
- 🐧 Contenedores LXC
- 💻 Máquinas Virtuales
- 🖥️ Servidores Debian/Ubuntu
- 👨💻 Entornos de desarrollo
| Herramienta | Descripción |
|---|---|
| Neofetch | Muestra información del sistema de forma atractiva (OS, Kernel, CPU, RAM, etc.) |
| Starship | Prompt minimalista, rápido y rico en funciones (git status, versiones de lenguajes, etc.) |
- ✅ Soporte Multi-Plataforma: Linux (Debian/Ubuntu) y macOS
- ✅ Instalación con/sin privilegios: Modo sistema (sudo) o modo local (sin sudo)
- ✅ Homebrew en macOS: Instalación y configuración automática de Homebrew
- ✅ Verificación inteligente de permisos: Detecta automáticamente los permisos disponibles
- ✅ Multi-distribución: Debian 11/12, Ubuntu 20.04/22.04/24.04, Proxmox, macOS
- ✅ Logging profesional: Registro detallado de todas las operaciones
- ✅ Dry-run mode: Simula la instalación sin realizar cambios
- ✅ Configuraciones personalizadas: Setup optimizado de Starship y Neofetch
- ✅ Desinstalación limpia: Script de desinstalación completo
- ✅ Verificación post-instalación: Validación automática de la instalación
- ✅ Backups automáticos: Respaldo de configuraciones antes de modificar
- ✅ CI/CD integrado: Tests automatizados en múltiples distribuciones y macOS
- Sistema operativo basado en Debian (Debian, Ubuntu, Proxmox LXC)
- Conexión a Internet
- Para instalación de sistema: acceso
sudooroot - Para instalación local: no requiere privilegios especiales
- macOS 10.15 (Catalina) o superior
- Conexión a Internet
- Homebrew (se instala automáticamente si no está presente)
- No requiere privilegios de administrador para instalación con Homebrew
Opción 1: Instalación directa (Recomendada para macOS)
curl -fsSL https://raw.githubusercontent.com/emilioaray-dev/start-bash-debian/main/scripts/setup_terminal.sh | bashOpción 2: Clonar repositorio
git clone https://github.com/emilioaray-dev/start-bash-debian.gitcd start-bash-debian/scripts./setup_terminal.shNota: En macOS, el script usa Homebrew automáticamente. Si no lo tienes instalado, el script te ofrecerá instalarlo.
Instalación de sistema (requiere sudo)
curl -fsSL https://raw.githubusercontent.com/emilioaray-dev/start-bash-debian/main/scripts/setup_terminal.sh | sudo bashInstalación local (sin sudo)
curl -fsSL https://raw.githubusercontent.com/emilioaray-dev/start-bash-debian/main/scripts/setup_terminal.sh | bash -s -- --local1. Clonar el repositorio
git clone https://github.com/emilioaray-dev/start-bash-debian.gitcd start-bash-debian2. Dar permisos de ejecución
chmod +x scripts/*.sh3. Ejecutar instalación
cd scriptsInstalación de sistema
sudo ./setup_terminal.shO instalación local
./setup_terminal.sh --localDescargar script
wget https://raw.githubusercontent.com/emilioaray-dev/start-bash-debian/main/scripts/setup_terminal.shDar permisos
chmod +x setup_terminal.shEjecutar
sudo ./setup_terminal.sh./setup_terminal.sh [OPCIONES]| Opción | Descripción |
|---|---|
-l, --local |
Instalación solo para usuario actual (sin sudo) |
-s, --system |
Instalación a nivel sistema (requiere sudo) [por defecto] |
-c, --config FILE |
Usar archivo de configuración personalizado |
-d, --dry-run |
Simular instalación sin ejecutar comandos |
-y, --yes |
Aceptar todas las confirmaciones automáticamente |
-v, --verbose |
Mostrar salida detallada (modo debug) |
--skip-neofetch |
No instalar Neofetch |
--skip-starship |
No instalar Starship |
--verify |
Verificar instalación existente |
-h, --help |
Mostrar ayuda |
--version |
Mostrar versión |
Instalación estándar con confirmación
sudo ./setup_terminal.shInstalación automática sin confirmaciones
sudo ./setup_terminal.sh --yesInstalación local (sin sudo)
./setup_terminal.sh --localSimular instalación (no hace cambios)
./setup_terminal.sh --dry-runInstalar solo Starship
sudo ./setup_terminal.sh --skip-neofetchInstalación verbose para debugging
sudo ./setup_terminal.sh --verboseVerificar instalación existente
./setup_terminal.sh --verifycd scriptsDesinstalación estándar (mantiene configuraciones)
sudo ./uninstall.shDesinstalación completa (elimina también configuraciones)
sudo ./uninstall.sh --remove-configDesinstalar solo Starship
sudo ./uninstall.sh --skip-neofetchSimular desinstalación
./uninstall.sh --dry-run| Opción | Descripción |
|---|---|
--remove-config |
Eliminar también archivos de configuración |
--skip-neofetch |
No desinstalar Neofetch |
--skip-starship |
No desinstalar Starship |
-d, --dry-run |
Simular desinstalación sin ejecutar |
-y, --yes |
Aceptar todas las confirmaciones |
-h, --help |
Mostrar ayuda |
cd scriptsVerificación estándar
./verify.shVerificación verbose
./verify.sh --verboseVerificar sin tests de funcionalidad
./verify.sh --skip-testsEl script de verificación comprueba:
- ✅ Instalación de Neofetch y Starship
- ✅ Configuración del shell (.bashrc, .zshrc)
- ✅ Archivos de configuración
- ✅ Permisos de ejecución
- ✅ Tests de funcionalidad
- ✅ Problemas comunes
start-bash-debian/
├── .github/
│ └── workflows/
│ ├── ci.yml # CI/CD - Tests automatizados
│ └── release.yml # Automatización de releases
├── config/
│ ├── starship.toml # Configuración optimizada de Starship
│ └── neofetch.conf # Configuración de Neofetch
├── scripts/
│ ├── setup_terminal.sh # 🔧 Script principal de instalación
│ ├── uninstall.sh # 🗑️ Script de desinstalación
│ ├── verify.sh # ✅ Script de verificación
│ └── lib/
│ ├── colors.sh # Sistema de colores
│ ├── logger.sh # Sistema de logging
│ └── utils.sh # Utilidades comunes
├── tests/
│ └── test_installation.sh # Tests de instalación
├── docs/
│ └── TROUBLESHOOTING.md # Solución de problemas
├── README.md # Esta documentación
├── CONTRIBUTING.md # Guía para contribuidores
├── LICENSE # Licencia MIT
└── CHANGELOG.md # Registro de cambios
El script instala una configuración optimizada de Starship. Puedes editarla con nano:
nano ~/.config/starship.tomlO con tu editor favorito:
vim ~/.config/starship.tomlCaracterísticas de la configuración incluida:
- 🌲 Git status avanzado
- 📦 Versiones de Node, Python, Go, Rust, etc.
- ⏱️ Duración de comandos
- 👤 Usuario y hostname
- 📁 Directorio actual con iconos
- 🔋 Indicador de batería
- ☁️ Contexto de AWS, GCloud, Azure
Configuración disponible en:
nano ~/.config/neofetch/config.confError: Could not open lock file /var/lib/apt/lists/lock
Solución 1: Usar sudo para instalación de sistema
sudo ./setup_terminal.shSolución 2: Usar instalación local
./setup_terminal.sh --localSolución 1: Recargar configuración de Bash
source ~/.bashrcSolución 2: Recargar configuración de Zsh
source ~/.zshrcSolución 3: Cerrar y abrir una nueva terminal
Solución: Agregar ~/.local/bin al PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrcLos logs se guardan automáticamente en:
/tmp/setup_terminal_YYYYMMDD_HHMMSS.log
Ver último log
ls -lt /tmp/setup_terminal_*.log | head -n1 | awk '{print $NF}' | xargs catPara más ayuda, consulta TROUBLESHOOTING.md
El proyecto incluye tests automatizados que se ejecutan en:
- ✅ Debian 11 (Bullseye)
- ✅ Debian 12 (Bookworm)
- ✅ Ubuntu 20.04 LTS
- ✅ Ubuntu 22.04 LTS
- ✅ Ubuntu 24.04 LTS
Test de instalación dry-run
./scripts/setup_terminal.sh --dry-runVerificación
./scripts/verify.shShellCheck (si está instalado)
shellcheck scripts/*.sh scripts/lib/*.sh¡Las contribuciones son bienvenidas! Por favor lee CONTRIBUTING.md para detalles sobre nuestro código de conducta y el proceso para enviar pull requests.
1. Fork el proyecto
2. Crea tu rama de feature
git checkout -b feature/AmazingFeature3. Commit tus cambios
git commit -m 'Add some AmazingFeature'4. Push a la rama
git push origin feature/AmazingFeature5. Abre un Pull Request
| Plataforma | Versión | Estado |
|---|---|---|
| macOS | Catalina (10.15+) | ✅ Soportado |
| macOS | Big Sur (11.x) | ✅ Soportado |
| macOS | Monterey (12.x) | ✅ Soportado |
| macOS | Ventura (13.x) | ✅ Soportado |
| macOS | Sonoma (14.x) | ✅ Soportado |
| macOS | Sequoia (15.x) | ✅ Soportado |
| Debian | 11 (Bullseye) | ✅ Soportado |
| Debian | 12 (Bookworm) | ✅ Soportado |
| Ubuntu | 20.04 LTS | ✅ Soportado |
| Ubuntu | 22.04 LTS | ✅ Soportado |
| Ubuntu | 24.04 LTS | ✅ Soportado |
| Proxmox | LXC Containers | ✅ Soportado |
| Linux Mint | 20/21 | |
| Pop!_OS | 22.04 |
Ver CHANGELOG.md para una lista de cambios por versión.
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.
Emilio Aray
- GitHub: @emilioaray-dev
- Repositorio: start-bash-debian
Si este proyecto te fue útil, considera:
- ⭐ Darle una estrella al repositorio
- 🐛 Reportar bugs en Issues
- 💡 Sugerir mejoras
- 🤝 Contribuir al proyecto
Hecho con ❤️ para la comunidad