Las 5 mejores shell para Linux

Hay dos tipos de usuarios de Linux: los cautelosos y los aventureros.

Por un lado, está el usuario que casi reflexivamente prueba una opción nueva que llega a la escena. Han probado varios administradores de ventanas, docenas de distribuciones y cada nuevo widget de escritorio que pueden encontrar.

Por otro lado, está el usuario que encuentra algo que le gusta y se queda con él. Tienden a gustarle los valores predeterminados de su distribución. Si les apasiona un editor de texto, es el que dominen primero.

Como usuario de Linux, tanto en servidores como en computadoras de escritorio, desde hace quince años, definitivamente estoy más en la segunda categoría que en la primera.

Tengo la tendencia a usar lo que se me presenta, y me gusta el hecho de que esto significa que la mayoría de las veces puedo encontrar documentación exhaustiva y ejemplos de la mayoría de los casos de uso que pueda imaginar.

Si usé algo no estándar, el cambio fue investigado cuidadosamente y a menudo predicado por un tono fuerte de alguien en quien confío.

Pero eso no significa que a veces no me gusta intentar explorar un poco más allas. Tan recientemente, después de años de usar la shell bash sin siquiera pensarlo, decidí probar cuatro shells alternativas: ksh, tcsh, zsh y fish.

Las cuatro fueron instalaciones fáciles desde mis repositorios predeterminados en Fedora, y es probable que también estén empaquetadas para tu distribución favorita.

Aquí te presento un resumen de cada opción de shell y por qué podrías elegir el que sea tu próximo intérprete de línea de comandos de Linux.

Mejores shell para Linux

1. Bash

Primero, echemos un vistazo a lo familiar. GNU Bash, Bourne Again Shell, ha sido el predeterminado en casi todas las distribuciones de Linux que he usado a lo largo de los años.

Originalmente lanzado en 1989, bash ha crecido hasta convertirse fácilmente en la shell más utilizada en todo el mundo Linux, y también se encuentra comúnmente en otros sistemas operativos tipo Unix.

Bash es una shell perfectamente respetable y, a medida que buscas documentación sobre cómo hacer varias cosas en Internet, casi invariablemente encontrarás instrucciones que suponen que estás usando una shell bash.

Pero bash tiene algunas deficiencias, como puede atestiguar cualquiera que haya escrito un script de bash que tenga más de unas pocas líneas. No es que no puedas hacer algo, es que no siempre es particularmente intuitivo (o al menos elegante) leer y escribir.

Dicho esto, bash probablemente esté aquí para quedarse al menos en el futuro cercano, con su enorme base de instalación y legiones de administradores de sistemas tanto casuales como profesionales que ya están en sintonía con su uso y peculiaridades.

El proyecto bash está disponible bajo una licencia GPLv3.

2. ksh

Korn Shell, también conocido por su invocación de comando, ksh, es una shell alternativa que surgió de los Laboratorios Bell en la década de 1980, escrito por David Korn.

Aunque originalmente era un software propietario, las versiones posteriores se lanzaron bajo la Licencia pública de Eclipse.

Los defensores de ksh enumeran una serie de formas en que consideran que es superior, incluida una mejor sintaxis de bucle, códigos de salida más limpios de las tuberías, una forma más fácil de repetir comandos y matrices asociativas.

También es capaz de emular muchos de los comportamientos de vi o emacs, por lo que, si te gusta mucho un editor de texto, puede valer la pena intentarlo.

En general, me pareció muy similar a bash para la entrada básica, aunque para la creación de scripts avanzados seguramente sería una experiencia diferente.

3. tcsh

tcsh es un derivado de csh, the Berkeley Unix C Shell; esto le permite lucir un linaje muy largo desde los primeros días de Unix y la informática en sí.

El gran punto a favor de tcsh es su lenguaje de programación, que debería ser muy familiar para cualquiera que haya programado en C.

La escritura de tcsh es amada por algunos y odiada por otros. Pero también tiene otras características, incluida la adición de argumentos a los alias y varios valores predeterminados que pueden ser atractivos para tus preferencias, incluida la forma en que funciona la finalización automática con tab y la finalización de las tareas con el historial de tab

Puedes encontrar tcsh bajo una licencia BSD.

4. zsh

zsh es otra shell que tiene similitudes con bash y ksh. Tiene su origen a principios de los años 90, zsh presenta una serie de características útiles, que incluyen corrección ortográfica, temática, accesos directos de directorios que se pueden escribir, compartir tu historial de comandos a través de múltiples terminales y varios otros pequeños ajustes del shell Bourne original.

El código y los archivos binarios para zsh se pueden distribuir bajo una licencia tipo MIT, aunque algunas partes están bajo la GPL.

5. fish

Sabía que me iba a gustar Friendly Interactive Shell, fish, cuando visité el sitio web y descubrí que se describía irónico con la frase: “Finalmente, una shell de línea de comandos para los años 90”, fish fue escrito en 2005.

Los autores de fish ofrecen varias razones para hacer el cambio, todos invocando un poco de humor y burlándose un poco de las shells que no están a la altura.

Las características incluyen sugerencias automáticas (“Cuidado, Netscape Navigator 4.0”), soporte de la “asombrosa” paleta de 256 colores de VGA, pero algunas características realmente útiles también incluyen la finalización de comandos basada en las páginas de manual de tu máquina, secuencias de comandos limpias y una configuración basada en la web.

fish tiene licencia principalmente bajo la GPL versión 2 pero con partes de otras licencias.

Conclusión

Entonces, ¿Cuál es la mejor? Bueno, en última instancia, probablemente volveré a bash.

Las diferencias eran lo suficientemente sutiles como para que alguien que usa la línea de comandos interactivamente en lugar de escribir scripts avanzados, realmente no se beneficiaran mucho del cambio, y ya soy bastante cómodo en bash.

Pero me alegro de haber decidido salir de mi shell (¡ja!) Y probar algunas opciones nuevas. Y sé que hay muchas, muchas otras por ahí.