在您点击离开之前,这不是典型的“如何使我的 bash 提示符具有颜色”问题。我已经将我的 bash 提示符自定义为如下所示:
[user @ host]----[$(pwd)]
$
通过将以下内容添加到我的 ~/.bashrc 文件中,括号中的所有内容均为浅蓝色,其他所有内容(包括 $)均为黑色
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
目标是当我使用“sudo su”时,唯一改变的是黑色 $ 变为红色 #。我查看了 /etc/bash.bashrc 和 /etc/profile,看看是否有一行需要注释掉,但有很多关于 debian_chroot 的内容我不明白,我不想搞砸。我该如何实现我想要的?
PS 这就是我希望以 root 身份显示的提示符
[user @ host]----[$(pwd)]
(red)#
编辑:将此标记为已解决,在 root 时将上述代码附加到 ~/.bashrc 实现了我的目标。此外,在上面的代码中,$(pwd) 仅显示主目录(我猜是因为那是打开终端时的工作目录),并且从不更新。用 \w 替换 $(pwd) 可以解决此问题,但会将主目录显示为~
,这是我试图避免的。
答案1
su - root
这还取决于您如何成为 root 用户。如果您使用类似或 的内容,则需要在 root 用户的 .bashrc 中进行更改sudo -i
,在环境中进行读取。
有了sudo -s
,你应该可以读取你自己的.bashrc。
考虑添加一些 printf 或 echo 语句来调试您的代码,以告诉您它何时执行。
使用id
命令来确认您就是您所认为的那个人:
root@tau:~# id
uid=0(root) gid=0(root) groups=0(root)
答案2
为了将 root 提示的颜色更改为红色,我.bashrc
按照此线程中的示例修改了文件。
regularuser@myubuntubox:~$ sudo su -
root@myubuntubox:~# vim .bashrc
然后,在 vim 中,搜索PS1
assignment 的最后出现位置,并在其后添加以下内容(请注意,它会更新的值,$PS1
以便其他前面的行不需要修改,并且更改很容易恢复):
# Set RED prompt
PS1="\[\e[01;31m\]$PS1\[\e[00m\]"
答案3
遵循 belacqua 的有效答案https://askubuntu.com/a/305053/12218,通过发出 sudo su 来加载 root 的 .bashrc。
您可以通过输入以下命令来检查sudo su
,然后cd ~
您会看到您位于 root 的主目录中。
使用您以 root 身份登录(su = 切换用户),与以具有提升权限的用户身份登录sudo su
相反。
sudo do some administrative task
因此,通过使用,sudo su
您将成为实际的根,并且对环境所做的更改是专门对根所做的更改,即:sudo su
后跟vim .bashrc
。
答案4
正如其他人之前在本主题中所说的那样,“su -”和“sudo -i”或“sudo -s”使用 /root 目录中的 .bashrc,因此您应该将其添加到文件末尾/root/.bashrc
。我只是写了一个示例,但它可以让新手更容易理解。
# enable color when you login as root user with sudo -i or sudo -s
# this is just a test and I'am not sure if it works well
if [ `whoami` == 'root' ]; then
# Set RED prompt [\033[01;31m\]
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
# Set GREEN prompt [\033[01;32m\]
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
fi