방법 : 그놈 터미널에서 밑줄, 굵은 체, 이탤릭체, 취소 선, 색상, 배경 및 크기는 무엇입니까?


58

방법 : 그놈 터미널의 밑줄, 굵은 체, 이탤릭체, 취소 선 및 색상?

대담한

이탤릭체

밑줄

s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t

색깔

background

font <(당신이 말할 수 없다면 모노입니다)

크기


1
정확히 무엇을 바꾸고 싶습니까? 프롬프트, 입력 한 텍스트, 명령 출력?
Radu Rădeanu

실제로 PS1을 내 보냅니다. 기본 반향에도 필요하지만.
Akiva

1
"Faint"를 지원하면 전환합니다. :(
Jürgen A. Erhard

답변:


75

ANSI / VT100 터미널과 터미널 에뮬레이터는 흑백 텍스트 만 표시 할 수 없습니다. 이스케이프 시퀀스 덕분에 색상과 서식있는 텍스트를 표시 할 수 있습니다. 이러한 시퀀스는 이스케이프 문자 (종종 "^ ["또는 "Esc"로 표시됨)와 기타 문자 "Esc [FormatCodem"으로 구성됩니다.

Bash에서 문자는 다음 구문으로 얻을 수 있습니다.

\e
\033
\x1B

여기에 이미지 설명을 입력하십시오

쉽게 복사 할 수있는 명령 :

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

소스 (모든 유형의 전경 / 배경 색상 코드 포함) : http://misc.flogisoft.com/bash/tip_colors_and_formatting


크기, 글꼴 및 배경에 대해 세 가지를 더 추가했습니다. 이것이 가능합니까?
Akiva

1
@Akiva 배경색을 쉽게 변경할 수 있습니다 (전용 섹션 참조 ). 크기에 관해서는 가능하지 않다고 생각합니다. 폰트 유일한 설정은 전역 gconf 속성 값은 ( /apps/gnome-terminal/profiles/Default/font)
실뱅 피노

1
@dashesy : en.wikipedia.org/wiki/ANSI_escape_code 에 따르면 53 개가 오버 라인 을 수행해야합니다. 그러나 내 터미널에는 아무것도하지 않습니다.
Sylvain Pineau

1
@egmont 나는 PS1아래 텍스트에 밑줄이 혼합되어 읽기가 어려우며 물론 취소 선이 잘못 보였기 때문에 실제로 (그놈 터미널에서) 사용하고 싶다는 것을 기억 합니다. 줄이 있으면 위로 스크롤 할 때 이전 명령을 찾는 데 도움이됩니다 (색상도 마찬가지입니다).
dashesy

1
감사합니다 @dashesy, 실제로 꽤 멋진 유스 케이스의 : 그놈 터미널 진행이 추적됩니다 여기에 .
egmont December

26

Sylvain의 답변을 확장하기 위해 일부 도우미 기능 :

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "$@"; }
italic()        { ansi 3 "$@"; }
underline()     { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red()           { ansi 31 "$@"; }

그때

여기에 이미지 설명을 입력하십시오


20

아직 다루지 않은 것은 미리 정의 된 색상 으로 2 ~ 3 개의 매개 변수 (예 : 굵게밑줄 )의 조합 입니다 . 예를 들어 다음과 같은 3 가지 구문으로 달성됩니다.

~$ printf "\e[3;4;33mthis is a test\n\e[0m"

"이것은 테스트입니다"가 노란색 ( 33m), 이탤릭체 ( 3m) 및 밑줄 ( 4m) 로 인쇄됩니다 . 매번 반복 할 필요
없습니다\e[ .
또한 (실베인과 마찬가지로) \e[0m매번 설정을 재설정 하기 위해 a 를 추가했습니다. 그렇지 않으면 노란색과 글꼴 스타일이 터미널에서 계속 활성화됩니다! 말할 필요도없이 스크립트에서 재설정하려면 스크립트를 재설정해야합니다. 스크립트를 사용하는 사용자가 스크립트 에서 터미널의 색상 + 스타일 설정을 영구적으로 수정 하면 스크립트가 마음에 들지 않을 수 있습니다 !


16

Ubuntu 18.04 LTS에서 데뷔 한 그놈 터미널 3.28 (VTE 0.52)은 키티에서 볼 수있는 곱슬 및 컬러 밑줄, Konsole에서 볼 수있는 밑줄 및 마지막으로 모든 사람의 사랑을 받거나 증오하는 깜박임 속성을 포함한 몇 가지 스타일에 대한 지원을 추가합니다.

또한 VTE 버전이 0.52 이상인 경우 다른 VTE 기반 터미널 에뮬레이터 (예 : Tilix, Terminator, Xfce4 터미널, Guake 등)에서도 자동으로 작동합니다.

다음은 표준 이스케이프 시퀀스와 그놈 터미널 (VTE) 추가 사항을 보여주는 목록입니다. 모든 시작 시퀀스에 대해 제네릭이 아닌 해당 속성의 닫기 시퀀스 만 표시 \e[m하거나 \e[0m모든 특수 모드를 비활성화합니다.

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'

(*) 밑줄의 트루 컬러 값은 약간 비슷합니다.

그리고 스타일보다 기능이 많지만 여기서 언급 할 가치가 있기 때문에이 그림에 적합하지 않은 약간 이상한 것은 그놈 터미널 3.26 (VTE 0.50) 이후 iTerm2와 공동으로 설계된 하이퍼 링크 지원입니다. :

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'

결과를 보여주는 스크린 샷은 다음과 같습니다. 그놈 터미널의 렌더링 3.28


2
이 gnome-terminal / vte 버전이없는 사람들에게는 결과의 스크린 샷이 좋을 것입니다.
Marius Gedminas

@MariusGedminas 완료.
egmont

멋진 답변! 시간을내어이 모든 것을 수집 해 주셔서 감사합니다! 나는 그들이 iTerm2에서도 작동하는지 궁금합니다 (곧 확인하려고 노력할 것입니다 ...)
filbranden

2

다음과 같이 하드 코딩 된 시퀀스를 교체하십시오.

tput smul # set underline
tput rmul # remove underline

tput smso # set bold on
tput rmso # remove bold

tput setaf 1 #red
tput setaf 2 #green
...
tput cup 0 0 # move to pos 0,0

이 명령에 대한 자세한 설명은 "man terminfo"및 "man tput"을 참조하십시오.

예 :

function f_help { c_green=$(tput setaf 2 2>/dev/null) c_reset=$(tput sgr0 2>/dev/null) c_bold=$(tput smso 2>/dev/null) echo "${c_bold}DESCRIPTION${c_reset} : .... ${c_green}My green text${c_reset}My plain text" }

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.