Tipos de shells en Linux: Bourne, C, TC, Korn y Bash

En Linux y Unix, un shell es un programa que interpreta los comandos escritos que el usuario envía al sistema operativo. La analogía más cercana en Windows es el Símbolo del sistema (DOS). Sin embargo, a diferencia de Windows, Linux y Unix permiten al usuario elegir qué shell quieren usar.

Bourne Shell (sh)

El shell Bourne original lleva el nombre de su desarrollador en Bell Labs, Steve Bourne. Fue el primer shell usado para el sistema operativo Unix y ha sido superado en funcionalidad por muchos shells más recientes. Sin embargo, todas las versiones de Unix y muchas de Linux permiten a los usuarios cambiar al Bourne Shell original, conocido simplemente como "sh", si eligen renunciar a características como completado de nombres de archivo e historiales de comandos que los shells posteriores añadieron.

C Shell (csh)

El C shell, como su nombre indica, fue diseñado para permitir a los usuarios escribir scripts de shell usando una sintaxis muy similar a la del lenguaje de programación C. Se conoce como "csh".

TC Shell (tcsh)

TC shell es una expansión del C shell. Tiene todas las mismas características, pero añade la capacidad de usar pulsaciones de teclas del procesador de textos Emacs para editar texto en la línea de comandos. Por ejemplo, los usuarios pueden presionar Esc-D para borrar el resto de la palabra resaltada. También se conoce como "tcsh".

Korn Shell (ksh)

Korn Shell también fue escrito por un desarrollador de Bell Labs, David Korn. Intenta fusionar las características del C shell, TC shell y Bourne shell en un solo paquete. También incluye la capacidad para que los desarrolladores creen nuevos comandos de shell según surja la necesidad. Se conoce como "ksh".

Bourne-Again Shell (bash)

El Bourne-Again shell es una versión actualizada del Bourne shell original creada por la Free Software Foundation para su proyecto GNU de código abierto. Por esta razón, es un shell ampliamente usado en la comunidad de código abierto.

Su sintaxis es similar a la del Bourne shell, sin embargo incorpora algunas de las características más avanzadas encontradas en los shells C, TC y Korn.

Entre las características añadidas que le faltaban a Bourne están: la capacidad de completar nombres de archivo presionando la tecla TAB, la capacidad de recordar un historial de comandos recientes y la capacidad de ejecutar múltiples programas en segundo plano a la vez. Se conoce como "bash".