Actualmente estoy en bash pero quiero cambiar mi shell a tcsh. Utilicé ypchsh, ingresé mi contraseña cuando se me solicitó y luego cambié el shell de inicio de sesión a / bin / tcsh. Y parecía que funcionaba porque recibí un mensaje que dice "El shell de inicio de sesión se ha cambiado en [dominio]". Luego me desconecté y volví a iniciar sesión. Hice eco de $ 0 para verificar mi shell actual pero dice que todavía estoy en / bin / bash. Sin embargo, cuando echo $ SHELL obtengo / bin / tcsh. Y cuando hago ps, muestra que bash se está ejecutando en lugar de tcsh.
Otros pasos para resolver problemas: Intenté hacer los mismos pasos para cambiar a diferentes shells como sh y ksh, que funciona. Sin embargo, cambiar a csh me da el mismo resultado que intentar cambiar a tcsh. Comprobado / etc / shells y tcsh aparece en la lista. También probé exec tcsh pero el sistema todavía ejecuta bash.
Estoy tratando de hacer esto en una cuenta escolar, así que tal vez haya un problema de permiso. Aunque uno de mis compañeros de clase pudo hacer que su cuenta cambiara de caparazón. Si no hay permiso, ¿hay algún archivo que deba configurar?
[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> ypchsh
Changing NIS account information for user on machine
Please enter password:
Changing login shell for user on machine
To accept the default, simply press return. To use the
system's default shell, type the word "none".
Login shell [/bin/tcsh]: /bin/tcsh
The login shell has been changed on machine
[user@machine ~]> logout
[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> FOO=BAR
[user@machine ~]> ps
PID TTY TIME CMD
14549 pts/21 00:00:00 bash
14780 pts/21 00:00:00 ps
[user@machine ~]> exec /bin/tcsh
[user@machine ~]> echo $0
/bin/bash
[user@machine ~]> echo $SHELL
/bin/tcsh
[user@machine ~]> FOO=BAR
[user@machine ~]>
[user@machine ~]> uname -a
Linux machine 2.6.32-696.3.2.el6.i686 #1 SMP Tue Jun 20 00:48:23 UTC 2017 i686 i686 i386 GNU/Linux
[user@machine ~]> /bin/ls -ld
drwx--s--x 49 user group 4096 Sep 1 13:08 .
[user@machine ~]> /bin/*sh
/bin/csh: /bin/csh: cannot execute binary file
[user@machine ~]> /usr/bin/*sh
Usage: amuFormat.sh <Card Type> <drive>
<Card Type> has to be defined in amuFormat.sh itself
<drive> has to be defined in mtools.conf
FOO=BAR
? ¿Qué shell estás ejecutando realmente? Y en serio? ¿Lo intentasteexec tcsh
y todavía estás en fiesta? Siento que no nos cuentas toda la historia.>
caracteres y los insertara$
antes de los comandos de shell. Es mejor si copia desde su terminal y pega en Super User. (Por supuesto, está bien redactar información confidencial como su nombre de usuario y el nombre de la máquina). Pero si cambia el indicador de shell, muéstrelo. (1) Dices que no estás muy familiarizado con los sistemas Linux. Tengo que preguntarme cuánto entiendes sobre los proyectiles * nix y por qué quieres cambiar los tuyos. (2) Cuando digo tipoFOO=BAR
, me refiero a tipoFOO=BAR
(seguido de Enter) en el indicador de comandos de shell.Respuestas:
La razón por la cual mi shell sigue volviendo a bash e incluso me impide usar exec para ingresar a tcsh fue porque en el archivo .cshrc había una línea que decía
exec /bin/bash -l
allí. Para solucionar esto, eliminé esa línea y desde ese momento puedo cambiar los shells.fuente