Mis Scripts Bash Esenciales Para Mejorar Tus Flujo

Angela Sofíá Osorio

Angela Sofíá Osorio

Tiempo de lectura 5 minutes

Fecha de publicación

Configurar múltiples identidades Git no debería requerir un máster en administración de sistemas. Sin embargo, todos hemos hecho un commit corporativo con el correo personal por olvidar editar el .git/config local.

Escribí esta colección de scripts para mi flujo de trabajo diario porque me niego a perder tiempo configurando hosts SSH o levantando bases de datos locales a mano. Mi máquina debe trabajar para mí, no al revés.

El núcleo de mi sistema explota funciones nativas de Bash y directivas condicionales de Git. Te explico exactamente qué hacen mis herramientas por debajo y cómo puedes integrarlas en tu propia terminal.

Bootstrap de Entorno Binario y Configuración PATH

Detesto las herramientas que ensucian el sistema operativo con dependencias globales. Mi suite vive encapsulada en ~/.local/bin, un estándar de Unix perfecto para herramientas de usuario.

set-scripts: Inyección de Variables en el PATH

Una vez clonado el repositorio, este orquestador inicializa el entorno. Escanea el directorio, aplica permisos de ejecución (chmod +x) e identifica tu shell actual interrogando a la variable $SHELL.

Si tu PATH no incluye el directorio local, el script inyecta el export correspondiente en tu ~/.bashrc o ~/.zshrc. Recargas la configuración y los comandos quedan disponibles globalmente sin requerir privilegios de superusuario.

Gestión Multi-Cuenta con Git includeIf y SSH Alias

Manejar diferentes perfiles de GitHub en el mismo equipo suele resolverse con scripts pesados o herramientas de terceros. Yo opté por una arquitectura basada en rutas absolutas y condicionales nativos.

setup-git-users: Generación y Aislamiento de Git

Este script inicializa el entorno de autenticación. Genera claves SSH con cifrado ed25519 y construye el archivo ~/.ssh/config definiendo alias de host únicos.

Para evitar conflictos de identidad, inyecta la directiva [includeIf "gitdir:~/ruta/"] en la configuración global de Git. Cuando mi terminal entra en el directorio de trabajo, Git lee automáticamente un subarchivo de configuración y cambia mi identidad sin que yo intervenga.

add-git-user: Inyección de Claves SSH Adicionales

Cuando necesito integrar a un cliente freelance, uso esta herramienta. Valida cadenas de texto mediante expresiones regulares para asegurar un formato de correo válido y verifica conflictos en el directorio SSH.

Genera el par de claves, anexa un nuevo bloque al host SSH y registra la nueva ruta condicional en Git. Todo el proceso es quirúrgico y no corrompe la configuración previa.

Intercepción de URLs SSH y Manejo de Repositorios

Clonar proyectos con múltiples cuentas obliga a reescribir manualmente el dominio de GitHub por el alias SSH. Es un proceso mecánico propenso a errores tipográficos.

clone-repo y clone-project: Reescritura de URL

Estos scripts interceptan la URL estándar de clonación. Mediante la sustitución de parámetros nativa de Bash, reemplazan github.com por el alias SSH que yo seleccione del listado en memoria.

Si el repositorio es masivo, clone-project añade la bandera --single-branch de Git para descargar un historial mínimo y optimizar los tiempos de red.

add-repo y push-repo: Resolución de Historiales

Inicializar un proyecto local y conectarlo a un repositorio vacío en GitHub es trabajo de add-repo. Ejecuta la secuencia completa de commits, cambio de rama a main y asignación del origen remoto.

Si la interfaz web de GitHub inicializó el remoto con un README, push-repo asume el control. Descarga y fusiona los historiales dispares usando --allow-unrelated-histories antes de realizar el push inicial, evitando el bloqueo clásico de Git.

Sincronización Remota y Control de Ramas Locales

Escribir el nombre completo de una rama cada vez que necesito actualizar el código local es una pérdida de tiempo evitable.

new-branch, gpull y gpush: Wrappers de Comando

Son atajos lógicos. new-branch exige un parámetro de entrada validado antes de crear el checkout.

Por su parte, gpull y gpush utilizan git rev-parse --abbrev-ref HEAD para leer la rama activa directamente desde la memoria de Git. Empujan o traen cambios del origen remoto sin que yo tenga que teclear la ruta destino.

Despliegue Local de WordPress y Purgado de Sistema

Los contenedores de Docker son fantásticos, pero a veces levantar una infraestructura completa para editar un plugin de WordPress es matar moscas a cañonazos.

install-wordpress: Automatización de Servidor PHP

Este script despliega un entorno de desarrollo completo. Invoca utilidades de red para descargar el núcleo, interactúa con el demonio de MariaDB para estructurar la base de datos y consume la API oficial para inyectar los salts de seguridad en el archivo wp-config.

Finaliza escaneando los sockets del sistema con ss -tlnp para localizar el primer puerto TCP disponible y levanta el servidor web integrado de PHP. Todo en menos de diez segundos.

clean-system: Purgado de Caché y Monitor de PIDs

Un disco duro al límite rompe cualquier flujo de compilación. Este script ejecuta comandos de limpieza sobre el gestor de paquetes de Debian, purga directorios de miniaturas y vacía la papelera.

Incluye un módulo secundario que lista los procesos activos ordenados por consumo de CPU. Me permite enviar señales de terminación a los demonios que se quedan colgados devorando RAM sin tener que abrir un gestor de tareas gráfico.

Revisa el repositorio, audita el código fuente y adapta los módulos a tu propia infraestructura. Cuanto menos tiempo dediques a la configuración, más tiempo tendrás para escribir código real. Cuéntame en los comentarios qué rutinas de Bash consideras imprescindibles en tu máquina.

¿Quieres aprender bash scripting?

Estoy lanzando un curso para miembros del canal y las primeras clases están publica 🦝❤️