Почему я не могу изменить оболочку с помощью команды chsh?

Если вы знаете, какая тема используется, вы можете добавить функцию для получения активированного базового имени VIRTUAL_ENV и использовать ее в PROMPT в файле *. Zsh-theme , расположенном в ~ / .oh-my-zsh / themes /, и это должно помочь!

Для меня это была настроенная тема «oh-my-zsh» по умолчанию, то есть «robbyrussels» .

function virtualenv_info {
    [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
}

local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT='${ret_status} $(virtualenv_info) %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'

Добавление приведенного выше кода привело к следующему результату:

enter image description here

(kunkka.com) - это виртуальный сервер, который я только что деактивировал.

После редактирования файла темы не забудьте загрузить файл .zshrc.

-> source ~/.zshrc

11
08.05.2017, 11:58
2 ответа

Выйдите из системы и войдите снова.

Команда chsh обновит файл /etc/passwd, но не изменит ни текущую оболочку, ни значение $ SHELL в текущей оболочке (это невозможно сделать). Это причина, по которой вам нужно снова войти в систему; вы должны начать новый сеанс входа в систему, чтобы изменения вступили в силу.

20
27.01.2020, 19:57

В моем случае сработало использование утилиты usermod . Работает на убунту 18.04.

  1. Сначала проверьте текущее значение

grep nameofuser /etc/passwd

  1. изменить

sudo usermod --shell /bin/bash nameofuser

  1. Подтвердить

grep nameofuser /etc/passwd

6
27.01.2020, 19:57

Теги

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