![我如何进入 root 权限并让它改变我的提示?](https://linux22.com/image/1271870/%E6%88%91%E5%A6%82%E4%BD%95%E8%BF%9B%E5%85%A5%20root%20%E6%9D%83%E9%99%90%E5%B9%B6%E8%AE%A9%E5%AE%83%E6%94%B9%E5%8F%98%E6%88%91%E7%9A%84%E6%8F%90%E7%A4%BA%EF%BC%9F.png)
我正在使用 ubuntu-10.04 和 bash。我想进入 root 模式,并让其将我的提示符更改为带下划线的红色字符,以反映我处于 root 模式。在 bash 提示符下,如果我输入:
$ sudo bash
然后我进入 root 模式,但是我的提示符没有改变。在/root/.bashrc
我的输入中:
RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '
但是这个文件没有被读取。为了读取它,我必须在提示符下输入:
# . /root/.bashrc
我不想这样做。我该如何设置,以便当我进入 root 权限时,它会/root/.bashrc
自动运行?
答案1
首先,这
sudo root
是否是一个有效的命令?(sudo -s
或者sudo -i
是。)我更喜欢编辑我的自己的
.bashrc
而不是 root 的。例如,你可以if (( $UID == 0 )); then PS1="$RED$UNDERLINE" else PS1="$GREEN" fi PS1="$PS1\u@\h:\w\$$DEFAULT "
您可以使用它
sudo -i
来读取 root 的 rcfile,而不是您的 rcfile。
答案2
似乎 sudo 配置为使用原始用户的环境变量而不是新的环境变量。
你可以设置环境变量env_reset and env_keep options in /etc/sudoers
或者明确地将环境变量重置为目标用户的环境变量-H
:
sudo -H -u root