Cómo cambiar el shell predeterminado en Linux

Cómo cambiar el shell predeterminado en Linux
Cambiar el shell predeterminado en Linux Feature Image

Un shell es la interfaz a través de la cual puedes comunicarte con tu sistema Linux. Te permite escribir comandos y controlar tu computadora. Cada usuario de Linux tiene un shell predeterminado, que en la mayoría de los casos es bash. También hay muchas otras opciones disponibles, incluidas Zsh, ksh, rc y fish. Aquí te mostramos los distintos métodos para cambiar tu shell predeterminado en Linux.

Cómo encontrar el nombre actual de tu shell

Antes de comenzar a cambiar el shell predeterminado, es bueno saber qué shell estás usando actualmente. Puedes averiguarlo verificando la variable de entorno del sistema con el siguiente comando echo:

Mostrar la ruta actual del shell usando el comando echo

Este comando imprimirá la ruta de su shell actual, como por ejemplo /bin/basho /bin/zsh.

El /etc/passwdarchivo contiene información importante sobre la cuenta de usuario. También puede utilizar este archivo para encontrar su shell actual:

Cómo encontrar el shell actual usando el comando grep en el archivo de variable de entorno

También puede encontrar más información sobre el shell actual verificando el ID del proceso (PID), utilizando el comando ps:

Mostrar información del proceso de shell actual usando el comando ps

Esta salida confirma que el shell actual es bash.

Listar todos los shells instalados

Ahora que conoce su shell actual, es posible que desee ver qué otras opciones están disponibles en su sistema. Para localizar todos los shells instalados en su sistema, debe echar un vistazo al /etc/shellsarchivo.

Utilicemos el comando cat para ver una lista de todos los shells disponibles en su sistema:

Listado de todos los shells instalados en el sistema Linux Ubuntu

Esto te dará una idea de los shells a los que puedes cambiar. También puedes instalar cualquier shell nuevo usando tu administrador de paquetes y usarlo como tu shell predeterminado.

Además, puedes probar temporalmente estos shells listados sin cambiar tu shell predeterminado. Para iniciar una nueva sesión de shell, simplemente escribe el nombre del shell en la terminal.

Por ejemplo, para probar Zsh shell, escriba:

Esto le permite experimentar con diferentes shells antes de decidir hacer un cambio permanente.

Cambiar el shell predeterminado en Linux con Chsh

La forma más sencilla de cambiar el shell predeterminado en Linux es usar el chshcomando. El chshcomando significa “cambiar shell” y se usa junto con la -sopción seguida de la ruta del shell.

Si no conoce la ruta de su shell, ejecute type zshla terminal para obtener la ruta deseada. Después de obtener la ruta de su shell, puede cambiar su shell predeterminado a su shell específico.

Por ejemplo, si desea cambiar a Zsh, debe utilizar la chsh -sruta del shell Zsh:

Cambiar el shell predeterminado con el comando chsh

Se le solicitará que ingrese su contraseña. Una vez que lo haga, deberá cerrar sesión y volver a iniciarla para confirmar los cambios.

El chshcomando cambiará el shell de inicio de sesión predeterminado de forma permanente. Puede verificar los cambios ejecutando este comando:

Verificar el cambio de shell mediante el comando grep en el archivo /etc/passwd

Cambiar otro shell de usuario

Si tiene privilegios de root y la capacidad de usar el sudocomando, puede cambiar el shell predeterminado para otras cuentas de usuario. Esto puede resultar útil si desea proporcionar un entorno de shell diferente, como fish, para otro usuario.

Por ejemplo, para cambiar el shell de otro usuario a Zsh, ejecute este comando en la terminal:

Cambiar el shell de otro usuario usando el comando chsh

Este comando le indica al sistema que cambie el shell predeterminado para el usuario específico al shell Zsh, que se encuentra en /bin/zsh.

Cambiar el shell predeterminado en Linux usando Usermod

Otro método para cambiar de shell es mediante el usermodcomando . Este comando se utiliza para modificar cuentas de usuario y también se puede utilizar para cambiar el shell predeterminado.

Para cambiar su shell predeterminado usando usermod, abra una terminal con privilegios de root y escriba este comando:

Aquí debes reemplazarlo /path/to/new/shellcon la ruta de shell deseada y your_usernamecon tu nombre de usuario real.

Por ejemplo, cambiemos el shell bash predeterminado a zsh:

Cambiar el shell predeterminado a otro shell usando el comando usermod

Al igual que antes, cierre la sesión y vuelva a iniciarla en su sistema Linux para que estos cambios surtan efecto.

Puede verificar el cambio al nuevo shell mirando los detalles de la cuenta de usuario con el siguiente comando:

Verificación del nuevo shell después de cambiar del shell predeterminado usando getent

Cómo cambiar manualmente el shell predeterminado en Linux

También puedes cambiar el shell predeterminado manualmente editando el /etc/passwdarchivo. Puedes hacerlo reemplazando la ruta del shell predeterminado con el nuevo shell. Sin embargo, ten cuidado con esta técnica, ya que puede ocasionar problemas si no se realiza correctamente.

Para cambiar manualmente su shell, abra el /etc/passwdarchivo usando su editor de texto favorito (como nano o vim) con privilegios de root:

Abrir el archivo /etc/passwd usando el editor de texto nano

Busque su nombre de usuario en el archivo. El último campo de la entrada de su usuario mostrará su shell actual. Cámbielo por la ruta del shell que desee.

Por ejemplo, cambiemos nuestra /bin/bashruta de shell predeterminada a /bin/zsh:

cambiando el shell bash predeterminado al shell zsh en el editor de texto /etc/passwd.

Por último, guarde el archivo presionando Ctrl+ Sy salga del editor con Ctrl+ X. Nuevamente, cierre sesión y vuelva a iniciarla para aplicar los cambios.

Alternativa a su shell predeterminado

Si bien Bash es una excelente y poderosa herramienta de programación de scripts, existen otros shells que pueden mejorar su experiencia en la línea de comandos y brindar mejores opciones de personalización:

Pez

fish hace referencia a Friendly Interactive Shell. Este shell tiene una interfaz de línea de comandos intuitiva, con resaltado de sintaxis, sugerencias automáticas y tabulaciones que facilitan la escritura de comandos.

fish también incluye una herramienta de configuración basada en la web. Esto significa que puedes modificar la configuración y crear funciones sin tener que buscar en los archivos de configuración.

Zsh

Zsh, o Z shell, es altamente personalizable y tiene muchas funciones útiles. Algunas de sus mejores funciones incluyen la creación de bloques, la autocorrección, las configuraciones personalizadas y el autocompletado avanzado de pestañas.

Zsh también admite complementos y temas, lo que facilita la personalización de la experiencia de shell a su gusto. Con Zsh, también puede mostrar su rama de Git y realizar manipulaciones complejas de archivos con patrones simples.

Ksh

ksh, o KornShell, aprovecha las mejores características de C shell y Bourne shell, lo que lo convierte en un shell potente y fácil de usar con capacidades avanzadas de creación de scripts. Algunas de las características de ksh incluyen funciones matemáticas integradas, edición desde la línea de comandos, creación de scripts de shell y extensibilidad.

Terminando

Cambiar el shell predeterminado en Linux es un proceso sencillo que puede mejorar tu experiencia con la línea de comandos. Si eres un usuario avanzado, definitivamente deberías probar otros shells alternativos de Linux.

Crédito de la imagen: Lukas vía Unsplash . Todas las capturas de pantalla son de Haroon Javed.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *