因此,我想将其保留bash
为 root 的默认 shell。
zsh
但是,当我运行命令时,我更喜欢使用我的 shell,sudo
它sudo
也会执行 /root 中的 .zshrc。
/root/.zshrc
为了测试目的,我在我的and中创建了一个别名~/.zshrc
:
alias test1='echo "Test OK"'
现在,当我跑步时sudo su
enter zsh
enter test1
enter
我得到了预期的结果: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 文件时可以替换它,并在我想要运行的命令前面加上前缀。
有什么提示吗?
答案1
我不是 zsh 用户,但sudo zsh -c test1
失败了,因为 shell 尚未读取你的 .zshrc 文件。试试这个:
sudo zsh -ic test1
这应该告诉 zsh 这是在交互式 shell 中,因此请获取 .zshrc 文件。