Este artículo explica cómo cambiar el shell predeterminado en Linux. Esto le permite configurar bash, sh, zsh, csh, fish, etc. como shell.
El artículo proporciona instrucciones sobre cómo cambiar el shell de inicio de sesión desde la línea de comandos con chsh, o cómo cambiar el shell solo para una aplicación de terminal específica. Si bien el artículo está dirigido a usuarios de Linux, también debería funcionar en otros sistemas similares a Unix.
Cómo cambiar el shell de inicio de sesión predeterminado con chsh (desde la línea de comandos)
Para cambiar el shell de inicio de sesión predeterminado, usamos chsh
, una herramienta de línea de comandos para cambiar el shell de inicio de sesión.
Este programa cambia el shell de inicio de sesión cambiando el /etc/passwd
Archivo y configuración del $SHELL
Variable ambiental. Puede anular el shell predeterminado en una aplicación de terminal configurando el shell en la configuración del terminal; los detalles se pueden encontrar en la segunda parte de este artículo.
Una nota para los usuarios de Fedora. Fedora no tiene chsh instalado por defecto y para usarlo necesitas un paquete llamado. para instalar util-linux-user
. Si desea omitir la instalación de este paquete, puede lchsh
Para cambiar el shell de inicio de sesión predeterminado:
sudo lchsh $USER
Es importante tener en cuenta que un usuario normal con chsh solo puede cambiar el shell de inicio de sesión de la cuenta actual, mientras que el superusuario puede cambiar el shell de inicio de sesión de cualquier cuenta, incluida la cuenta raíz. Además, el comportamiento predeterminado para usuarios que no son root es aceptar solo shells que están en la lista /etc/shells
Archivar y emitir una advertencia al usuario root.
Entonces, antes de cambiar su caparazón, Enumere todos los mejillones que se enumeran en el /etc/shells
Archivo desde su sistema Linux usando el siguiente comando:
cat /etc/shells
Ejemplo con salida:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/bin/zsh
Si el shell que desea usar no aparece aquí, es posible que no esté instalado en su sistema. Así que instálelo (por ejemplo, instale Zsh en Debian/Ubuntu/Linux Mint/Pop! _OS con:sudo apt install zsh
) y verifique nuevamente.
Para cambiar el shell de su usuario, haga lo siguiente:
chsh
Eso funciona chsh
en un modo interactivo, le pide la contraseña, luego enumera su shell actual (la mayoría de las distribuciones de Linux usan Bash como el shell predeterminado) y le pide que ingrese un valor para su nuevo shell. Aquí está el comando con su salida:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Para cambiar su shell, ingrese la ruta al nuevo shell (que existe en /etc/shells
) y presiona el Enter
Clave.
Por ejemplo, para cambiar el shell del usuario actual de bash a zsh:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/zsh
Si está utilizando una versión de chsh que no comienza con un símbolo del sistema interactivo después de ejecutar chsh
, cambie el shell de inicio de sesión para su usuario directamente:
chsh -s <SHELL>
Por ej. para cambiar el shell a Zsh:
chsh -s /bin/zsh
Después de cambiar el shell de su cuenta, cierre sesión y vuelva a iniciar sesión para usar el nuevo shell.
Para cambiar el shell de inicio de sesión para otro usuario o para el usuario root, inicie sesión como root en el indicador de shell. en su -
, sudo -i
, sudo su
, etc. y ejecute:
- Para cambiar el shell de la cuenta raíz (y cuando se le solicite, ingrese el shell de inicio de sesión deseado con su ruta completa):
chsh
- Para cambiar el shell de otro usuario (esto también funciona para el usuario raíz con
root
como nombre de usuario):
chsh -s <SHELL> <USERNAME>
Esta vez usamos chsh con ese -s
-Opción que cambia el shell de inicio de sesión directamente (no se ejecuta en modo interactivo). Aquí, SHELL
es el nuevo shell (por ejemplo, /bin/zsh
) y USERNAME
es el usuario para el que está cambiando el shell; por ejemplo, para cambiar el shell a /bin/zsh
para el usuario Logix
, usarías:chsh -s /bin/zsh Logix
).
También te puede gustar esto:Starship es un indicador de shell mínimo y rápido en Rust
Cambie el shell de su usuario en una aplicación de terminal
Puede usar un shell que sea diferente del shell de inicio de sesión ($SHELL
) para una aplicación de terminal específica, si esa aplicación permite configurar un shell personalizado o ejecutar un comando personalizado en lugar del shell predeterminado.
Como nota al margen, también puede cambiar el shell actual (no un cambio permanente) ingresando el comando de shell que desea usar en una terminal (por ejemplo, si escribe "zsh", cambiará a usar zsh para esa sesión; salir) por escribiendo “salir”).
Para tomar terminal de GNOME (utilizado como terminal predeterminado en los escritorios GNOME y Cinnamon). Abre su Preferences
, haga clic en el perfil actualmente activo (generalmente etiquetado como Predeterminado o Sin título si no lo ha cambiado o agregado nuevos perfiles) en la barra lateral izquierda, luego haga clic en Command
Pestaña:
Aquí puede configurar un shell personalizado que solo se utilizará con esta aplicación. Activa el Run a custom command instead of my shell
Opción, luego en el Custom command
Ingrese la ruta completa al shell que desea usar, p. /bin/zsh
, /bin/bash
, Etc.
En terminal Xfce4 , abre ese Preferences
y en el General
Pestaña tienes una opción llamada. activar Run a custom command instead of my shell
, luego ingrese el comando personalizado debajo (este es el shell que desea usar con este terminal, por ejemplo, /bin/zsh
, /usr/bin/fish
, etc.).
Uso de KDE Plasmas Consolas , ve a Settings -> Edit Current Profile
, y en el General
Pestaña, cambia el Command
Campo para la ruta completa del shell que desea usar (de nuevo, algo como:/bin/zsh
, /bin/bash
, /usr/bin/fish
, etc.).
Uso de Guake , puede usar el shell de usuario desde su Preferences
, en el Shell
Pestaña donde tienes una opción llamada. Encuentra Default interpreter
esto permite seleccionar cualquier shell enumerado en /etc/shells
.
Para los terminales que le permiten ejecutar un shell personalizado, también debe encontrar una opción que le permita ejecutar el comando como un shell de inicio de sesión (generalmente llamado simplemente "ejecutar comando como shell de inicio de sesión"). Para obtener información sobre las diferencias entre un shell de inicio de sesión y un shell interactivo, consulte esta página.
La configuración es la misma en la mayoría de los casos, por lo que no daré más ejemplos. Sin embargo, vale la pena señalar que no todas las aplicaciones de terminal tienen opciones para permitir el uso de un shell personalizado; en tales casos, use el chsh
Comando para cambiar el shell de inicio de sesión como se describe arriba.
Es posible que le guste esto:179 esquemas de color para su terminal Linux basado en Gtk (terminal Gnome, Tilix, terminal Xfce, más)