
La interfaz de shell o línea de comandos es una parte importante del sistema operativo Linux y proporciona a los usuarios una forma poderosa de interactuar con el sistema.
Cada usuario en un sistema Linux está asociado con un shell predeterminado, que determina el intérprete de comandos que utiliza al interactuar con el sistema.
Es posible que sea necesario cambiar el shell predeterminado de un usuario por diversos motivos, como preferencias personales o la necesidad de una funcionalidad específica proporcionada por un shell diferente.
En este artículo, exploraremos el proceso de cambiar el shell predeterminado de un usuario en Linux. Un shell es un programa que acepta e interpreta instrucciones; existen varios shells de código abierto, como intento, Shhh, kesh, revoltoso, pez, y muchos otros shells menos conocidos en Linux.
shell bash de linux
Explotar (/bin/bash) es un shell popular en la mayoría, si no en todas, las distribuciones de Linux y, a menudo, es el shell predeterminado para las cuentas de usuario.
Hay muchas razones para cambiar el shell de usuario en Linux, entre ellas:
- Utilice el shell nologin para bloquear o deshabilitar los inicios de sesión de usuarios normales en Linux.
- Utilice un script o programa contenedor de shell para registrar los comandos del usuario antes de enviarlos al shell para su ejecución. Aquí, usted especifica el contenedor de shell como el shell de inicio de sesión del usuario.
- Satisfacer las necesidades de los usuarios (que desean utilizar un shell específico), especialmente los usuarios con derechos administrativos.
Al crear una cuenta de usuario utilizando la utilidad useradd o adduser, --shell
El indicador se puede utilizar para especificar el nombre del shell de inicio de sesión del usuario que no sea el nombre especificado en el archivo de configuración correspondiente.
Se puede acceder al shell de inicio de sesión desde una interfaz basada en texto o desde una computadora Linux remota a través de SSH.Sin embargo, si inicia sesión a través de una interfaz gráfica de usuario (GUI), puede acceder al shell desde un emulador de terminal, por ejemplo xterm, consola, Hay muchos más.
Listar shells disponibles en el sistema Linux
En Linux, este archivo /etc/shell Normalmente se utiliza para almacenar una lista de shells de inicio de sesión válidos instalados en el sistema. Este archivo ayuda a identificar qué shells el usuario puede configurar como shell predeterminado usando el siguiente comando chsh.
Para ver la lista de shells disponibles en un sistema Linux, puede utilizar el siguiente comando:
cat /etc/shells
salida de muestra:
# /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash /usr/bin/tmux /usr/bin/screen
Antes de continuar, tenga en cuenta:
- Los usuarios pueden cambiar su shell a cualquier cosa: sin embargo, deben /etc/shell documento.
- Sólo el root puede ejecutar shells que no figuran en el manifiesto /etc/shell documento.
- Si una cuenta tiene un shell de inicio de sesión restringido, solo el root puede cambiar el shell del usuario.
Encuentra el shell actual en Linux
Antes de cambiar el shell del usuario predeterminado, es importante determinar el shell actual ejecutando el siguiente comando echo, que muestra el shell actual del usuario que ha iniciado sesión.
echo $SHELL /bin/bash
El resultado muestra que el usuario está utilizando actualmente Bash (/bin/bash) caparazón.
Cambiar el shell predeterminado en Linux
Ahora analicemos tres formas diferentes de cambiar el shell de usuario predeterminado de Linux.
1.utilidad usermod
El comando usermod se utiliza para modificar los detalles de la cuenta de un usuario, almacenados en /etc/contraseña archivos y -s
o --shell
Las opciones se utilizan para cambiar el shell de inicio de sesión del usuario.
En este ejemplo, primero verificaremos la información de la cuenta del usuario tecmint para ver su shell de inicio de sesión predeterminado y luego cambiaremos su shell de inicio de sesión de /bin/sh llegar /bin/bash como sigue.
grep tecmint /etc/passwd sudo usermod --shell /bin/bash tecmint grep tecmint /etc/passwd
Ahora el shell predeterminado del usuario»Personal técnico«se cambiará a intento.
2. utilidad chsh
este chsh El comando se utiliza para cambiar interactivamente el shell de inicio de sesión predeterminado de un usuario mediante el siguiente comando -s
o -caparazón Las opciones se muestran en la imagen.
grep tecmint /etc/passwd sudo chsh --shell /bin/sh tecmint grep tecmint /etc/passwd

reemplazar»/bin/sh» con la ruta real al shell que desea configurar. Por ejemplo, configure el shell en Shhhusarías «/bin/sh”.
Es importante tener en cuenta que los cambios en el shell predeterminado generalmente entran en vigor la próxima vez que inicie sesión.
Ambos métodos anteriores modifican el shell especificado. /etc/contraseña Puede editar manualmente el archivo siguiendo el tercer método a continuación.
3. Cambie el shell de usuario en el archivo /etc/passwd
En este método, simplemente abra /etc/contraseña Utilice cualquiera de sus editores de texto de línea de comandos favoritos para cambiar archivos y cambiar el shell para un usuario específico.
sudo vi /etc/passwd OR sudo nano /etc/passwd

Localice la línea correspondiente al usuario cuyo shell predeterminado desea cambiar. Por ejemplo, si la línea se ve así:
tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/bash
El último campo, /bin/bashRepresenta el shell predeterminado (en este caso, Explotar).
Para cambiar el valor del campo del shell al shell deseado, simplemente especifique la ruta al shell (/bin/zsh) como se muestra.
tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/zsh
Cuando haya terminado de editar, guarde y cierre el archivo.
¿Cómo instalar otro shell?
Al igual que otros paquetes, los shells populares como Zsh y Fish se pueden instalar fácilmente desde su repositorio de distribución, como se muestra.
Instalar Zsh Shell en Linux
Instalar zish En Linux, utilice las siguientes instrucciones para su distribución de Linux específica.
sudo apt install zsh [On Debian, Ubuntu and Mint] sudo yum install zsh [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/zsh [On Gentoo Linux] sudo apk add zsh [On Alpine Linux] sudo pacman -S zsh [On Arch Linux] sudo zypper install zsh [On OpenSUSE]
Instalar Fish Shell en Linux
Instalar zish En Linux, utilice las siguientes instrucciones para su distribución de Linux específica.
sudo apt install fish [On Debian, Ubuntu and Mint] sudo yum install fish [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/fish [On Gentoo Linux] sudo apk add fish [On Alpine Linux] sudo pacman -S fish [On Arch Linux] sudo zypper install fish [On OpenSUSE]
No olvides leer estos temas relacionados:
En este artículo, describimos varios métodos para cambiar el shell de usuario en Linux. Para compartir cualquier idea con nosotros, utilice la sección de comentarios a continuación.