Основная проблема заключается в том, что root имеет другую конфигурацию zsh, чем у вашего пользователя. поскольку вместо вызывающего пользователя sudo -s
используется конфигурация целевого пользователя ( root ), вы получаете другую конфигурацию zsh.
Выходные данные выглядят так, как будто они могут быть получены из functions
встроенного (или, typeset -f
или declare -f
, что эквивалентно), которое, кажется, вызывается в одном из скриптов конфигурации root :
/root/.zshrc /root/.zshenv /root/.zprofile /root/.zlogin
Если все, что вы хотите сделать, это предоставить root ту же конфигурацию zsh, что и у вашего обычного пользователя, вы можете просто скопировать ее:
- войдите как root, например
sudo -s
удалите любые файлы конфигурации zsh, которые могут иметь root
mkdir ~/zsh-old-conf mv ~/.zshrc ~/.zshenv ~/.zprofile ~/.zlogin ~/.oh-my-zsh ~/zsh-old-conf
скопируйте вашу конфигурацию обычных пользователей в дом root :
cp -r /Users/REGULAR/.zshrc /Users/REGULAR/.oh-my-zsh ~/
Проверьте, работает ли сейчас конфигурация. Чтобы сохранить данные, оставьте текущий сеанс открытым и войдите в систему как root с другого терминала. Таким образом, вы можете отменить изменения, если конфигурация по какой-то причине не работает.