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

Так, я хотел бы сохранить bash как оболочка по умолчанию для корня.

Но, я предпочел бы использовать zsh, моя оболочка, когда я работаю sudo команды и это sudo выполняет также .zshrc в корне/.

Для тестирования я создал псевдоним в моем /root/.zshrc и ~/.zshrc :

alias test1='echo "Test OK"'

Теперь, когда я работаю sudo su войти zsh войти test1 войти

Я получил ожидаемый результат: Test OK

Однако все эти команды приводят к: test1: command not found

sudo test1
sudo su -c 'zsh -c test1'
sudo -E zsh -c 'test1'
sudo ZDOTDIR=/root/.zshrc test1
sudo ZDOTDIR=/root/.zshrc zsh -c 'test1'
sudo ZDOTDIR=/root/.zshrc zsh -c 'source /root/.zshrc && test1'

Я нашел этот вопрос на askubuntu, но я думаю, что это более связано с этим на Unix & Linux.

Однако ни одно из этих сообщений не помогает мне.

То, чего я хочу достигнуть в финале, должно создать простой псевдоним, который мог заменить sudo когда я хочу использовать zsh с его/root/.zshrc файлом и префиксом команда я хочу работать.

Какие-либо подсказки?

3
задан 14 August 2015 в 00:50

1 ответ

Я не zsh пользователь, но sudo zsh -c test1 перестал работать, потому что оболочка не считала Ваш .zshrc файл. Попробуйте это:

sudo zsh -ic test1

, Который должен сказать zsh, что это находится в интерактивной оболочке, так получите .zshrc файл.

3
ответ дан 1 December 2019 в 16:27

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

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