Power Update 2.0: Script post-instalación para Linux

Introducción

Es muy común la instalación de diferentes distros de Linux durante el desarrollo de los laboratorios en clase, lo primero que hacemos es personalizar, instalar herramientas, configurar entornos y recuperar productividad; sin embargo, hacerlo manualmente puede llegar a ser tedioso.

Así nació Power Update, un Script modular de post-instalación para automatizar y estandarizar el entorno Linux en minutos con la mayoría de herramientas requeridas en la formación profesional.

Objetivo

Crear un conjunto de scripts Bash:

  • ✅ Portables, sin dependencias externas
  • ✅ Compatibles con Debian/Ubuntu, Fedora, y Arch
  • ✅ Divididos por función (modularidad)
  • ✅ Con logs por cada tarea
  • ✅ Visualmente agradables y auditables

Arquitectura general

Power_Update/
├── power_update.sh # Menú principal interactivo
├── Global_functions.sh # Funciones reutilizables (instalación, detección de distro)
├── Install-Logs/ # Carpeta donde se almacenan logs
├── base_tools.sh # Herramientas del sistema
├── dev_tools.sh # Herramientas de desarrollo
├── net_support.sh # Diagnóstico de red
├── security_tools.sh # Ciberseguridad ofensiva
├── multimedia.sh # Reproductores y codecs
├── system_update.sh # Actualizaciones + tema gráfico
├── wine_unrar.sh # Soporte para apps de Windows
├── fastfetch.sh # Personalización estética del terminal

El menú principal – power_update.sh

Este script orquesta todo el sistema. Al ejecutarlo:

  • Detecta si hay entorno gráfico (DISPLAY)
  • Muestra un menú interactivo con los módulos disponibles
  • Permite ejecutar uno, varios o todos los módulos
  • Al final, resume lo instalado

Corazón reutilizable – Global_funtions.sh

Funciones clave incluidas:

install_package <nombre>

Detecta si estás usando apt, dnf o pacman y ejecuta el comando correcto con flags silenciosos y log.

install_package htop "$LOG"

Mensajes estilizados:

  • [INFO]: mensaje neutro
  • [NOTE]: aviso útil
  • [OK]: éxito
  • [ERROR]: fallo

Logs de salida en Install-Logs/ con timestamp

Utilidades del sistema – base_tools.sh

Instala herramientas como:

  • htop, btop: monitores interactivos de procesos
  • smartmontools: salud del disco
  • testdisk: recuperación de particiones
  • inxi: información detallada del sistema
  • timeshift: snapshots del sistema (como Time Machine)
  • rustdesk: escritorio remoto open source (por Flatpak o AUR)

Utiliza:

  • install_package por defecto
  • Instalación condicional para rustdesk según la distribución
  • Flatpak como fallback en Fedora

Entorno de desarrollo – dev_tools.sh

Instala:

  • nodejs, npm: desarrollo web JS
  • code (VS Code): editor de Microsoft (repo oficial)
  • dbeaver: GUI para bases de datos (soporta MySQL, PostgreSQL, SQLite, Oracle, etc.)

Detección automática del sistema:

  • En Fedora: habilita repos de VSCode o usa Flatpak
  • En Arch: usa yay para visual-studio-code-bin y dbeaver

Diagnóstico de red – net_support.sh

Incluye herramientas vitales para análisis:

  • nethogs, iftop: visualización de uso de red en tiempo real
  • netcat: utilitario de red suiza
  • dig, whois: resolución de DNS e información de dominios
  • arp-scan: escaneo ARP local

Útil para sysadmins y debugging de red.

Ciberseguridad ofensiva – secutiry_tools.sh

Instala:

  • nmap, masscan: escaneo de puertos
  • hydra: fuerza bruta
  • aircrack-ng: ataque WiFi (requiere interfaz compatible)
  • gobuster, hping3, cracklib-dicts
  • whatweb: fingerprint de tecnologías web

Y además:

  • sqlmap: si no está disponible por paquete, se instala con pip --user
  • rockyou.txt: se descarga desde GitHub si no está presente

El PATH de ~/.local/bin se añade temporalmente si sqlmap se instaló vía pip.

Codecs y reproductores – multimedia.sh

Instala:

  • gstreamer + plugins (ugly, good, libav)
  • ubuntu-restricted-extras (en Ubuntu)
  • libdvd-pkg, libavcodec-extra
  • Shotcut: editor de video
  • VLC: reproductor universal

Habilita automáticamente RPM Fusion en Fedora.

Actualizaciones + estética – system_update.sh

Hace:

  • sudo apt update && upgrade, dnf upgrade, pacman -Syu
  • Detecta Fedora o Ubuntu y aplica el tema Yaru original de Ubuntu
    • En Fedora: clona el tema desde GitHub
    • En Ubuntu: lo instala desde apt
  • Arch no instala tema por defecto

Compatibilidad con Windows – wine_unrar.sh

Instala:

  • wine: permite ejecutar .exe y .msi
  • winetricks: para DLLs de Windows y paquetes como dotnet
  • unrar: útil para descomprimir instaladores o archivos comprimidos con winrar comunes en Windows

Personalización terminal – fastfetch.sh

Instala fastfetch (reemplazo moderno de neofetch)
También configura una plantilla JSON para mostrar sistema, distro, shell, terminal, etc.

Log de cada módulo

Cada módulo genera un log como:

Install-Logs/
├── install-03-1502_base_tools.log
├── install-03-1503_dev_tools.log
...

Permite revisar qué fue instalado, qué falló, y en qué orden.

Comandos clave por distro

DistroAcción principal
Ubuntusudo apt install
Fedorasudo dnf install + rpmfusion + Flatpak
Archsudo pacman -S o yay -S para AUR

Diferenciadores clave de Power Update

  • Modularidad: puedes ejecutar solo lo que necesitas
  • Soporte completo para múltiples distros
  • Fallbacks inteligentes (pip, flatpak, git)
  • Código limpio, extensible y comentado
  • Automatización profesional sin scripts rotos

Descargo de responsabilidad

⚠️ Algunas herramientas instaladas (como sqlmap, hydra, aircrack-ng) son de uso ofensivo.
Su ejecución fuera de entornos controlados y sin permiso es ilegal y no recomendada.
Power Update está destinado exclusivamente a fines educativos, auditoría legal y laboratorios controlados.

Instalación

git clone https://github.com/walthercurodelacruz/Power_Update.git
cd Power_Update
chmod +x power_update.sh
./power_update.sh