preference을 통해 색상을 변경할 수 있지만 명령 줄을 통해 터미널의 배경색과 텍스트 색상을 어떻게 변경할 수 있습니까?
dconf
. 나는 전에 비슷한 질문에 대한 답변을 작성했다 : askubuntu.com/a/628129/295286
\033[00;34mFOO\033[00m
preference을 통해 색상을 변경할 수 있지만 명령 줄을 통해 터미널의 배경색과 텍스트 색상을 어떻게 변경할 수 있습니까?
dconf
. 나는 전에 비슷한 질문에 대한 답변을 작성했다 : askubuntu.com/a/628129/295286
\033[00;34mFOO\033[00m
답변:
특정 XTerm / ANSI 호환 터미널 (예 : xterm
및 gnome-terminal
)에서는 기본 8/16 색 팔레트보다 큰 팔레트를 사용하여 색상을 설정할 수 있습니다 (예 : 88 색, 256 색 또는 16777216 색 (RGB) 팔레트 사용) 둘다 xterm
와 gnome-terminal
256 색과 16777216-색 (RGB) 팔레트)을 모두 지원; 쉘이 이것을 무시할 수 있음을 명심하십시오 (예를 들어 zsh
).
다음은 256 색 팔레트를 지원하는 XTerm / ANSI 호환 터미널에서 ANSI 색상 코드와 함께 256 색 팔레트의 색상을 나열하는 스크립트입니다.
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done
전경 또는 배경에 색상을 적용할지 여부에 따라 다음 명령에서 또는 각각 의 <fg_bg>
값을 사용하십시오 .38
48
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
예를 들어, 전경색 ( <fg_bg>
= 38
)을 빨간색 ( <ANSI_color_code>
= 196
)으로 설정하고 배경색 ( <fg_bg>
= 48
)을 검은 색 ( <ANSI_color_code>
= 0
)으로 설정하려면 다음을 수행하십시오.
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
printf '\e[K'
배경색을 전체 라인에 적용하고 전경색을 커서에 적용하려면을 사용하여 프롬프트를 다시 그려야합니다 .
호환되는 터미널에서 ANSI 색상 코드 대신 RGB 값을 사용하여 동일한 작업을 수행 할 수 있습니다. 전경 또는 배경에 색상을 적용할지 여부에 따라 다음 명령에서 또는 각각 의 <fg_bg>
값을 사용하십시오 .38
48
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
예를 들어, 전경색 ( <fg_bg>
= 38
)을 빨간색 ( <R>
= 255
, <G>
= 0
, <B>
= 0
)으로 설정하고 배경색 ( <fg_bg>
= 48
)을 검은 색 ( <R>
= 0
, <G>
= 0
, <B>
= 0
)으로 설정하려면 다음을 수행하십시오.
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
다시, printf '\e[K'
배경색을 전체 라인에 적용하고 전경색을 커서에 적용하려면을 사용하여 프롬프트를 다시 그려야합니다 .
두 방법 중 하나를 사용 printf '\e[0m'
하여 모든 속성을 재설정 할 수 있습니다 .
xterm
및 gnome-terminal
\ e [38/48; 2; R; G; Bm 트루 컬러 이스케이프 시퀀스; 그러나 xterm
실제 색상을 256 색 팔레트에서 가장 가까운 색상으로 반올림합니다. gnome-terminal
이스케이프 시퀀스에 주어진 정확한 트루 컬러를 표시합니다.
xterm
에서 커서가 맨 오른쪽 가장자리에 표시되는 경우 (가장 오른쪽 열에 표시되지만 문자가 이미 오른쪽 열에 인쇄되어 논리적으로 이미 그 이상인 경우) 마지막 문자가 제거됩니다. 예를 들어 bugzilla.gnome.org/show_bug.cgi?id=740789 또는 savannah.gnu.org/bugs/?36831를 참조하십시오 .
미리보기 열을 제외한 이 페이지 에있는 정보 :
시퀀스는 이스케이프 문자 (종종” ^[
”또는” <Esc>
”로 표시됨)와 다른 문자” ^[FCm
”(여기서 FC
글 머리 기호 목록의 숫자 중 하나)로 구성됩니다.
에서 bash
의 Esc코드는 다음 중 하나 일 수 있습니다 :
\e
\033
(옥탈)\x1B
(16 진수)참고 1 : " \e[0m
"시퀀스는 모든 속성 (포맷 및 색상)을 제거합니다. 각 컬러 텍스트의 끝에 추가하는 것이 좋습니다.
참고 2 : 전경색과 배경색은 터미널 구성에 따라 다를 수 있으며 일부 색상 만 지원됩니다 .
0
: 모든 수정 자, 전경 및 배경 속성을 재설정 / 제거합니다. echo -e "\e[0mNormal Text"
1
: 굵게 / 밝게 : echo -e "Normal \e[1mBold"
2
: 희미하게 : echo -e "Normal \e[2mDim"
4
: 밑줄 : echo -e "Normal \e[4mUnderlined"
5
: 깜박임 (XTerm을 제외한 대부분의 터미널에서 작동하지 않음) : echo -e "Normal \e[5mBlink"
7
: 반전 / 반전 : echo -e "Normal \e[7minverted"
8
: 숨김 (민감한 정보에 유용) : echo -e "Normal \e[8mHidden Input"
21
: 굵게 / 밝게 재설정 / 제거 : echo -e "Normal \e[1mBold \e[21mNormal"
22
: 희미하게 재설정 / 제거 : echo -e "Normal \e[2mDim \e[22mNormal"
24
: 밑줄 재설정 / 제거 : echo -e "Normal \e[4mUnderlined \e[24mNormal"
25
: 깜박임 재설정 / 제거 : echo -e "Normal \e[5mBlink \e[25mNormal"
27
: 반전 / 반전 재설정 / 제거 : echo -e "Normal \e[7minverted \e[27mNormal"
28
: 숨겨진 재설정 / 제거 : echo -e "Normal \e[8mHidden \e[28mNormal"
39
: 기본값 (일반적으로 녹색, 흰색 또는 밝은 회색) : echo -e "Default \e[39mDefault"
30
: 블랙 : echo -e "Default \e[30mBlack"
(가장 배경색과 함께 : echo -e "Default \e[30;107mBlack on white"
)31
: 빨간색 (녹색 배경과 함께 사용하지 않음)32
: 초록33
: 노랑34
: 푸른35
: 자홍색 / 보라색36
시안37
: 라이트 그레이90
: 짙은 회색91
: 라이트 레드92
: 연한 초록색93
: 연노랑94
: 라이트 블루95
: 라이트 마젠타 / 핑크96
라이트 시안97
: 하얀49
: 기본 배경색 (보통 검은 색 또는 파란색)40
블랙41
: 레드42
: 초록43
: 노랑44
: 푸른45
: 자홍색 / 보라색46
시안47
: 밝은 회색 (흰색 전경과 함께 사용하지 않음)100
: 진한 회색 (검은 색 전경과 함께 사용하지 않음)101
: 라이트 레드102
: 연두색 (백색 전경과 함께 사용하지 않음)103
: 밝은 노란색 (흰색 전경과 함께 사용하지 않음)104
: 하늘색 (밝은 노란색 전경과 함께 사용하지 않음)105
: 라이트 마젠타 / 핑크 (라이트 포 그라운드에서 사용하지 않음)106
: 시안 색 (흰색 전경과 함께 사용하지 않음)107
: 흰색 (밝은 전경에서는 사용하지 않음)전경색과 배경색을 동시에 설정하려면 the form을 사용하십시오 echo -e "\e[S;FG;BGm"
. 예를 들면 : echo -e "\e[1;97;41m"
(빨간색 바탕에 굵은 흰색 전경)
256 색 옵션에 대해서는 소스 페이지를 참조하십시오.
부수적으로 색상을 변경하려는 경우 :
setterm 명령을 사용할 수 있습니다 :
setterm -term linux -back <background_colour> -fore <text_color> -clear
색상에서 (앞과 배경 모두)를 선택할 수 있습니다.
black|blue|green|cyan|red|magenta|yellow|white|default
더 많은 옵션 :
setterm -help
14.04에서는 dconf
색상이나 터미널을 설정하는 데 사용할 수있는 옵션을 찾지 못했습니다 . 그러나 당신은 사용할 수 있습니다gconftool
먼저 프로필 이름을 가져와야합니다.
gconftool-2 --get /apps/gnome-terminal/global/profile_list
그런 다음 프로필의 텍스트 색상을 설정하려면
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
예를 들어 텍스트 색상을 흰색으로 설정
배경색과 동일 :
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
예를 들어 배경색을 검은 색으로 설정하려면
또한, 컬러 (들), 당신은 간단하게 사용할 수의 이름을 설정 white
또는 green
는 setterm 명령, 예를 들어, 같은 팔레트에서을 :
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
dconf write /org/gnome/terminal/legacy/profiles:/:<profile_id>/background-color "'rgb(0,0,0)'"
트릭을 수행했습니다.
gconftool-2
(Ubuntu 14.04 및 이후 릴리스 몇 개) dconf
또는 gsettings
최신 버전의 Ubuntu에서 gnome-terminal의 설정을 변경 하면 동일한 프로파일의 모든 탭과 창 에 즉시 영향을 미칩니다 . OP 가이 동작을 찾고 있다고 생각하지 않습니다.
전경 또는 배경을 팔레트의 특정 색상으로 전환하거나 일부 터미널에서 직접 RGB 색상으로 전환하려면 kos의 답변을 참조하십시오. 이러한 시퀀스의 효과는 다른 색상을 선택하거나 기본값으로 되돌릴 때까지 지속됩니다.
일부 터미널 에뮬레이터가 지원하는 또 다른 방법 은 OSC 10/11 이스케이프 시퀀스를 사용하여 터미널의 기본 전경 및 배경 색상 의 정확한 RGB 값 을 재정의 하는 것입니다 .
echo -ne '\e]10;#123456\e\\' # set default foreground to #123456
echo -ne '\e]11;#abcdef\e\\' # set default background to #abcdef
이것은 다른 OSC 10/11에 의해 재정의되거나 OSC 110/111을 통해 재설정 될 때까지 훨씬 오래 지속될 수 있지만 dconf 방식과 달리 여전히 현재 터미널에만 영향을 미칩니다.