Saltar al contenido
mreysei · Michael Reyes
Tema

MyBash

Mi terminal de Ubuntu en un solo comando: zsh, 136 comandos e identidades de git por carpeta.

Tipo
Otro
Año
Categorías
Portada de MyBash: el nombre en violeta, «Mi terminal de Ubuntu en un solo comando», la orden «bash ~/.mybash/install.sh», los tres idiomas y, a la derecha, una ventana de terminal con el banner: el logo en píxeles y la información del sistema.

Sobre el proyecto

MyBash es la configuración de mi terminal de Ubuntu (normalmente en WSL2): zsh con oh-my-zsh, el tema headline, plugins, 136 comandos propios e identidades de git por carpeta de trabajo, con el logo y la paleta «abyss» de mi portfolio en forma de terminal. Se clona el repositorio, se ejecuta el instalador y la terminal queda lista, en español, inglés o japonés.

Objetivo. Tener la misma terminal en cualquier máquina sin configurarla a mano, y que el día a día con git, Node, Docker y los servidores cueste menos teclas y menos memoria: cada comando dice qué hace, enseña lo que va a tocar y pregunta antes de hacer algo que no se deshace.

Qué hace.

  • Instalar y actualizar son el mismo comando. install.sh recorre 14 pasos (paquetes de apt, plugins, Node con fnm y pnpm, Claude Code, GitHub CLI, ~/.zshrc, ~/.gitconfig…). Cada uno comprueba antes y no hace nada si ya está al día, con una barra de progreso fija en la última línea y todo guardado en un log. Desde una terminal instalada basta con r.
  • Banner al abrir la terminal: el logo con la información del sistema al lado, sin tocar la red.
  • 136 comandos en 19 grupos. alias los lista agrupados y tacha, con el motivo, los que no pueden funcionar en esa máquina. a abre un buscador con la vista previa de cada uno.
  • Git con menos sorpresas: gs resume el estado en una línea («3 cambios locales · 1 commit por subir · nada por bajar»), y gpsa y gpla suben y bajan este repositorio y los anidados, preguntando por cada uno. Además hay menús con vista previa para cambiar de rama, elegir qué ficheros añadir viendo su diff, recorrer el log o limpiar ramas fusionadas.
  • Workspaces: cada carpeta de ~/projects/ firma los commits con su propio autor y email, y la terminal muestra su etiqueta junto a la rama. Los privados nunca se suben al repositorio.
  • Node sin pensar en el gestor de paquetes: ni, nd, nt… funcionan igual con npm, pnpm, bun o yarn, porque detectan el del proyecto.
  • WSL y servidores: aviso de Windows cuando un comando tarda más de 30 segundos, abrir carpetas en el Explorador, portapapeles compartido, fail2ban y vigilancia de servicios con avisos por Telegram.
  • mb doctor revisa la instalación sin cambiar nada y mb time mide lo que tarda en abrirse una terminal.
Instalar, actualizar y arrancar

Accesibilidad y uso. Todo texto pasa por un sistema de traducciones con 817 cadenas por idioma, y mb i18n comprueba que ninguna falte. Las columnas se alinean contando el doble de ancho de los caracteres japoneses. Las confirmaciones se eligen con las flechas, nunca escribiendo «s» o «n».

Rendimiento. Abrir una terminal tarda alrededor de 0,1 s. Al arrancar no se usa la red ni sudo, y no se recorre el PATH entero, que en WSL incluye las carpetas de Windows y costaría unos 60 ms.

Seguridad y privacidad. Los secretos (el token de Telegram, los workspaces privados) viven en dos sitios ignorados por git. Los ejecutables de apoyo leen esos ajustes sin ejecutarlos, y nada sensible se sube al repositorio.

Arquitectura y calidad. zsh y bash: una biblioteca común (colores, logo, traducciones e interfaz) que comparten la terminal y el instalador, 20 ficheros de funciones, 5 ejecutables independientes y 6 plugins como submódulos que el instalador lleva a su última versión estable. Cada comando sigue la misma apariencia y las mismas convenciones.

Estado. En uso a diario desde 2022, renovado a fondo en noviembre de 2026.

Tecnologías

Capturas de pantalla