Я работаю над удаленной учетной записью 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 в домашний каталог пользователя.