Bash에서 명령 프롬프트의 색상을 설정하는 방법은 무엇입니까?

Bash에서 명령 프롬프트의 색상을 설정하는 방법은 무엇입니까?

Bash에서 마지막 명령의 결과를 검색하는 것은 명령 프롬프트와 결과가 동일한 색상이기 때문에 약간 어렵습니다. 이로 인해 연속 명령의 결과를 분리하기가 어렵습니다.

예를 들어 색상을 분홍색으로 어떻게 바꾸나요?

답변1

@Rob이 맞습니다. 구체적으로 연한 빨간색으로 변경하려면(분홍색은 사용할 수 없는 색상):

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

1;31m로 묶인 ANSI 이스케이프 시퀀스(이 경우 "연한 빨간색 전경"에 대한 코드)를 사용해야 합니다 .\[\033[\]

편집하다:연한 보라색이 원하는 색상에 더 가까울 수 있습니다. 변경 PS1사항은 독자의 연습 문제로 남겨집니다.

@ 리눅스 문서 프로젝트 참조

답변2

대체 솔루션을 원한다면 영구적으로 만들지 않고 터미널 세션 PS1 색상을 설정하기 위한 작은 스크립트를 만들 수 있습니다(영구적인 색상을 원하는 경우 Alex의 솔루션을 따르지 않는 한).

디렉터리를 만들고 yellow.sh저장 /usr/bin한 다음 파일을 실행 가능하게 만들면 다음 코드를 chmod +x yellow.sh편집 하고 추가할 수 있습니다.yellow.sh

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

이 스크립트를 실행하면 터미널 색상이 노란색으로 변경됩니다. 다음 코드를 사용하여 동일한 방식으로 PS1 색상을 재설정할 수 있습니다.

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

다음은 사용할 수 있는 일부 색상 코드 변수의 빠른 목록입니다.

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

간단한 스크립트 내의 일반 명령 사용법:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

사용할 색상을 설정하는 방법에 따라 이 작업은 다소 빠르게 수행될 수 있습니다. 제가 제공한 색상 코드가 전부는 아닙니다. 단말기가 지원하는 색상에 따라 256가지 색상 범위를 사용할 수 있습니다.

관련 정보