루트로 가서 프롬프트를 변경하려면 어떻게 해야 합니까?

루트로 가서 프롬프트를 변경하려면 어떻게 해야 합니까?

나는 ubuntu-10.04와 bash를 사용하고 있습니다. 나는 루트로 가서 내가 루트에 있다는 것을 반영하기 위해 밑줄이 그어진 빨간색 문자로 프롬프트를 변경하도록 하고 싶습니다. Bash 프롬프트에서 다음을 입력하면:

$ sudo bash

그런 다음 루트로 이동하지만 프롬프트는 변경되지 않습니다. 나는 /root/.bashrc다음을 가지고 있습니다 :

RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '

그러나 이 파일은 읽히지 않습니다. 이를 읽으려면 프롬프트에 다음을 입력해야 합니다.

# . /root/.bashrc

나는 그것을하고 싶지 않습니다. 루트에 들어가면 /root/.bashrc자동으로 실행되도록 어떻게 설정합니까?

답변1

  • 첫째, sudo root유효한 명령이라도 있습니까? ( sudo -s또는 sudo -i그럴 것입니다.)

  • 나는 내 것을 편집하는 것을 선호한다소유하다 .bashrc루트 대신. 예를 들면 다음과 같습니다.

    if (( $UID == 0 )); then
        PS1="$RED$UNDERLINE"
    else
        PS1="$GREEN"
    fi
    PS1="$PS1\u@\h:\w\$$DEFAULT "
    
  • sudo -i자신의 것 대신 루트의 rcfile을 읽도록 하는 데 사용할 수 있습니다 .

답변2

sudo가 새 사용자의 환경 변수가 아닌 원래 사용자의 환경 변수를 사용하도록 구성된 것 같습니다.

env_reset and env_keep options in /etc/sudoers다음을 사용하여 환경 변수를 대상 사용자의 변수로 설정 하거나 명시적으로 재설정합니다 -H. sudo -H -u root

관련 정보