![为什么切换用户时命令颜色消失?](https://linux22.com/image/213663/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%88%87%E6%8D%A2%E7%94%A8%E6%88%B7%E6%97%B6%E5%91%BD%E4%BB%A4%E9%A2%9C%E8%89%B2%E6%B6%88%E5%A4%B1%EF%BC%9F.png)
agochar
我当前已通过 GUI 登录进行登录。每当我在终端中输入任何命令时,它都会显示在蓝色的颜色,但是当我切换用户sudo su anupam
并在终端中键入任何命令时,它会变成无色?我不是这个领域的专家,因为我刚刚开始学习linux。这不是太严重的问题,但如果有人可以帮助我解决这个问题,学习linux命令行会更容易吗?
答案1
对于zsh
shell,您可能正在使用zsh-syntax-highlighting
.就我而言能够得到蓝色命令我必须获取路径/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
。不仅命令受此配置影响,而且" "
和之间的字符串' '
、路径名、不存在的命令也会受此配置影响。例如,我通过使用以下方法获得此行为zsh-syntax-highlighting
:
您bash
无法使用 中使用的配置文件,zsh
因此您应该安装另一个。的替代方案zsh-syntax-highlighting
是ble.sh
.
您可以使用以下命令来安装它,但首先,请确保您以anupam
用户身份登录(假设该命令使用bash
shell):
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 帐户/个人资料