ANSI/색상 시퀀스를 흑백 터미널로 보내는 Linux 9 명령

ANSI/색상 시퀀스를 흑백 터미널로 보내는 Linux 9 명령

Rocky Linux 9에서 Wyse50 터미널 에뮬레이션을 사용하고 있습니다. 매뉴얼 페이지, 도움말 화면 등은 시스템이 터미널 에뮬레이터가 이해하지 못하는 속성과 색상 코드를 출력하기 때문에 사용할 수 없습니다. 예를 들어 man cp다음과 같습니다.

1mSYNOPSIS0mm
       1mcp 22m[4mOPTION24m]... [4m-T24m] 4mSOURCE24m 4mDEST0mm
       1mcp 22m[4mOPTION24m]... 4mSOURCE24m... 4mDIRECTORY0mm
       1mcp 22m[4mOPTION24m]... 4m-t24m 4mDIRECTORY24m 4mSOURCE24m...m  m

1mDESCRIPTION0mm

최신 terminfo 패키지를 업데이트하고 Linux 4에서 최신 wy50과 wy50 사이에 infocmp를 수행했는데 모든 것이 잘 작동합니다.

profile, bash_profile, bashrc 또는 .bashrc에 색상 매개변수를 설정하는 항목이 표시되지 않습니다.

내가 무엇을 놓치고 있나요? (지난 세기에 속하는 레거시 애플리케이션 제외)

답변1

나는 이러한 행동을 거짓으로 규정한 Thomas Dickey의 견해에 반대합니다.

나는 다른 곳에서 내 이유를 자세히 설명했습니다.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312935

즉, Wyse 50, 최신 터미널 에뮬레이터 및 *ix 커널 콘솔 장치는 Teletype 시스템용 에뮬레이터가 아닙니다.

groff 1.24의 경우 grotty를 terminfo 응용 프로그램으로 만들어 터미널 기능에 더욱 지능적으로 적응할 수 있도록 하고 싶습니다.

그러나 이렇게 하더라도 오늘날 사용되는 대부분의 터미널 에뮬레이터는 이를 수행할 수 없기 때문에 Teletype Corporation Model 37을 안정적으로 에뮬레이트할 수 없습니다.

GROFF_NO_SGR 환경 변수를 설정할 수도 있습니다.

답변2

이것은 그로브의 것입니다.하드코딩된기본 동작(ncurses 및 terminfo는 관련되지 않음) 이것은 도입된 버그 기능입니다.2002년 2월(데비안 참조#257413). 해결 방법으로 환경 변수를 GROFF_NO_SGRnull이 아닌 값으로 설정할 수 있습니다.

(아마도 접하지 않을) 거의 모든 비디오 터미널은 일련의 문자, 백스페이스, 강제 입력(밑줄 또는 동일한 문자 이상)과 같은 작업을 수행합니다. 비디오 단말기가 아니고 프린터임에도 불구하고 ASR 33으로 잘못 설명되는 경우가 있습니다.둘 다, 틀림없이).

추가 자료:

답변3

일반적으로 Linux 배포판이나 기타 Unix 시스템에서 직렬 포트나 이에 상응하는 의사 터미널(예: ssh또는 telnet세션)을 사용할 때 해당 프로그램의 출력은 어떤 유형도 사용하지 않고 있는 그대로 터미널에 직접 전송됩니다. Linux 커널이나 다른 곳에서 터미널 형식 이스케이프 시퀀스를 위한 변환 계층입니다.

TERM많은 프로그램은 종종 및 같은 라이브러리의 도움을 받아 환경 변수 설정에 따라 결정된 사용 중인 터미널에 대한 적절한 출력을 생성하려고 시도 terminfo하지만 termcap그렇지 않은 프로그램은 그렇지 않습니다. 실행하면 터미널에서 부적절한 탈출을 수신하게 됩니다. 프로그램이 그렇지 않고 사용자가 가지고 있지 않은 터미널 유형을 요구하고 부적절한 이스케이프 시퀀스를 출력하는 경우 시퀀스를 실행합니다.

관련 정보