# Historia de Bash y la shell de Unix: del Thompson shell a hoy

- **Publicado el:** 2026-08-26
- **Categoría:** Noticias
- **Página original:** https://linuxgratis.com/articulos/historia-de-bash-shell

Recorrido por la historia de la shell de Unix: del Thompson shell de 1971 al Bourne shell, Bash y las alternativas modernas como zsh y fish.

---

Abres una terminal en Linux, escribes un comando y ahí estás, hablando con una pieza de software que tiene más de cincuenta años a la espalda: la shell. Es el intérprete que traduce tus órdenes al sistema operativo, y su evolución cuenta buena parte de la historia de Unix y del software libre. Aquí vamos a recorrer ese camino, desde el primer intérprete de comandos hasta Bash, la shell que hoy manda en el mundo Linux.

## El Thompson shell: el primer intérprete (1971)

La historia empieza en los laboratorios Bell. En 1971 Ken Thompson escribió la primera shell de Unix, que hoy conocemos como **Thompson shell** (`sh`). Se distribuyó con las versiones 1 a 6 de Unix, entre 1971 y 1975. Era un intérprete de comandos sencillo, pensado para ejecutar programas de forma interactiva más que para programar.

Aun siendo tan básico, trajo ideas que seguimos usando a diario: la redirección de entrada y salida con `<` y `>`, y sobre todo las **tuberías** (pipes), que permiten encadenar la salida de un programa con la entrada de otro. Aquella filosofía de "herramientas pequeñas que hacen una sola cosa bien y se combinan entre sí" sigue siendo el alma de los sistemas tipo Unix, incluido el [kernel Linux](/linux-kernel).

## El Bourne shell: el estándar de UNIX (1979)

<figure>
  <img src="/articles/historia-de-bash-shell/unix-v6-shell.webp" alt="Sesión de la shell de Unix Version 6 emulada en un PDP-11 con SIMH" loading="lazy" decoding="async">
  <figcaption>La shell de las primeras versiones de Unix, recreada en un emulador del miniordenador PDP-11. · Imagen: Huihermit / <a href="http://creativecommons.org/publicdomain/zero/1.0/deed.en" target="_blank" rel="noopener nofollow">CC0</a> · <a href="https://commons.wikimedia.org/wiki/File%3AVersion%206%20Unix%20SIMH%20PDP11%20Emulation%20KEN.png" target="_blank" rel="noopener nofollow">Wikimedia Commons</a></figcaption>
</figure>


El gran salto llegó en 1979, cuando Stephen Bourne, también en Bell Labs, presentó el **Bourne shell** junto a UNIX Version 7. Ese intérprete heredó el nombre `sh` y definió casi todo lo que hoy damos por básico en cualquier shell: variables, estructuras de control completas (`if`, `for`, `while`), sustitución de comandos y los célebres *here documents*.

Con el Bourne shell la shell pasó a ser un verdadero lenguaje de programación. Desde entonces, escribir scripts dejó de ser un truco para administradores avanzados y se volvió la forma habitual de automatizar tareas. Su sintaxis caló tanto que aún define el estándar POSIX que respetan las shells modernas, y por eso muchos scripts antiguos siguen funcionando en distribuciones tan veteranas como [Slackware](/slackware).

## C shell y KornShell: la competencia

El Bourne shell no estuvo solo mucho tiempo. También hacia 1979, Bill Joy, por entonces estudiante en Berkeley, creó el **C shell** (`csh`), con una sintaxis que se inspiraba en el lenguaje C. Se distribuyó a lo grande con BSD Unix y trajo comodidades como el historial de comandos y los alias. Su legado sigue vivo en sistemas como [FreeBSD](/freebsd), donde variantes de csh han tenido durante años un papel destacado.

En 1983 David Korn presentó el **KornShell** (`ksh`), un intento de mejorar el Bourne shell sin romper la compatibilidad. Añadió control de trabajos, arrays asociativos y edición de la línea de comandos al estilo vi o Emacs. Durante años, ksh fue la shell comercial de referencia en muchos Unix corporativos.

## Bash: la shell renacida (1989)

<figure>
  <img src="/articles/historia-de-bash-shell/bash-gnome-terminal.webp" alt="Captura de la línea de comandos de Bash ejecutándose en GNOME Terminal sobre Linux" loading="lazy" decoding="async">
  <figcaption>Bash en acción dentro de GNOME Terminal, la shell por defecto de la mayoría de distribuciones Linux. · Imagen: The GNOME Project / <a href="http://www.gnu.org/licenses/gpl.html" target="_blank" rel="noopener nofollow">GPL</a> · <a href="https://commons.wikimedia.org/wiki/File%3ALinux%20command-line.%20Bash.%20GNOME%20Terminal.%20screenshot.png" target="_blank" rel="noopener nofollow">Wikimedia Commons</a></figcaption>
</figure>


A finales de los ochenta, el proyecto GNU de Richard Stallman necesitaba una shell completamente libre que reemplazara al Bourne shell sin restricciones de licencia. La tarea recayó en **Brian Fox**, que empezó a programarla en 1988 y publicó la primera beta en **1989**.

El nombre lo dice todo: **Bash**, *Bourne Again Shell*, es a la vez un juego de palabras y una declaración de intenciones. El Bourne shell "renacido" para un mundo que quería libertad y funcionalidad. Bash se quedó con lo mejor de sus predecesores: mantenía la compatibilidad con la sintaxis del Bourne shell y sumaba el historial, la edición de línea y otras comodidades de csh y ksh. En 1989 también se sumó al proyecto Chet Ramey, que acabó siendo su mantenedor principal y lo sigue siendo décadas después.

## Bash como shell por defecto de Linux

Cuando Linux empezó a despegar a principios de los noventa, Bash ya era una shell madura y libre, encajaba al dedillo con la filosofía GNU/Linux y se convirtió en la shell por defecto de la inmensa mayoría de distribuciones. Hoy la tienes lista para usar en [Ubuntu](/ubuntu), [Debian](/debian) y prácticamente cualquier sistema que instales.

Su poder está en el scripting. Con tuberías, redirecciones, variables y funciones, Bash te deja automatizar desde una copia de seguridad hasta el despliegue completo de un servidor. Esa versatilidad explica por qué sigue siendo la herramienta diaria de administradores de sistemas y desarrolladores en todo el planeta.

## Alternativas modernas: zsh y fish

Bash no es el final de la historia. En los últimos años han ganado terreno alternativas que mejoran la experiencia interactiva. **Zsh** (Z shell) ofrece un autocompletado más inteligente, corrección de errores y un sistema de temas muy popular gracias a frameworks como Oh My Zsh. **Fish** (*friendly interactive shell*) va por la sencillez y la usabilidad desde el primer arranque, con sugerencias automáticas basadas en el historial.

El cambio más sonado llegó en 2019: por motivos de licencia (Bash pasó a GPLv3), Apple sustituyó Bash por **zsh** como shell por defecto en macOS Catalina, y así sigue. Aun así, Bash mantiene su corona en el mundo Linux: cinco décadas después de aquel primer Thompson shell, la shell sigue siendo el corazón de la línea de comandos y Bash, su representante más universal.
