Cómo cambiar su shell predeterminado en Linux con chsh

Contenidos

Un indicador de shell estilizado en un sistema portátil Linux estilo Ubuntu.

Bash no es el único shell de Linux. Es fácil probar otros shells, como Zsh, que es muy popular. Cuando haya encontrado uno que le guste, use el chsh comando para convertirlo en su shell predeterminado. Te mostraremos cómo.

Por qué es esencial un caparazón

La cáscara se encuentra entre usted y el sistema operativo. Proporciona el entorno dentro de una ventana de terminal que le posibilita escribir comandos y ejecutar programas. El shell verifica su entrada y descubre lo que quiere. Si puede realizar su oferta por sí mismo, lo hace. Si necesita ayuda externa, busca en la ruta y encuentra los programas que pueden hacer lo que sea que solicite.

Hay muchos shells diferentes disponibles en Linux. Todos le posibilitan realizar las mismas tareas básicas: explorar el sistema de archivos, trabajar con archivos, iniciar programas y ejecutar scripts. A pesar de esto, cada uno realiza estas tareas a su manera y tiene sus propias características e idiosincrasias especiales.

Las carcasas tienden a ser diseñadas por personas que buscan que las cosas se comporten de una manera específica. Si su pensamiento se alinea con el de ese diseñador, ese caparazón podría ser una buena opción para usted. Al mismo tiempo, probar un nuevo shell en Linux es fácil.

En la mayoría de las distribuciones de Linux, incluido Ubuntu, el shell predeterminado es bash. Hace un gran trabajo y es muy capaz. A pesar de esto, otro shell podría ofrecer una diferencia de ahorro de tiempo que tendría un gran impacto en su flujo de trabajo. ¡Nunca sabrás si no miras!

RELACIONADO: ¿Qué es ZSH y por qué debería usarlo en lugar de Bash?

Un balde de conchas

Hemos cubierto los diferentes shells de Linux antes, pero aquí hay una introducción rápida a los más comunes:

  • intento: los Bourne otra vez la cáscara es el valor por defecto en muchas distribuciones.
  • rbash: Esta Restringido bash shell proporciona una funcionalidad mínima a la persona o script que se ejecuta en él.
  • ceniza: los Concha almquist es una versión más ligera de bash.
  • pizca: Debian Alquist Shell es el script de shell predeterminado en Ubuntu. Tiempo bash es el inicio de sesión y el shell interactivo predeterminados, dash se utiliza para ejecutar procesos del sistema debido a que es mucho más ligero que bash.
  • zsh: El caparazón Z es una versión moderna del bash familia de conchas. Ofrece grandes mejoras, como revisiones ortográficas de comandos y correcciones sugeridas.
  • pez: Esta cáscara interactiva amigable fue escrito desde cero y no se deriva de ninguna de las otras familias de shell. Está destinado a ser fácil de utilizar. Entre sus muchas otras ventajas, Fish ofrece sugerencias de comandos basados ​​en su historial y el contenido de la carpeta actual, semejante a Texto predictivo.
  • ksh: El KornShell proporciona un lenguaje de secuencias de comandos concretamente sólido.

RELACIONADO: ¿Cuál es la diferencia entre Bash, Zsh y otros shells de Linux?

Lista de las carcasas instaladas

Para ver qué shells están instalados en su computadora, use este comando. Simplemente enumera el contenido de la /etc/shells expediente:

cat /etc/shells

Hemos mencionado bash, dash, y rbash, pero que es sh?

sh es el Thompson shell, escrito en 1971 por Ken Thompson de Laboratorios Bell fama. Ya no se mantiene y desde hace mucho tiempo ha sido reemplazado por conchas modernas. Se incluye únicamente para mantener la compatibilidad con scripts más antiguos que aún disponen lo siguiente como primera línea:

#!/bin/sh

Esto indica al sistema que utilice el sh shell para ejecutar el script. ¿Verdaderamente tiene ese shell antiguo en su máquina y lo está usando para ejecutar sus scripts? los which comando nos dirá qué programa se ejecuta verdaderamente cuando escribe un comando.

Veamos qué se ejecuta cuando escribes sh:

which sh

Esto parece hallar un binario. A pesar de esto, si profundizamos un poco más, veremos que es un vínculo simbólico que en realidad apunta a dash, el shell ligero utilizado para ejecutar scripts:

ls -l /bin/sh

Es una forma simple y ligera de proporcionar una red de seguridad para los scripts que esperan hallar sh en sistemas modernos.

