La mayoría de distribuciones Linux vienen con bash como shell por defecto, pero puedes instalar otros muchos, como te mostramos aquí. Desde algunos tradicionales del mundo UNIX, hasta otros más modernos, o incluso el famoso PowerShell de Microsoft, que también es compatible con este sistema. De igual manera, te mostraré las ventajas y desventajas de los más conocidos…
Índice de contenidos
Bash: el shell por defecto en Linux
El shell es el intérprete de comandos que permite a los usuarios comunicarse con el sistema operativo. En Linux, el más común es Bash (Bourne Again SHell), creado por el proyecto GNU como sucesor del Bourne Shell (sh) del mundo Unix. Los motivos por los que las distros más comunes vienen con él instalado por defecto es por:
- Compatibilidad heredada: Bash mantiene compatibilidad con scripts escritos para el shell Bourne original, asegurando continuidad histórica.
- Equilibrio entre simplicidad y potencia: ofrece una sintaxis accesible para principiantes y funciones avanzadas para administradores.
- Automatización y scripting: es robusto para escribir scripts de administración, instalación y automatización.
- Amplio soporte comunitario: la mayoría de tutoriales, documentación y ejemplos en Linux están escritos para Bash.
- Distribuciones Linux: desde los años 90, Bash se convirtió en el shell por defecto en la mayoría de distros GNU/Linux, consolidando su hegemonía.
Shells alternativos en Linux
Aunque Bash es el estándar, existen otros shells que ofrecen características distintas. Aquí tienes un panorama comparativo:
| Shell | Características | ventajas | desventajas | usuario objetivo |
|---|---|---|---|---|
| Zsh (Z Shell) | Altamente personalizable, soporta plugins y temas (ej. Oh My Zsh). | Autocompletado avanzado, integración con frameworks, estética atractiva. | Configuración inicial más compleja. | Usuarios avanzados, desarrolladores que buscan productividad y personalización. |
| Fish (Friendly Interactive Shell) | Interfaz intuitiva, autocompletado inteligente, resaltado de sintaxis. | Fácil de usar, ideal para principiantes, experiencia moderna. | No es 100% compatible con scripts de Bash. | Usuarios novatos o quienes priorizan usabilidad. |
| Ksh (KornShell) | Shell clásico con gran rendimiento en scripting. | Muy eficiente en entornos de producción, buena compatibilidad POSIX. | Menos popular hoy, menor comunidad. | Administradores de sistemas tradicionales, entornos Unix heredados. |
| Tcsh | Derivado del C Shell, con historial y autocompletado. | Sintaxis similar a C, útil en entornos académicos. | Sintaxis menos intuitiva que Bash, menor soporte actual. | Usuarios en investigación científica o académica. |
| Dash (Debian Almquist Shell) | Ligero y rápido, usado en scripts del sistema Debian/Ubuntu. | Excelente rendimiento, bajo consumo de recursos. | No apto para uso interactivo diario. | Scripts del sistema, entornos minimalistas. |
| PowerShell (Microsoft) | Multiplataforma, orientado a objetos, integra .NET y cmdlets. | Potente para automatización, scripting avanzado, integración con servicios cloud (Azure, Office 365). | Sintaxis distinta a Bash, curva de aprendizaje para usuarios Linux. | Administradores híbridos (Windows/Linux), DevOps, entornos corporativos con Microsoft y Linux. |
Te recomiendo leer más sobre comandos Linux
Instalar shells en Linux
Para instalar el shell, tan solo tienes que ejecutar estos comandos para instalar en Ubuntu/Debian, SUSE, RHEL/Fedora respectivamente:
- bash:
sudo apt install bash sudo zypper install bash sudo dnf install bash
- zsh:
sudo apt install zsh sudo zypper install zsh sudo dnf install zsh
- fish:
sudo apt install fish sudo zypper install fish sudo dnf install fish
- ksh:
sudo apt install ksh sudo zypper install ksh sudo dnf install ksh
- tcsh
sudo apt install tcsh sudo zypper install tcsh sudo dnf install tcsh
- dash
sudo apt install dash sudo zypper install dash sudo dnf install dash
En el caso de que quieras probar con PS o Powershell de Microsoft, los pasos son diferentes al resto de shells UNIX. En este caso, su instalación sería así:
- Ubuntu/Debian:
sudo apt update sudo apt install wget apt-transport-https software-properties-common wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update && sudo apt install powershell
- openSUSE/SUSE:
sudo zypper install curl sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo zypper addrepo https://packages.microsoft.com/config/opensuse/15/prod.repo sudo zypper install powershell
- RHE/FedoraL:
sudo dnf install curl sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo dnf install https://packages.microsoft.com/config/rhel/9/prod.repo sudo dnf install powershell
Te puede interesar leer sobre el futuro de las interfaces de usuario
Hacer que el nuevo shell sea el nuevo shell por defecto
Tras la instalación, puedes convertirlo en el shell por defecto para sustituir a bash. De esta forma, cuando abras el terminal, estarás usando el shell elegido. Para ellos, simplemente usa este comando, sustituyendo la ruta por la del shell que quieras, en este caso he elegido zsh:
chsh -s /usr/bin/zsh
Si quieres volver a cambiarlo, usa el mismo comando con la ruta del binario del otro shell… ¡Así de fácil!
¿Cuál es tu shell favorito? Comenta…
