루트일 때 빨간색 터미널 글꼴

루트일 때 빨간색 터미널 글꼴

제 생각에는RHEL/CentOS 7.6에서 구현됨

이 작업을 수행 su하고 루트가 될 때마다 해당 세션 동안 해당 터미널의 터미널 프롬프트 색상이 빨간색으로 변경되기를 원합니다 su. 현재 상태로 돌아가려면 Enter를 누르 exit세요. 프롬프트 색상이 이전 색상(검은색)으로 돌아가기를 원합니다.

네트워크를 통해 로그인하기 위해 퍼티를 사용하는 SSH 창과 동일합니다. 처음에는 다음과 같이 SSH로 로그인합니다.사용자그리고 기본 흰색 쉘 프롬프트가 있습니다. su루트 작업을 수행할 때 프롬프트가 빨간색으로 바뀌기를 원하고, 종료할 때 프롬프트가 흰색으로 돌아가기를 원합니다.

지금까지 이 작업을 수행했지만 100% 작동하지 않습니다. exitsu 세션에 들어가고 나가고 원래 상태로 돌아온 후에도 색상이 빨간색으로 유지됩니다.사용자.

/etc/profile.d/red_root_prompt.sh

if [ $UID -eq 0 ]; then
   PS1="\e[31m[\u@\h \W]# "
else
   PS1="[\u@\h \W]# "

내가 원하는 대로 일이 이루어지도록 하는 방법이 있나요? 나는 bash 쉘에만 그것을 원합니다.

답변1

추가하거나 /etc/bash.bashrc편집 할 수 있습니다./etc/profile/

force_color_prompt=yes

    if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then
        PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;34m\]#\033[00m\] '
    else
        PS1='\u@\h:\w\$ '
    fi

이와 유사한 프롬프트가 표시됩니다. 흰색 배경을 사용하는 경우 마지막 부분을 명령 텍스트가 보이도록 #변경 하세요. \033[01;30m\]참고용으로 두 번째 예시로 포함하겠습니다.

시각적인 모습

\etc\bash.bashrc또한 ~/.bashrc 에 다음을 추가하면 :

export col_white='\033[00m'
export col_black='\033[01;30m'

export col_red='\033[01;31m'
export col_green='\033[01;32m'
export col_yel='\033[01;33m'
export col_blue='\033[01;34m'

다음 작업을 수행할 수 있습니다.

$ echo -e $col_red red $col_blue blue $col_yel yellow $col_green green
 red blue yellow green

출력은 다음과 같습니다.

여기에 이미지 설명을 입력하세요.


편집하다: 어떤 이유로 변수 확장을 프롬프트로 사용하면 캐리지 리턴이 중단됩니다(변수의 길이에 고정합니다. 즉, 에 해당하는 n echo $col_blue공백을 앞으로 밀어냅니다 echo $col_white. 지금까지 이 시점에서 좋은 해결책을 찾지 못했지만 다음을 사용하여 위의 변수 대체를 사용하지 않고 적절한 대괄호를 사용하면 이 문제를 해결할 수 있습니다.

if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then
    PS1="$col_red\u@\h:$col_purple\w$col_green# $col_white"
else
    PS1="\u@\h:$col_blue\w$col_yel\$ $col_white "
fi

답변2

/etc/profile.dRHEL/CentOS 7.x의 경우 이와 같은 사용자 정의 콘텐츠가 에 있어야 한다고 생각합니다 /etc/bashrc.local. 이렇게 하면 유사한 콘텐츠가 /etc/bashrc변경되거나 교체될 때 업데이트 후에도 모든 사용자 정의가 유지됩니다.

/etc/profile.d/RHEL/Centos 7의 경우 해당 쉘 아래에 해당 접미사가 있는 파일을 배치하기 만 하면 된다고 생각합니다 .

그래서 나는 /etc/profile.d/redrootprompt.sh단지

if [ "$LOGNAME" = root ] || [ "`id -u`" -eq 0 ] ; then

    PS1='[\[\033[01;31m\]\u@\h\[\033[00m\]:\w] : '

else
    PS1='[\u@\h \w] : '
fi

제가 원했던 룩에 딱 맞았네요

레드 루트 프롬프트

검정색 배경과 흰색 텍스트가 있는 퍼티 창에서도 작동하지만 루트에 고소한 후 빨간색으로 바뀌고 종료 시 흰색으로 돌아갑니다.

관련 정보