Windows - 터미널 색상이 이상하게 동작함

Windows - 터미널 색상이 이상하게 동작함

WSL Bash를 사용한 하이퍼 터미널

내 터미널이 표시하는 색상에 대해 한동안 이상한 현상이 발생했습니다. 위는 하이퍼 터미널 내부의 bash(Windows Linux 하위 시스템) 스크린샷입니다. 색상이 제대로 시작되는 것을 볼 수 있지만 이후에는 많은 권한 문제가 발생 ls하고 모든 것이 잘못됩니다. 그러면 회색 배경이 무기한으로 지속됩니다.

스크린샷은 없지만 VSCode 내의 Powershell 내부에서도 동일한 동작을 목격했기 때문에 이를 Hyper의 문제라고 말하기는 어렵습니다. 오류가 발생하거나 쉘이 어떤 이유로 색상을 표시해야 한다고 느끼면 모든 것이 엉망이 되는 것처럼 보입니다.

또한 나는 ls --color=auto운이 좋게도 시도했지만 동일한 결과가 나왔습니다.

이런 일이 발생하지 않도록 하는 Windows/bash/WSL 설정을 알고 있는 사람이 있나요?

편집: 이 강조 표시는 Windows 우분투의 Bash 설정 창에 있는 "기본값" 옵션에 설정된 기본 "화면 배경" 색상을 존중하지만 특정 명령이 호출된 경우에만 적용된다는 것을 발견했습니다(위 스크린샷처럼)? 나보다 더 잘 아는 사람이 이 말을 이해하는 걸까요?

여기에 이미지 설명을 입력하세요

답변1

이 문제를 해결하면서 WSL 설정의 기본 색상을 "화면 배경" 색상으로 설정하는 것이 해결책이라는 것을 알았습니다.검은색(#000). Scott의 답변에서 언급한 대로 원하는 색상으로 설정을 시도했지만 작동하지 않았습니다. WSL에서 나오는 모든 색상은 추가되는 것으로 보이므로 색상 변경이 타사 프로그램(Hyper, VSCode)의 배경색과 결합 및 충돌할 수 있습니다.

답변2

귀하의 업데이트로 상황이 명확해졌습니다. 일반적으로 프로그램은 터미널에 텍스트를 써서 터미널에 텍스트를 표시하도록 지시합니다. 덜 분명한 사실은 프로그램이 터미널에 표시되지 않는 문자를 써서 터미널에 다양한 다른 작업(예: 커서 이동 또는 화면의 일부 지우기)을 수행하도록 명령할 수 있다는 것입니다. 작업을 수행하는 몇 가지 개별 문자가 있습니다(예: 왼쪽으로 이동하는 백스페이스 및 캐리지 리턴, 오른쪽으로 이동하는 Tab). 그러나 일반적으로 이는 문자 시퀀스이며 거의 항상 Escape로 시작하므로 "이스케이프 시퀀스"라고 알려져 있습니다. 1970년대와 1980년대 당시에는터미널은 하드웨어 제품이었습니다, 모든 공급업체는 자신만의 이스케이프 시퀀스를 선택했고 이는 혼란스러웠습니다. 시간이 지남에 따라,표준이 발전했다.

이스케이프 시퀀스의 흥미로운 그룹 중 하나는그래픽 변환 선택(SGR)통제하는 가족어떻게표시 가능한 텍스트가 표시됩니다. 여기에는 굵게, 기울임꼴, 밑줄 및 색상과 같은 속성이 포함됩니다. 일반적으로 기본 스타일이 아닌 다른 스타일로 텍스트를 표시한 후 프로그램은 터미널을 기본 표시 구성표로 되돌리려고 시도합니다. 전환할 이스케이프 시퀀스가 ​​있습니다.끄다 볼드체, 이탤릭체 및 밑줄체는 해당 속성을 활성화하는 속성만큼 광범위하게 지원되지 않습니다. 검정색 배경에 흰색 전경으로 색상을 설정하는 이스케이프 시퀀스가 ​​있지만 사용자가 다른 기본 구성표를 선호할 수 있으므로 이는 좋지 않습니다. 따라서 색상을 사용하는 프로그램은 일반적으로 재설정 시퀀스를 전송하여 종료되며 속성에 지정된 대로 터미널을 기본 디스플레이 구성표로 전환합니다.

TL;DR 그런 프로그램은 pwd단지 텍스트를 표시할 뿐입니다. 텍스트만 표시할 뿐입니다. 텍스트를 색상으로 표시하는 프로그램은 터미널을 기본 색상으로 재설정하여 종료되며, 다른 프로그램이 이스케이프 시퀀스를 작성하여 다시 변경할 때까지 계속 적용됩니다.

이것은 질문을 남깁니다: 왜 터미널은시작흰색 바탕에 검정색 모드인가요? 아마도 초기화 파일( .profile, .bashrc등) 중 하나에 해당 색상을 명시적으로 설정하는 내용이 있을 수 있습니다.

해결 방법은 기본 속성을 원하는 대로 변경하는 것입니다(예: 검정색 배경에 흰색 텍스트). 적절한 대화 상자를 찾은 것 같습니다. 화면 배경색을 검은색으로 변경하고 "확인"을 클릭하세요.

관련 정보