Как заголовок, Как сохранить последнюю оболочку входа в систему как текущую оболочку в следующем входе в систему? например, моя оболочка по умолчанию является 'ударом', и я переключился на 'zsh', как я могу иметь оболочку 'zsh' как свою текущую оболочку в следующем входе в систему или открыть терминал?
У Вас может быть команда в Вашем .bash_logout
и .zlogout
файлы для изменения текущей оболочки входа в систему на ту, которую Вы используете.
команда могла быть
chsh -s "$(which "$(ps -p $ -ocomm=)")" $USER
С тех пор, .bash_logout
и .zlogout
, как предполагается, получен перед выходящей оболочкой, это должно изменить оболочку входа в систему на в настоящее время рабочую оболочку. Однако необходимо будет дать пароль для изменения оболочки перед выходом.
я использовал информацию от этот вопрос от ТАК и протестировал с zsh
и bash
.
Просьба о пароле выйти из системы глупа. Я написал некоторый код давным-давно, который проверит систему на самую подходящую оболочку. Это будет служить здесь.
1) Shell должен быть установлен на/bin/sh
2), .profile, содержит следующий
. $HOME/.shell
if which $SHELL >/dev/null
then :
else SHELL=/bin/sh
PROFILE=$HOME/.sh_profile
fi
export SHELL
BASHRC=$HOME/.bashrc
ZSHRC=$HOME/.zshrc
KSHRC=$HOME/.kshrc
# Don't do this dumb thing on X login
# The redirects on tty are for portability
if tty -s 1<&0 2<&0
then
exec $SHELL -sc
fi
2) .sh_profile, может быть пробел, но это лучше:
cd() { command cd $1 && PS1="`pwd`"\$\ }
PS1="`pwd`"\$\
3) .bashrc содержит следующее:
[ -f $HOME/.bash_shell ] && rm $HOME/.shell && ln $HOME/.bash_shell $HOME/.shell
4) .bash_shell содержит следующий
SHELL=/bin/bash
PROFILE=$HOME/.bash_profile
то же для других оболочек