Cómo cambiar el shell predeterminado en Linux con chsh

Puntos clave
- Probar diferentes shells de Linux, como Zsh, puede ser un proceso sencillo y útil para encontrar uno que se ajuste a sus preferencias.
- Cada shell tiene sus propias características únicas y su forma de realizar tareas, y diferentes shells pueden tener un impacto importante en su flujo de trabajo.
- El comando chsh le permite cambiar el shell predeterminado.
Bash no es el único shell de Linux. Es fácil probar otros shells, como Zsh, que es muy popular. Cuando hayas encontrado uno que te guste, utiliza el chsh
comando para convertirlo en su shell predeterminado. Te mostraremos cómo.
Por qué es importante un Shell
El shell se encuentra entre usted y el sistema operativo. Proporciona el entorno dentro de una ventana de terminal que le permite escribir comandos y ejecutar programas. El shell verifica su entrada y descubre lo que desea. Si él mismo puede cumplir sus órdenes, lo hará. Si necesita ayuda externa, busque la ruta y encuentre programas que puedan hacer lo que usted solicite.
Hay muchos shells diferentes disponibles en Linux. Todos le permiten realizar las mismas tareas principales: explorar el sistema de archivos, trabajar con archivos, iniciar programas y ejecutar scripts. Sin embargo, cada uno realiza estas tareas a su manera y tiene sus propias características e idiosincrasias especiales.
Los caparazones tienden a ser diseñados por personas que quieren que las cosas se comporten de una manera específica. Si su pensamiento se alinea con el del diseñador, ese caparazón podría ser adecuado para usted. Además, 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. Sin embargo, otro shell podría ofrecer una diferencia de ahorro de tiempo que tendría un gran impacto en su flujo de trabajo. ¡Nunca lo sabrás si no miras!
¿Cuáles son los mejores shells de Linux?
Ya hemos cubierto los diferentes shells de Linux, pero aquí hay una introducción rápida a los más comunes:
- intento: Bourne Again Shell es el predeterminado en muchas distribuciones.
- rabash: esta limitado
bash
shell proporciona una funcionalidad mínima a la persona o script que se ejecuta dentro de él. - ceniza: El shell Almquist es una versión más ligera de bash.
- estrellarse: Debian Alquist Shell es el script de shell predeterminado en Ubuntu. Mientras
bash
es el inicio de sesión predeterminado y el shell interactivo,dash
se utiliza para ejecutar procesos del sistema porque es mucho más liviano quebash
. - zsh: La carcasa Z es una versión moderna de la
bash
familia de conchas. Ofrece mejoras claras, como revisión ortográfica de comandos y correcciones sugeridas. - pez: Este amigable shell interactivo fue escrito desde cero y no deriva de ninguna de las otras familias de shells. Está destinado a ser fácil de usar. Entre sus muchos otros beneficios, Fish ofrece sugerencias de comandos basadas en el historial y el contenido de la carpeta actual, similar al texto predictivo.
- ksh: KornShell proporciona un lenguaje de programación particularmente potente.
Listas de shells instalados
Para ver qué shells están instalados en su computadora, use este comando. Simplemente enumere el contenido del archivo /etc/shells:
cat /etc/shells
Mencionamos bash
, dash
Y rbash
pero que es sh
?
sh
es el caparazón de Thompson, escrito allá por 1971 por Ken Thompson, famoso por los Laboratorios Bell. Ya no recibe mantenimiento y hace tiempo que fue reemplazado por armazones modernos. Se incluye únicamente para mantener la compatibilidad con scripts más antiguos que todavía tienen lo siguiente como primera línea:
#!/bin/sh
Esto le dice al sistema que use el archivo. sh
shell para ejecutar el script. ¿Realmente tienes ese antiguo shell en tu máquina y lo utilizas para ejecutar tus scripts? EL which
El comando nos dirá qué programa se ejecuta realmente cuando escribes un comando.
Veamos qué se ejecuta al escribir. sh
:
which sh
Esto parece encontrar un binario. Sin embargo, si profundizamos un poco más, veremos que se trata de un vínculo simbólico que en realidad apunta a dash
el shell liviano utilizado para ejecutar scripts:
ls -l /bin/sh
Esta es una forma limpia y ligera de proporcionar una red de seguridad para los scripts que esperan ser encontrados. sh
en sistemas modernos.
Instalar 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
Una vez que se completa la instalación, puede volver a verificar los shells instalados:
cat /etc/shells
Nuestro nuevo caparazón se parece /usr/bin/fish
. Tome nota de esa ruta; la necesitará pronto.
La variable de entorno $SHELL
EL $SHELL
la variable de entorno contiene el nombre de su shell actual. Podemos comprobar en cuál está configurado. echo
:
echo $SHELL
comencemos el fish
caparazón:
fish
Ahora, veamos qué otra vez $SHELL
la variable de entorno dice:
echo $SHELL
Primera vez usando echo $SHELL
estamos en bash
caparazón. La variable de entorno contiene la ruta al archivo. bash
ejecutable, /bin/bash
.
Cuando lanzamos el fish
shell, recibimos un mensaje amigable de bienvenida y el símbolo del sistema cambia. Lo que podría resultar sorprendente es la $SHELL
el entorno aún mantiene el camino hacia el bash
ejecutable, /bin/bash
. Está bien, es normal.
Cuando inicia un nuevo shell (o cualquier otro programa), hereda el entorno del shell principal. Entonces el fish
shell hereda variables de entorno globales y exportadas de bash
caparazón. Dado que el valor en $SHELL
la variable de entorno no ha sido modificada, tiene el mismo valor en el archivo fish
caparazón que hizo en bash
caparazón.
Ellos estaban corriendo fish
como cualquier otro programa. También podemos usar exit
para salir del fish
caparazón. Se cierra como cualquier otro programa y volvemos al archivo. bash
caparazón.
Es fantástico para probar nuevos caparazones, ver qué pueden hacer y si te llevas bien con ellos. Puedes explorar antes de dar el salto y adoptar uno como caparazón de referencia.
Si decides hacer el fish—
o cualquier otro shell: el predeterminado, tendrás que usar el chsh
dominio.
El comando chsh
EL chsh
El comando le permite cambiar el shell predeterminado. El truco consiste en tener en cuenta que le permite cambiar tanto el inicio de sesión predeterminado como los shells interactivos predeterminados. Es posible que desee cambiar uno u otro, o ambos.
Cada vez que inicia sesión para obtener un símbolo del sistema, utiliza el shell configurado para ser el shell de inicio de sesión. Cuando ya haya iniciado sesión y abra una ventana de terminal, utilizará el shell configurado para ser su shell interactivo. Pueden ser conchas iguales o diferentes.
Para configurar el shell de inicio de sesión, utilice chsh
sin parámetros:
chsh
Se le pedirá su contraseña. Luego, debe escribir la ruta al nuevo shell y presionar Enter.
Si realizamos una conexión remota a este ordenador de prueba desde otro, nos encontraremos en el archivo fish
shell una vez que haya iniciado sesión.
Para cambiar el uso del shell interactivo chsh
con el -s
Opción (cáscara). Pase la ruta al nuevo shell en la línea de comando:
chsh -s /usr/bin/fish
Se le pedirá su contraseña y se le regresará al símbolo del sistema de su shell actual. Debe cerrar sesión y volver a iniciarla para que el cambio surta efecto. Cuando lo hagas verás el saludo y el archivo. fish
símbolo del sistema de shell.
EL $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 usar sudo
, puede editar los shells de otras cuentas de usuario. El comando es el mismo que antes, con el nombre de usuario de esa persona agregado a la línea de comando:
sudo chsh -s /usr/bin/fish mary
Cuando mary
la próxima vez que inicie sesión, verá el nuevo shell cuando abra una ventana de terminal.
Todos tienen un favorito
Siempre y cuando te sientas cómodo con tu elección de caparazón y te funcione, ¡genial! Sólo recuerde que debe poder ejecutar scripts comunes, como rutinas de instalación. Para los shells mencionados aquí, esto no debería ser un problema.
Por supuesto, también puede descargar e instalar un nuevo shell y probarlo sin realizar ningún cambio en la configuración de su computadora. Cuando estés listo para casarte, chsh
realizará la ceremonia por usted.