30 de julio de 2025

En el corazón de todo sistema GNU/Linux hay un componente vital que actúa como intermediario entre el usuario y el sistema operativo: la shell. Aunque muchas personas usan entornos gráficos, las shells siguen siendo herramientas fundamentales para administración, automatización y desarrollo.

Este artículo ofrece una explicación clara de qué es una shell, junto a un repaso histórico de las shells más populares y también las menos conocidas, su año de aparición, características, y en qué distribuciones son más comunes hoy en día.

🧠 ¿Qué es una shell?

Una shell es un programa que interpreta comandos. Actúa como interfaz entre el usuario y el núcleo del sistema operativo. Hay dos tipos principales:

  • Shells interactivas: el usuario escribe comandos manualmente (como Bash).
  • Shells de scripting: se usan para escribir scripts que automatizan tareas (como sh, zsh o fish).

🔝 Las shells más populares

1. Bash (Bourne Again SHell)

  • 📅 Año de lanzamiento: 1989
  • 🧑‍💻 Creador: Brian Fox (para el Proyecto GNU)
  • 📍 Distros comunes: Ubuntu, Debian, Arch, Fedora, RHEL
  • 📝 Características:
    • Heredera de la Bourne shell (sh)
    • Gran compatibilidad con scripts tradicionales
    • Amplio soporte de extensiones
    • La más usada en sistemas Linux

2. Zsh (Z Shell)

  • 📅 Año de lanzamiento: 1990
  • 🧑‍💻 Creador: Paul Falstad
  • 📍 Distros comunes: macOS (desde Catalina), Arch, Kali, Manjaro
  • 📝 Características:
    • Autocompletado avanzado
    • Corrección de comandos
    • Soporte para temas y plugins (oh-my-zsh)
    • Mezcla funciones de bash, ksh y tcsh

3. Fish (Friendly Interactive SHell)

  • 📅 Año de lanzamiento: 2005
  • 🧑‍💻 Creador: Axel Liljencrantz
  • 📍 Distros comunes: Arch, Fedora, openSUSE (opcional)
  • 📝 Características:
    • Fácil de usar sin configuración
    • Autocompletado inteligente
    • Coloración de sintaxis
    • No compatible con sintaxis POSIX (no para scripts portables)

🧭 Otras shells populares

4. sh (Bourne Shell)

  • 📅 Año de lanzamiento: 1977
  • 🧑‍💻 Creador: Stephen Bourne (AT&T UNIX)
  • 📍 Distros comunes: base de scripting POSIX, aún usada como /bin/sh
  • 📝 Características:
    • Primer estándar en Unix
    • Sintaxis simple y funcional
    • Base de todas las shells modernas

5. Dash (Debian Almquist Shell)

  • 📅 Año de lanzamiento: 1997 (como parte de Debian)
  • 📍 Distros comunes: Debian, Ubuntu (como /bin/sh)
  • 📝 Características:
    • Muy ligera y rápida
    • Usada para iniciar scripts del sistema
    • No interactiva (ideal para scripts de arranque)

6. Ksh (KornShell)

  • 📅 Año de lanzamiento: 1983
  • 🧑‍💻 Creador: David Korn (Bell Labs)
  • 📍 Distros comunes: AIX, Solaris, algunas distribuciones empresariales
  • 📝 Características:
    • Combina características de sh y csh
    • Compatible con scripts POSIX
    • Aún se usa en entornos UNIX tradicionales

7. Tcsh (TENEX C Shell)

  • 📅 Año de lanzamiento: 1981
  • 📍 Distros comunes: FreeBSD, NetBSD, algunas distros Linux (opcional)
  • 📝 Características:
    • Extiende la C Shell (csh)
    • Sintaxis parecida a C
    • Buena historia de comandos y autocompletado

💡 Shells menos conocidas (pero interesantes)

8. Elvish

  • 📅 Año de lanzamiento: 2016
  • 📍 Distros comunes: Arch (AUR), compilar manualmente
  • 📝 Características:
    • Lenguaje de shell moderno
    • Soporte estructurado de datos como listas y mapas
    • Interfaz elegante y funcional

9. Xonsh

  • 📅 Año de lanzamiento: 2015
  • 📍 Distros comunes: multiplataforma (incluye Windows)
  • 📝 Características:
    • Basada en Python
    • Mezcla comandos de shell y código Python
    • Ideal para programadores

10. Oil Shell (osh)

  • 📅 Año de lanzamiento: 2016 (aún en desarrollo activo)
  • 📍 Distros comunes: instalación manual
  • 📝 Características:
    • Reimplementación moderna de Bash
    • Mejora seguridad, velocidad y depuración
    • Compatible con scripts antiguos y futuros

11. Nushell

  • 📅 Año de lanzamiento: 2019
  • 📍 Distros comunes: Arch, Fedora, compilación directa
  • 📝 Características:
    • Shell orientada a datos
    • Salidas estructuradas en lugar de texto plano
    • Sintaxis moderna, con influencias de Rust y Haskell

🐧 ¿Qué shell usa cada distro por defecto?

DistribuciónShell por defecto
UbuntuDash (sh), Bash (login)
DebianDash (sh), Bash
Arch LinuxBash
ManjaroZsh (desde 2020)
FedoraBash
macOSZsh (desde 2019)
Alpine LinuxAsh
Void LinuxDash
Kali LinuxZsh
FreeBSDTcsh
OpenBSDKsh

🧠 ¿Cuál debería usar un usuario promedio?

Depende del objetivo:

  • Bash: ideal si eres principiante o haces scripting tradicional.
  • Zsh: para usuarios interactivos que quieren personalización.
  • Fish: si buscas facilidad de uso y una experiencia moderna.
  • Dash: para scripting ultra rápido (no interactivo).
  • Xonsh/Nushell: si eres programador y te gusta experimentar.

🎯 Conclusión

Las shells son mucho más que un terminal con texto. Son lenguajes de programación, entornos interactivos y herramientas de poder para usuarios de todos los niveles. Conocer su historia y sus diferencias no solo es interesante: te permite elegir mejor tu entorno de trabajo, aprender más profundamente sobre tu sistema y personalizar tu experiencia Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *