为什么切换用户时命令颜色消失?

为什么切换用户时命令颜色消失?

agochar我当前已通过 GUI 登录进行登录。每当我在终端中输入任何命令时,它都会显示在蓝色的颜色,但是当我切换用户sudo su anupam并在终端中键入任何命令时,它会变成无色?我不是这个领域的专家,因为我刚刚开始学习linux。这不是太严重的问题,但如果有人可以帮助我解决这个问题,学习linux命令行会更容易吗?

答案1

对于zshshell,您可能正在使用zsh-syntax-highlighting.就我而言能够得到蓝色命令我必须获取路径/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh。不仅命令受此配置影响,而且" " 和之间的字符串' '、路径名、不存在的命令也会受此配置影响。例如,我通过使用以下方法获得此行为zsh-syntax-highlighting

bash无法使用 中使用的配置文件,zsh因此您应该安装另一个。的替代方案zsh-syntax-highlightingble.sh.
您可以使用以下命令来安装它,但首先,请确保您以anupam用户身份登录(假设该命令使用bashshell):

curl -L https://github.com/akinomyoga/ble.sh/releases/download/nightly/ble-nightly.tar.xz | tar xJf -
mv ble-nightly* ~/.local/share/blesh
echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc

或者你可以检查它的 git 存储库并按照不同的安装方法将其安装到您的操作系统上。
然而,在它的 git 存储库中,我注意到一个小错误(除非在我的情况下它根本不起作用),因为它们使用:

mkdir -p ~/.local/share/blesh
mv ble-nightly* ~/.local/share/blesh
echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc

但实际上该路径~/.local/share/blesh/ble.sh并不存在。实际的路径会是这样的~/.local/share/blesh/ble-nightly-20221112+0c6291f/ble.sh。所以我建议你使用我之前提供的命令。(不确定该命令的mv行为是否有所不同苹果系统


最后,当您重新登录时,anupam您应该能够获得类似的行为zsh

在此输入图像描述

笔记:当您将大型命令粘贴到终端时,使用这些配置可能会有点慢。我注意到 inzsh通常比 in 粘贴命令慢bash

答案2

终端设置、命令提示符的外观、颜色等由 shell 启动脚本设置。对于bash最常用的 shell,文件位于/etc/profile~/.bash_profile~/.bash_login~/.profile~/.bashrc

当您运行 时sudo,您将以另一个用户的身份使用不同的启动脚本(可能还有不同的 shell)运行命令。特别是,root 用户和新创建的用户通常只有裸启动脚本。在评论中,您提到使用zsh,而 root 和新用户很可能被设置bash为默认使用。

我对配置不熟悉zsh。然而,在大多数 shell 中快速设置彩色提示的最简单方法是使用星舰。根据您使用的发行版,它可能会在软件包存储库中找到。

答案3

如果您使用的是 bash

/home/$USER/.bashrc因为您在$USER中有自己的配置文件。如果您希望将该配置文件用作root配置文件,请改为执行以下操作:

if [[ $UID == 0 ]]; then
   export PS1="root_Profile"
else
   export PS1="user_Profile"
fi

$UID== 0 表示它在 root 帐户中,否则它是 $USER 帐户/个人资料

相关内容