我当前的 zsh 提示符是:
prompt='%F{013}%2~%f$(git_super_status)%(?.%F{004}.%F{001}✕%?)$ %f'
它看起来像:
Documents/multi-git-status:master↑5●2✚1…$
然而,当我使用它时,sudo su
它变成了blueray-PC#
Documents/multi-git-status:master↑5●2✚1…$ sudo su
[sudo] password for blueray:
blueray-PC#
为什么会发生这种情况?
答案1
sudo su
已被弃用,并且确实会弄乱您的环境。代替
使用sudo -i
。
(这还有一个优点,它可以在没有 的系统上工作su
)
编辑:我忘了一件事: 在末尾
添加export PS1="%F{013}%2~%f$(git_super_status)%(?.%F{004}.%F{001}✕%?)$ %f"
/root/.zshrc
答案2
我在 macOS Catalina 中遇到了这个问题sudo -s
,直到我意识到:
sudo -s
启动交互式 shell,因此它使用 zshenv 和 zshrc 配置文件,而不是 zprofile 和 zlogin- 在 macOS 中,/etc/zschrc 将设置提示符,因此您唯一可以覆盖的机会是使用 .zshrc。
- 即使您获得了 root shell,使用 sudo -s 也会从您自己的主目录(而不是 /var/root)读取用户配置文件。