그놈 터미널은 $ TERM을`xterm`으로보고


21

Ubuntu 12.10을 새로 설치할 때 기본 gnome-terminal은 $ TERM을 xterm으로보고하며 여기서 xterm-256color를보고해야합니다. 이것을 바꾸는 가장 좋은 방법은 무엇입니까? .bashrc에 넣는 것을 피하는 것이 문제입니다.


2
xterm이 왜 틀린지 설명해 주시겠습니까? 우리 모두 xterm이 있습니다. 그 외에도 : bashrc에 넣는 것이 왜 문제를 일으키는 지 설명해야합니까?
Rinzwind

4
xterm대부분의 응용 프로그램은 256 색 모드에서 작동하지 xterm-256color않거나 screen-256color( 또는 관심있는 주요 응용 프로그램 인 vim 및 tmux) 작동하지 않기 때문에 잘못되었습니다 . @Freddy와 마찬가지로 SSH를 통해 다른 터미널 유형에서 연결하고 실제로 이것을 설정하는 것은 터미널 에뮬레이터의 작업이기 때문에 쉘 프로파일에서 이들을 설정하지 않는 것이 좋습니다. 그놈 터미널이 여러 에뮬레이션을 제공하지 않는다는 것이 놀랍습니다.
Jim Stewart

3
vte-0.40 (우분투 15.10에 나타날 것임)은 기본값을로 변경했습니다 xterm-256colors.
egmont

답변:


17

특히 시작 스크립트를 변경하지 않는 것이 좋습니다 ~/.bashrc. 전류 $TERM또는 입력 $COLORTERM을 사용하는 "터미널 감지" ~/.profile는 추측 일 뿐이며 다른 터미널 (퍼티 또는 xterm)을 사용할 때 문제가 발생할 수 있습니다. 터미널 에뮬레이터는로 설정되어 있으며 셸 내에서 변경 $TERM해서는 안됩니다 .

그놈 터미널 인 AFAIK는을 변경하기위한 구성을 제공하지 않지만 TERM시작 명령을 변경할 수 있으며 이것이 전부입니다. 트릭은 다음과 같습니다.

Profile Preferences => Title and Command => Run a custom command instead of my shell

그런 다음 다음 명령을 사용하십시오.

env TERM=xterm-256color /bin/bash

/bin/bash선호하는 쉘이 다른 경우 교체 하십시오. 그리고 아니, "$SHELL"셸 자동 감지를 위해 해당 줄에서 사용할 수 없습니다 .) 하드 코딩해야합니다.


해당 설정에는 "명령이 종료 될 때 :"옵션이 있습니다. 옵션은 "터미널 종료", "명령 다시 시작"및 "터미널 열기 유지"입니다. 어느 것을 선택해야합니까?
Caleb Jay

@CalebJay : 당신이 선호하는 옵션은 터미널 색상과 관련이 없습니다. 명령이 끝날 때해야 할 일은 순전히 선호의 문제입니다.
MestreLion

12

256 색을 수행 할 수없는 터미널과 연결합니다.

로 터미널을 구체적으로 감지하는 것이 훨씬 좋습니다 $COLORTERM. gnome-terminal, xfce4-terminal 등을 찾은 다음$TERM 변수를 설정하십시오 xterm-256color.

나는 그것을한다 :

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi

4
3.13 이후의 Gnome Terminal은 COLORTERM더 이상 설정 되지 않습니다.
MestreLion은

2
더 이상 설정되지 않은 버전의 경우에 COLORTERM의존 할 수 있습니다 VTE_VERSION.
egmont

6

terminfo에 xterm + 256color ( /usr/share/terminfo/x/xterm+256color) 가있는 것이 사실이지만 termcap에는 xterm ( /usr/share/vte/termcap/xterm) 만 있으므로 변경하는 $TERM것이 바람직하지 않습니다.

어쨌든 $TERMgnome-terminal이 아니라 vte에 의해 설정됩니다. 해당 환경 변수의 기본값은 컴파일시 (구성 스크립트에 옵션 제공) 또는 vte_pty_set_term()함수 를 호출하여 변경할 수 있습니다 . gnome-terminal의 출처를 살펴보면 vte_pty_set_term결코 호출되지 않으므로 $TERMgnome-terminal의 설정을 편집 하여 수정할 방법이 없다고 말할 수 있습니다 .

당신이해야 할 일은 다음 코드를 배치하는 것입니다 ~/.profile.

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi

==은 bash 전용 구문이므로 sh( ~/.profileDE 의 경우)에 의해 소스로 작성된 스 니펫에는 사용하지 마십시오 . 또한 var 확장을 올바르게 인용하므로 "x $ .."구문이 필요하지 않습니다.
MestreLion

@MestreLion : 내 질문을 자유롭게 편집하십시오.
Andrea Corbellini

나는했지만, AU는 6 개 이상의 문자로 따라서 주석을 변경해야합니다
MestreLion
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.