El shell bash es uno de los shells de inicio de sesión más utilizados en Linux. Pero también existen otros shells, y puede usarlos para su trabajo de línea de comandos (hasta que, por supuesto, haya un requisito específico para su trabajo). En este artículo, hablaremos de una herramienta, denominada chsh - que le permite cambiar a un shell de inicio de sesión diferente de su shell actual.
Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos de este tutorial se probaron en una máquina con Ubuntu 18.04 LTS.
Comando chsh de Linux
Como ya se explicó en la introducción anterior, el comando chsh le permite cambiar su shell de inicio de sesión. La siguiente es su sintaxis:
chsh [options] [LOGIN]
Y esto es lo que dice la página de manual de la herramienta al respecto:
The chsh command changes the user login shell. This determines the name
of the user's initial login command. A normal user may only change the
login shell for her own account; the superuser may change the login
shell for any account.
Los siguientes son algunos ejemplos de estilo de preguntas y respuestas que le darán una buena idea de cómo funciona el comando chsh.
P1. ¿Cómo usar chsh?
El uso básico es bastante simple:simplemente ejecute el comando 'chsh' sin argumentos. Se le pedirá su contraseña de inicio de sesión y, una vez que la haya ingresado correctamente, tendrá la opción de cambiar su shell de inicio de sesión.
chsh
Tenga en cuenta que, de forma predeterminada, se cambia el shell de inicio de sesión para el usuario actual.
P2. ¿Cómo cambiar el shell de inicio de sesión usando chsh?
Como era de esperar, simplemente ingrese el nuevo valor (vea la captura de pantalla en el ejemplo anterior) y su caparazón se cambiará al nuevo.
Por ejemplo, ingresé /bin/sh como el nuevo valor.
Para verificar el cambio, puede ejecutar el comando chsh nuevamente. El valor que se muestra entre corchetes es el shell actual. Entonces, en mi caso, el shell actual se convirtió en /bin/sh:
P3. ¿Cómo cambiar el shell de inicio de sesión para otro usuario?
Para esto, simplemente especifique el nombre de usuario como entrada al comando chsh.
chsh [username]
Por ejemplo, para cambiar el shell de inicio de sesión de root, use chsh de la siguiente manera:
chsh root
P4. ¿Cómo hacer que chsh se ejecute en modo no interactivo?
Use la opción de línea de comando -s para esto, que requiere que se le pase el nombre del shell como entrada.
Por ejemplo:
chsh -s /bin/sh
Entonces, de esta manera, el shell de inicio de sesión para el usuario actual se cambiará a /bin/sh de una manera no interactiva.
P5. ¿Cómo ver una lista de shells de inicio de sesión disponibles en el sistema?
Para echar un vistazo rápido a la lista de shells disponibles en su sistema, solo haga clic en el archivo /etc/shells.
Por ejemplo, aquí está la salida producida en mi sistema:
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
Nota:
The only restriction placed on the login shell is that the command name
must be listed in /etc/shells, unless the invoker is the superuser, and
then any value may be added. An account with a restricted login shell
may not change her login shell. For this reason, placing /bin/rsh in
/etc/shells is discouraged since accidentally changing to a restricted
shell would prevent the user from ever changing her login shell back to
its original value.
Conclusión
Como puede ver, el comando chsh es una herramienta importante que los usuarios de la línea de comandos deben conocer. Aquí, en este tutorial, hemos discutido la mayoría de las opciones de línea de comando que ofrece la herramienta. Para obtener más información sobre chsh, diríjase a su página de manual.