Как сохранить последнюю оболочку входа в систему как текущую оболочку в следующем входе в систему?

Как заголовок, Как сохранить последнюю оболочку входа в систему как текущую оболочку в следующем входе в систему? например, моя оболочка по умолчанию является 'ударом', и я переключился на 'zsh', как я могу иметь оболочку 'zsh' как свою текущую оболочку в следующем входе в систему или открыть терминал?

5
задан 12 September 2016 в 06:17

2 ответа

У Вас может быть команда в Вашем .bash_logout и .zlogout файлы для изменения текущей оболочки входа в систему на ту, которую Вы используете.

команда могла быть

chsh -s "$(which "$(ps -p $ -ocomm=)")" $USER

С тех пор, .bash_logout и .zlogout, как предполагается, получен перед выходящей оболочкой, это должно изменить оболочку входа в систему на в настоящее время рабочую оболочку. Однако необходимо будет дать пароль для изменения оболочки перед выходом.

я использовал информацию от этот вопрос от ТАК и протестировал с zsh и bash.

6
ответ дан 23 November 2019 в 09:05

Просьба о пароле выйти из системы глупа. Я написал некоторый код давным-давно, который проверит систему на самую подходящую оболочку. Это будет служить здесь.

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

то же для других оболочек

1
ответ дан 23 November 2019 в 09:05

Другие вопросы по тегам:

Похожие вопросы: