
Сейчас я в bash, но хочу сменить оболочку на tcsh. Я использовал ypchsh, ввел пароль, когда было предложено, а затем изменил оболочку входа на /bin/tcsh. И, похоже, это сработало, потому что я получаю сообщение «Оболочка входа была изменена на [домен]». Затем я вышел из системы и снова вошел в нее. Я сделал echo $0, чтобы проверить свою текущую оболочку, но она говорит, что я все еще в /bin/bash. Однако, когда я делаю echo $SHELL, я получаю /bin/tcsh. А когда я делаю ps, она показывает, что bash запущен вместо tcsh.
Другие предпринятые шаги по устранению неполадок: Пробовал выполнять те же шаги для переключения на другие оболочки, такие как sh и ksh, что работает. Однако переключение на csh дает тот же результат, что и попытка переключения на tcsh. Проверил /etc/shells, и tcsh указан. Я также пробовал exec tcsh, но система все еще работает под управлением bash.
Я пытаюсь сделать это на школьной учетной записи, так что, возможно, проблема с разрешениями. Хотя один из моих одноклассников смог заставить свою учетную запись изменить оболочку. Если нет разрешения, есть ли файл, который мне нужно настроить?
[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
решение1
Причина, по которой моя оболочка продолжает возвращаться к bash и даже не дает мне использовать exec для входа в tcsh, заключается в том, что в файле .cshrc была строка, которая говорит exec /bin/bash -l
там. Чтобы исправить это, я удалил эту строку, и с этого момента я могу переключаться между оболочками.