Instalación de otro shell

Instalemos el fish shell y configúrelo como predeterminado para dave. En Ubuntu, escribimos el siguiente comando:

sudo apt-get install fish

En Manjaro, use pacman:

sudo pacman -Sy fish

En Fedora, escriba lo siguiente:

sudo dnf install fish

Cuando se complete la instalación, puede verificar los shells instalados una vez más:

cat /etc/shells

Nuestro nuevo caparazón aparece como /usr/bin/fish. Tome nota de ese camino, lo necesitará en breve.

La variable de entorno $ SHELL

los $SHELL La variable de entorno contiene el nombre de su shell actual. Podemos chequear cuál está configurado con echo:

echo $SHELL

Comencemos el fish cascarón:

fish

Ahora, revisemos de nuevo lo que $SHELL variable de entorno dice:

echo $SHELL

La primera vez que usamos echo $SHELLestamos en el bash cascarón. La variable de entorno contiene la ruta a la bash ejecutable, /bin/bash.

Cuando lanzamos el fish shell, recibimos un mensaje de bienvenida amable y el símbolo del sistema cambia. Lo que podría sorprender es el $SHELL el medio ambiente aún mantiene el camino hacia el bash ejecutable, /bin/bash. Está bien, esto es normal.

Cuando inicia un nuevo shell (o cualquier otro programa), hereda el entorno del shell padre. Entonces el fish shell hereda las variables de entorno globales y exportadas del bash cascarón. Debido a que el valor en el $SHELL La variable de entorno no se ha cambiado, tiene el mismo valor en el fish caparazón que hizo en el bash cascarón.

Estaban corriendo fish como cualquier otro programa. Además podemos utilizar exit para salir del fish cascarón. Cierra como cualquier otro programa, y ​​volvemos a la bash cascarón.

Eso es genial para probar nuevas conchas, ver lo que pueden hacer y si te llevas bien con ellas. Puede explorar antes de dar el salto y adoptar uno como caparazón de referencia.

Si decides hacer el fish—O cualquier otro shell — tu predeterminado, necesitarás utilizar el chsh mando.

El comando chsh

los chsh El comando le posibilita cambiar su shell predeterminado. El truco es ser consciente de que le posibilita cambiar tanto el inicio de sesión predeterminado como los shells interactivos predeterminados. Es factible que desee cambiar uno u otro, o ambos.

Siempre que inicie sesión para obtener un símbolo del sistema, utilice el shell configurado para ser su shell de inicio de sesión. Cuando ya está conectado y abre una ventana de terminal, utiliza el shell configurado para ser su shell interactivo. Estos pueden ser los mismos o diferentes caparazones.

Para configurar su shell de inicio de sesión, use chsh sin parámetros:

chsh

Se le solicita su contraseña. Posteriormente, debe escribir la ruta al nuevo shell y presionar Enter.

Si hacemos una conexión remota a esta computadora de prueba desde otra, nos hallaremos en el fish shell una vez que hayamos iniciado sesión.

Para cambiar el uso de su shell interactivo chsh con el -s (shell) opción. Pase la ruta al nuevo shell en la línea de comando:

chsh -s /usr/bin/fish

Se le solicita su contraseña y regresa al símbolo del sistema de su shell actual. Debe cerrar la sesión y volver a iniciarla para que el cambio surta efecto. Cuando lo haga, verá el saludo y el fish símbolo del sistema de shell.

los $SHELL La variable de entorno ahora contiene la ruta a su nuevo shell predeterminado:

echo $SHELL

Cambiar el shell de otra cuenta de usuario

Si tiene privilegios de root y puede utilizar sudo, puede cambiar las carcasas de otras cuentas de usuario. El comando es el mismo que antes, con la adición del nombre de usuario de esa persona agregado a la línea de comando:

sudo chsh -s /usr/bin/fish mary

Cuando mary A continuación, inicie sesión, verá el nuevo shell cuando abra una ventana de terminal.

Todo el mundo tiene un favorito

Siempre que se sienta cómodo con su elección de caparazón y le funcione, ¡eso es genial! Solo recuerde, debe poder ejecutar scripts comunes, como rutinas de instalación. Para los proyectiles mencionados aquí, esto no debería ser un obstáculo.

Desde luego, además puede descargar e instalar un nuevo shell y probarlo sin realizar ningún cambio de configuración en su computadora. Cuando esté listo para casarse, chsh realizará la ceremonia por usted.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.