Cómo cambiar el shell predeterminado en Linux con chsh

Un shell es un programa que actúa como la capa más externa de un sistema operativo a través del cual interactúa con sus diversos programas y servicios. La mayoría de las distribuciones de Linux usan bash como su shell predeterminado. Sin embargo, si lo desea, puede elegir otro shell para su sistema.

Además de bash, Linux también admite otros programas de shell, como ksh, zsh, csh y fish. Cada una de estas conchas tiene una característica única que las distingue de bash y las otras conchas.

Vamos a sumergirnos para obtener más información sobre el shell y cómo cambiar el shell predeterminado de Linux.

¿Qué es un caparazón y cuál es su significado?

Un shell es un programa de computadora que le permite controlar varios elementos de un sistema operativo mediante comandos. Cuando usa una terminal en Linux, básicamente interactúa con el shell que se encuentra entre usted y el sistema operativo y le indica que ejecute comandos.

La mayoría de los shells de Linux vienen con una interfaz de línea de comandos (CLI) y requieren familiaridad con los comandos (y sus sintaxis). Cuando ingresa un comando en el shell, busca el programa (en su comando) en la ruta del sistema para determinarlo. Si encuentra una coincidencia, ejecuta el comando correctamente y obtiene el resultado.

En pocas palabras, un shell ofrece una forma poderosa y eficiente de comunicarse con el sistema operativo.

Relacionado: 5 razones para elegir el terminal Linux en lugar de la GUI

¿Por qué querría cambiar su shell predeterminado?

En términos generales, la mayoría de los shells que encontrará en Linux o en cualquier otro sistema basado en Unix ofrecen prácticamente la misma funcionalidad en su mayor parte: le permiten interactuar con / controlar varios elementos del sistema de manera conveniente.

Bash , que viene preinstalado en la mayoría de las distribuciones de Linux, es un ejemplo perfecto de esto. Sin embargo, cuando se apila contra algunos de los otros shells, como, zsh, por ejemplo, se queda atrás en términos de funcionalidades.

Zsh, por otro lado, trae consigo un montón de características adicionales, como autocompletado, autocorrección, cd automático, expansión de ruta recursiva y compatibilidad con complementos, lo que le da una ventaja sobre bash y algunos otros shells.

Por supuesto, estas son solo algunas de las ventajas que obtiene con zsh. Otros shells también presentan su propio conjunto de características y mejoras, lo que hace que la experiencia de trabajar con ellos sea más fácil y conveniente.

Cómo cambiar su shell de Linux predeterminado

Hay varias formas de cambiar el shell predeterminado en Linux. Demostraremos el proceso con la utilidad chsh en esta guía, ya que es un método más confiable y conveniente del lote.

Chsh es una utilidad de línea de comandos en sistemas operativos basados ​​en Unix que le permite cambiar el shell predeterminado. Viene preinstalado en casi todas las distribuciones de Linux.

Para usarlo, todo lo que tiene que hacer es proporcionar el nombre de ruta del shell que desea usar en la terminal, y se encarga del resto del proceso en sí. Sin embargo, deberá seguir algunos pasos antes de poder cambiar su shell predeterminado.

Aquí hay un desglose de estos pasos.

Paso 1: identificación de los shells instalados

Antes de instalar un nuevo shell, es importante saber qué shells ya tiene en su sistema Linux. Para hacer esto, abra la terminal y escriba:

 cat /etc/shells

A menos que haya instalado un nuevo shell, su salida debería ser similar a la de la imagen adjunta a continuación.

Paso 2: instalar un nuevo shell

Una vez que haya identificado los shells instalados en su sistema, el siguiente paso es instalar un nuevo shell. En este sentido, hay una variedad de opciones disponibles en Linux, cada una con sus ventajas y desventajas. Entonces, dependiendo de sus preferencias y lo que quiera lograr con el caparazón, puede elegir uno que cumpla con sus requisitos.

Esta guía demostrará la instalación y configuración del shell zsh. Siéntase libre de reemplazar "zsh" con su nombre de shell en los comandos que siguen.

Para instalar zsh en distribuciones basadas en Debian:

 sudo apt install zsh

Puede instalar zsh en Arch Linux usando pacman:

 sudo pacman -Syu zsh

La instalación de zsh en Fedora, CentOS y otras distribuciones RHEL también es fácil:

 sudo dnf install zsh

Una vez que se complete la instalación, ejecute el siguiente comando para verificar los shells instalados en su sistema nuevamente:

 cat /etc/shells

A continuación, verifique si el shell instalado funciona. Para hacer esto, ingrese el nombre de su shell en la terminal. Si es zsh, ejecute:

 zsh

Para volver al shell predeterminado, escriba exit y presione Enter .

Paso 3: configuración de un shell como el shell predeterminado para su sistema

Si su shell recién instalado aparece en la lista de shells instalados y funciona bien, ahora está listo para configurarlo como el shell predeterminado para su sistema. Tenga en cuenta que, con chsh, puede cambiar tanto el shell interactivo predeterminado como el shell de inicio de sesión predeterminado.

Un shell de inicio de sesión es un shell en el que obtiene una terminal después de iniciar sesión en su sistema, mientras que un shell interactivo está disponible todo el tiempo después de iniciar sesión.

Para configurar zsh (o cualquier otro shell) como el shell de inicio de sesión predeterminado, abra la terminal y ejecute:

 chsh

Cuando se le solicite una contraseña, ingrese la contraseña de su cuenta y presione Enter .

A continuación, escriba la ruta absoluta para su shell instalado. Esto cambiará el shell de inicio de sesión predeterminado para su sistema. Para cambiar el shell interactivo predeterminado a zsh:

 chsh -s /usr/bin/zsh

El sistema le pedirá que ingrese su contraseña para aplicar los cambios. Escriba su contraseña y presione Enter .

Una vez que haya configurado zsh (u otro shell) como el shell interactivo o predeterminado, cierre la sesión y vuelva a iniciarla para que los cambios se reflejen en su sistema.

Ahora, cuando inicie sesión nuevamente y abra la terminal, el sistema lo recibirá con el configurador de shell. Antes de que pueda comenzar a usar su nuevo shell, debe elegir aquí las opciones que correspondan a sus requisitos de shell.

Con todo configurado, verifique si su shell recién instalado está configurado como el shell predeterminado del sistema. Para hacer esto, ejecute el siguiente comando:

 echo $SHELL

Si lo ha configurado en zsh, verá su ruta en la terminal. En el caso de otro shell, debería reflejar la ruta en consecuencia.

Tenga en cuenta que, si desea cambiar el shell predeterminado para otros usuarios en su sistema, tendrá que hacerlo individualmente para cada usuario. Por ejemplo, si desea cambiar el shell predeterminado para el usuario sam , deberá ejecutar el siguiente comando:

 sudo chsh -s /usr/bin/zsh sam

Cambio de shell predeterminado para una experiencia personalizada

Un shell rico en funciones conlleva una serie de beneficios adicionales más allá de los inherentes al shell predeterminado. Y dado que la mayoría de sus interacciones y operaciones de Linux ocurren a través de la línea de comandos, cambiar su shell predeterminado a uno que ofrezca más funciones es uno de los primeros pasos para personalizar su entorno de trabajo.

De hecho, debe considerar no solo cambiar el shell predeterminado, sino personalizarlo y configurarlo de la forma en que desea que funcione para mejorar toda la experiencia. Un buen lugar para comenzar a personalizar su shell es comenzar a usar alias de línea de comandos que hacen que ingresar comandos en la terminal sea rápido y conveniente.