[unix] 터미널 화면이 엉망이되는 문제를 해결하는 방법은 무엇입니까? (보통 크기 조정 후)

때때로 터미널 화면이 엉망이되어 man ls맨 페이지를 읽거나 위쪽 화살표를 눌러 기록의 이전 명령으로 이동하면 화면에 문자가 제대로 표시되지 않습니다. (예를 들어, 화면의 끝을 화면 중앙의 일부로 취급하십시오).

명령 reset이 시도되었지만 작동하지 않습니다. 작동하는 한 가지 방법은 창에서 로그 아웃하거나 창을 닫고 창 크기를 조정 한 다음 수행하십시오 ssh(또는 해당 탭을 닫고 창 크기를 조정 한 다음 새 탭을 열어 새 쉘을 가져 오는 것).

그러나이 방법으로 가상 머신 콘솔 시작 등과 같이 이전에 수행 한 모든 작업을 잃게됩니다. 따라서 쉘을 닫지 않으면이 문제를 해결할 방법이 있습니까?

(이것은 Fedora 바로 앞에서, 그리고 sshRHEL 5.4 박스에 들어있는 Macbook에서도 발생했습니다 ).

업데이트 : Fedora에서 어떻게 발생했는지 기억합니다. 터미널을 열고 FreeVM을 사용하여 가상 머신 (쉘) 콘솔을 사용했습니다. 나는 그것이 80 x 25 크기라고 생각하고 잠시 후에 터미널의 크기를 대략 130 x 50으로 조정 한 다음 (VM의 “내부 셸”)이 이상하게 행동하기 시작했습니다.



답변

bash를 사용하는 경우 세션에서 “checkwinsize”옵션이 활성화되어 있는지 확인하십시오.

shopt | grep checkwinsize

당신이 얻지 못하면

checkwinsize    on

그런 다음

shopt -s checkwinsize

배쉬 문서는 “checkwinsize”속성에 대해 말한다 :

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

설정이 마음에 들면에서를 활성화 할 수 checkwinsize있습니다 ~/.bashrc.

  • 활성화하려면 : shopt -s checkwinsize
  • 비활성화하려면 : shopt -u checkwinsize

답변

Ctrl+ 시도해보십시오 L. 프로그램에 따라 터미널 화면을 지우거나 다시 그립니다.


답변

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

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


답변

나는 같은 문제가 있었고 위의 요리법 중 어느 것도 나를 위해 효과가 없었습니다 SIGWINCH.

마침내 해결책을 찾았습니다. 나는 내 추가했다 .bashrc:

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

이제 새 프롬프트가 표시 될 때마다 내 창이 다시 조정됩니다.

PROMPT_COMMAND 개선을위한 UKmonkey 에 감사합니다 .


답변

나는 단지 Arcadien이 이미 언급 한 것에 추가하고 싶었습니다. checkwinsize 활성화는 트릭을 수행하지만 나에게 필요한 것은 창 크기를 재설정하여 제대로 작동하는 것이 었습니다. 나는 checkwinsize가 이것을 제거하기위한 것이지만 여전히 가치가 있다고 생각합니다. 이 옵션을 게시하면 창 크기를 변경하거나 최대화 및 최대화를 시도하십시오.


답변

macOS에서 zsh를 사용하여 때때로 동일한 문제에 직면합니다. 간단한 reset명령 호출은 터미널을 원하는대로 다시 설정합니다.


답변

난 당신과 같은 문제를했고 이것이 내가 한 일이다 :
나는이 .profile내 모든 변경을 할 경우 즉, 그래서 내 사용자의 설정을.

에 대해 알 수없는 패키지 xterm가 있습니다 . 그러나 설치 권한이 없으므로 소스에서 로컬 설치를 수행했습니다. 링크 : http://invisible-island.net/xterm/#downloadapt-getyum

./configure --prefix=/the/path/you/want/to/install/to
make
make install

내 프로필에서 경로를 내보내고 같은 위치에서 호출했습니다.

export PATH=$PATH:/the/path/you/want/to/install/to
resize

이제 로그인 할 때마다 터미널 크기가 크기 조정에 따라 설정됩니다.