Я работаю над удаленной учетной записью Linux в университете, и, к сожалению, оболочкой по умолчанию является csh без табуляции. Как я могу изменить оболочку по умолчанию для моей учетной записи на bash? chsh не доступен.
4 ответа
Вы, вероятно, должны попытаться спросить своих системных администраторов, могут ли они изменить вашу оболочку по умолчанию для вас. Если они не могут или не хотят (как в случае, когда я учился в колледже), я должен был добавить обходной путь
# Exec bash if using an interactive shell.
if ($?prompt) then
setenv SHELL /path/to/bash
exec $SHELL
endif
в .cshrc . (Конечно, обязательно замените /path/to/bash реальным путем. Это может быть даже версия bash которая находится в вашем домашнем каталоге, если предоставленная системой версия слишком устарела на ваш вкус.) Для повышения эффективности, то лучше сделать это еще в .cshrc , как это возможно, так что вам избежать дополнительной обработки .cshrc , который станет спорным когда bash заменяет csh процесса.
Вы можете просто связаться с
ssh -t yourhost bash
выполнить оболочку Bash автоматически при входе в систему.
Из комментариев ниже вы можете увидеть альтернативу
ssh -t yourhost exec bash
exec запустит новый процесс и выйдет из старого, поэтому процесс csh выйдет напрямую.
Если в конце команды добавить -l в качестве аргумента для Bash, он будет рассматриваться как оболочка входа, но, возможно, в этом нет необходимости.
Лучшее решение, которое я нашел, было одно на стеке обмена. Вот ссылка на стек, и вот решение:
создайте файл .profile в своем домашнем каталоге и вставьте следующее или добавьте в конец свой .profile, если он у вас уже есть.
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac
Я много искал, когда вы используете аутентификацию LADP через PAM, я думаю, что лучшее решение - поместить SHELL =/bin/bash exec /bin/bash в файл .profile в домашний каталог пользователя.
