~에 따르면이 파일:
환경 변수 TERM에는 텍스트 창 기능의 식별자가 포함되어 있습니다. "infocmp" 명령과 "man 5 terminfo"를 참조로 사용하여 이러한 기능의 자세한 목록을 얻을 수 있습니다.
그런데 TERM
이 변수는 실제로 어떻게 사용되나요? 시스템이 실행 중이라고 가정합니다 xterm
(X Window 시스템용 터미널 에뮬레이터). 변수나 쉘을 xterm
사용해야 합니까 ? TERM
그렇다면 어떻게 해야 할까요? ? 로 설정하면 xterm
작동이 중지 됩니다.TERM
linux
TERM
또한 기본값을 다른 것으로 변경해도 xterm-256color
(예를 들어) 컬러 출력이 비활성화되지 않는 이유는 무엇입니까 xterm
?
답변1
이 TERM
변수는 터미널에서 실행되는 프로그램에서 사용됩니다. 프로그램이 출력을 처리하는 터미널(또는 에뮬레이터)의 기능을 결정할 수 있도록 해야 합니다. 에 기록되어 있어요ncurses
맨페이지.
와 같은 에뮬레이터를 포함한 터미널 자체는 값을 설정하는 것 외에는 xterm
값에 신경 쓰지 않습니다 TERM
(에뮬레이터의 경우 물리적 터미널에서는 동일하다고 말할 수 없습니다). 특정 출력 시퀀스로 무엇을 해야 할지 알고 있으며 TERM
내부 상태 외에는 다른 어떤 것도 신경 쓰지 않고 처리합니다. 터미널의 동작을 변경하지 않고도 쉘에서 원하는 것을 설정할 수 TERM
있으며 설정을 해제할 수도 있습니다. 우선 터미널은 TERM
무엇이 설정되었는지 전혀 모릅니다.
관심 있는 프로그램 TERM
은 일반적으로 관심 있는 출력 라이브러리를 사용하는 프로그램입니다.저주또는 더 기본적인 형태로 용어 모자또는용어 정보. 여기에는 줄 편집 기능(기록을 위아래로 이동할 때 줄을 삭제하는 기능)과 같이 terminfo를 사용하는 Bash 및 Zsh와 같은 셸이 포함됩니다. TERM
이는 터미널이 특정 작업(예: 커서 이동, 화면 지우기, 색상 변경)을 수행할 수 있는지 여부와 해당 작업을 수행하는 방법을 프로그램이나 라이브러리에 알려주는 기능 데이터베이스에 값을 매핑합니다 . grep
GNU 와 같은 일부 프로그램은경제성수표도 아닙니다.
TERM
xterm-256color
에서 로 변경해 xterm
도 크게 변경되지 않습니다. 특히 다음과 같은 내용을 인용하는 프로그램에서 색상 지원이 비활성화되지 않습니다 TERM
. xterm
색상 출력도 지원됩니다. 차이점은 지원되는 색상 수입니다.
바라보다키보드 입력과 텍스트 출력은 어떻게 작동합니까?,매뉴얼 페이지의 색상,어떤 터미널 유형을 사용합니까?,터미널은 어떤 프로토콜/표준을 사용합니까?더 알아보기.
답변2
하나 말할게요많은nCurses 프로그램(및 libtinfo 프로그램)은 TERM에 관심을 갖습니다.
한 가지 예는 htop
당시에는 종종 "부분적으로 가려진" 행을 제공했지만 TERM=xterm
당시에는 모든 것이 정상적으로 보였습니다 TERM=xterm-color
.
내 경험에 따르면 libtinfo를 사용하지 않는 프로그램(직접적으로든 간접적으로든, 예를 들어 nCurses를 통해)은 일반적으로 TERM을 전혀 신경 쓰지 않고 색상이나 커서 위치 지정 등을 지원한다고 가정합니다.