어수선한 터미널 화면 문제를 해결하는 방법은 무엇입니까? (보통 크기를 조정한 후)

어수선한 터미널 화면 문제를 해결하는 방법은 무엇입니까? (보통 크기를 조정한 후)

때때로 터미널 화면이 어수선해져서 man ls매뉴얼 페이지를 읽거나 위쪽 화살표를 눌러 기록의 이전 명령으로 이동하면 화면에 잘못된 위치에 문자가 표시됩니다. (예를 들어 화면 끝 부분이 화면 중앙 어딘가에 있다고 생각하세요.)

명령을 reset시도했지만 작동하지 않았습니다. 한 가지 가능한 방법은 로그아웃하거나 창을 닫은 다음 먼저 크기를 조정한 다음 실행하는 것입니다 ssh(또는 탭을 닫고 창 크기를 조정한 다음 새 탭을 열어 새 셸을 가져오는 것).

하지만 이 경우 가상 머신 콘솔 시작 등 이전에 수행한 모든 작업이 손실됩니다. 그렇다면 셸을 닫지 않으면 이 문제를 해결할 수 있는 방법이 없을까요?

(이는 이전에 Fedora 내부에서 발생했으며 sshRHEL 5.4 상자의 Macbook에서도 발생했습니다.)

고쳐 쓰다:이제 Fedora에서 어떤 일이 일어났는지 기억납니다. 터미널을 열고 가상 머신의 콘솔(셸)을 사용하기 위해 FreeVM을 만들었습니다. 80 x 25였던 것 같은데, 잠시 후 터미널 크기를 약 130 x 50으로 조정했는데 (가상 머신의) "내부 셸"이 이상하게 동작하기 시작했습니다.

답변1

Bash를 사용하는 경우 세션에서 "checkwinsize" 옵션이 활성화되어 있는지 확인하세요.

shopt | grep checkwinsize

당신이 얻지 못하면

checkwinsize    on

그런 다음 활성화하세요

shopt -s checkwinsize

Bash 문서에서는 "checkwinsize" 속성을 설명합니다.

"설정된 경우 Bash는 각 명령 후에 창 크기를 확인하고 필요한 경우 LINES 및 COLUMNS 값을 업데이트합니다."

checkwinsize이 설정이 마음 에 들면 ~/.bashrc.

  • 활성화:shopt -s checkwinsize
  • 장애를 입히다:shopt -u checkwinsize

답변2

Ctrl+를 시도해 볼 수 있습니다 L. 프로그램에 따라 터미널 화면을 지우거나 다시 그립니다.

답변3

SIGWINCH나는 같은 문제가 있었고 위의 방법 중 어느 것도 나에게 효과가 없었습니다. 왜냐하면 내 bash가 상위 프로세스에 의해 포착된 신호를 받지 못했다고 믿었기 때문입니다 .

마침내 해결책을 찾았습니다. 나는 내 항목에 다음을 추가했습니다 .bashrc.

export PROMPT_COMMAND="resize &>/dev/null ; $PROMPT_COMMAND"

이제 새로운 메시지가 나타날 때마다 창 크기가 조정됩니다.

감사해요영국 원숭이PROMPT_COMMAND가 개선되었습니다.

답변4

docker exec에 이러한 옵션을 추가하면 내 문제가 해결되는 것 같았습니다.

-e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM

관련 정보