Bash에서 명령 프롬프트 색상을 변경하는 방법은 무엇입니까? [복사]

Bash에서 명령 프롬프트 색상을 변경하는 방법은 무엇입니까? [복사]

중복 가능성:
명령 프롬프트를 구성하기 위해 .bashrc를 사용자 정의하는 방법은 무엇입니까?

명령을 실행할 때 명령 출력의 시작 부분을 찾는 데 종종 어려움을 겪습니다. 이 문제를 해결하는 쉬운 방법은 명령 프롬프트에 색상을 지정하거나 굵게 표시하여 중단한 위치를 쉽게 확인할 수 있도록 하는 것입니다. 어떻게?

답변1

이것이 제가하는 것입니다. Escape 문은 사람이 읽기 어렵기 때문에 추가 Escape 문 대신 tput(1)을 사용합니다.

이것은 내 .bashrc에서 가져온 것입니다.

### Set the prompt like "username@hostname:~ $"
# See: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
# And: http://mywiki.wooledge.org/BashFAQ/037
# 'tput bold' will work regardless of the foreground and background colors.
# Place the tput output into variables, so they are only execd once.
bold=$(tput bold)
reset=$(tput sgr0)
export PS1="\u@\[$bold\]\h\[$reset\]:\w \$ "

이것은 또 다른 옵션입니다. 이는 이스케이프 시퀀스보다 더 읽기 쉽습니다.

# Bash
red=$(tput setaf 1)
green=$(tput setaf 2)
blue=$(tput setaf 4)
reset=$(tput sgr0)
PS1='\[$red\]\u\[$reset\]@\[$green\]\h\[$reset\]:\[$blue\]\w\[$reset\]\$ '

답변2

사용 편의성을 위해 먼저 색상을 프롬프트 변수에 매핑한 .bashrc다음 $PS1프롬프트 변수()에서 재사용할 수 있습니다.

1단계: 지도 색상:

#~/.bashrc

# Color mapping
grey='\[\033[1;30m\]'
red='\[\033[0;31m\]'
RED='\[\033[1;31m\]'
green='\[\033[0;32m\]'
GREEN='\[\033[1;32m\]'
yellow='\[\033[0;33m\]'
YELLOW='\[\033[1;33m\]'
purple='\[\033[0;35m\]'
PURPLE='\[\033[1;35m\]'
white='\[\033[0;37m\]'
WHITE='\[\033[1;37m\]'
blue='\[\033[0;34m\]'
BLUE='\[\033[1;34m\]'
cyan='\[\033[0;36m\]'
CYAN='\[\033[1;36m\]'
NC='\[\033[0m\]'

2단계. PS1 변수를 재정의합니다.

PS1="$yellow[$CYAN\t$yellow][$red\H$yellow][$GREEN\w$grey$yellow]$NC# "

답변3

Bash 프롬프트 색상을 지정하는 방법을 설명하는 좋은 참조 페이지가 있습니다.아치 리눅스 위키.

여기에는 색상, 이스케이프 시퀀스 및 프롬프트나 인쇄 정보(디렉토리, 호스트 등)에 다른 문자를 포함하는 올바른 방법에 대한 정보가 포함됩니다.

예를 들어 다음과 같은 간단한 팁이 있습니다.

PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '

이는 다음 요소로 나눌 수 있습니다.

\[\e[1;32m]- 녹색 대괄호 (1;32m)

[\u@h \W]- 현재 작업 디렉토리의 사용자 이름@호스트 이름 및 기본 이름

\$- 프롬프트( #UID가 0인 경우)

\[e[0m\]- 텍스트 재설정 이스케이프는 색상 순서의 끝을 나타냅니다.

이러한 시퀀스를 사용하면 다채롭고 유익한 프롬프트를 만들 수 있습니다.

주의 사항: 시퀀스를 올바르게 이스케이프 처리하지 못하면 터미널의 텍스트 인쇄 기능에 큰 피해를 줄 수 있습니다.

답변4

이것은 내 .bashrc입니다.

case $HOSTNAME in
    plato*) PSC="\e[1;33m" ;;
    *) PSC="\e[36m" ;;
esac

PS1="[\j]\[${PSC}\]\u@\h(\l) \[\e[37m\][ \w ]\[\e[00m\]\n\[\e[1m\]\#\[\e[0m\] \$ "

취향에 맞게 편집하세요. 또한 메인 워크스테이션과 다른 호스트에 서로 다른 색상을 사용합니다.

관련 정보