TERM 변수는 무엇을 사용하나요?

TERM 변수는 무엇을 사용하나요?

~에 따르면이 파일:

환경 변수 TERM에는 텍스트 창 기능의 식별자가 포함되어 있습니다. "infocmp" 명령과 "man 5 terminfo"를 참조로 사용하여 이러한 기능의 자세한 목록을 얻을 수 있습니다.

그런데 TERM이 변수는 실제로 어떻게 사용되나요? 시스템이 실행 중이라고 가정합니다 xterm(X Window 시스템용 터미널 에뮬레이터). 변수나 쉘을 xterm사용해야 합니까 ? TERM그렇다면 어떻게 해야 할까요? ? 로 설정하면 xterm작동이 중지 됩니다.TERMlinux

TERM또한 기본값을 다른 것으로 변경해도 xterm-256color(예를 들어) 컬러 출력이 비활성화되지 않는 이유는 무엇입니까 xterm?

답변1

TERM변수는 터미널에서 실행되는 프로그램에서 사용됩니다. 프로그램이 출력을 처리하는 터미널(또는 에뮬레이터)의 기능을 결정할 수 있도록 해야 합니다. 에 기록되어 있어요ncurses맨페이지.

와 같은 에뮬레이터를 포함한 터미널 자체는 값을 설정하는 것 외에는 xterm값에 신경 쓰지 않습니다 TERM(에뮬레이터의 경우 물리적 터미널에서는 동일하다고 말할 수 없습니다). 특정 출력 시퀀스로 무엇을 해야 할지 알고 있으며 TERM내부 상태 외에는 다른 어떤 것도 신경 쓰지 않고 처리합니다. 터미널의 동작을 변경하지 않고도 쉘에서 원하는 것을 설정할 수 TERM있으며 설정을 해제할 수도 있습니다. 우선 터미널은 TERM무엇이 설정되었는지 전혀 모릅니다.

관심 있는 프로그램 TERM은 일반적으로 관심 있는 출력 라이브러리를 사용하는 프로그램입니다.저주또는 더 기본적인 형태로 용어 모자또는용어 정보. 여기에는 줄 편집 기능(기록을 위아래로 이동할 때 줄을 삭제하는 기능)과 같이 terminfo를 사용하는 Bash 및 Zsh와 같은 셸이 포함됩니다. TERM이는 터미널이 특정 작업(예: 커서 이동, 화면 지우기, 색상 변경)을 수행할 수 있는지 여부와 해당 작업을 수행하는 방법을 프로그램이나 라이브러리에 알려주는 기능 데이터베이스에 값을 매핑합니다 . grepGNU 와 같은 일부 프로그램은경제성수표도 아닙니다.

TERMxterm-256color에서 로 변경해 xterm도 크게 변경되지 않습니다. 특히 다음과 같은 내용을 인용하는 프로그램에서 색상 지원이 비활성화되지 않습니다 TERM. xterm색상 출력도 지원됩니다. 차이점은 지원되는 색상 수입니다.

바라보다키보드 입력과 텍스트 출력은 어떻게 작동합니까?,매뉴얼 페이지의 색상,어떤 터미널 유형을 사용합니까?,터미널은 어떤 프로토콜/표준을 사용합니까?더 알아보기.

답변2

하나 말할게요많은nCurses 프로그램(및 libtinfo 프로그램)은 TERM에 관심을 갖습니다.

한 가지 예는 htop당시에는 종종 "부분적으로 가려진" 행을 제공했지만 TERM=xterm당시에는 모든 것이 정상적으로 보였습니다 TERM=xterm-color.

내 경험에 따르면 libtinfo를 사용하지 않는 프로그램(직접적으로든 간접적으로든, 예를 들어 nCurses를 통해)은 일반적으로 TERM을 전혀 신경 쓰지 않고 색상이나 커서 위치 지정 등을 지원한다고 가정합니다.

관련 정보