때때로 터미널 화면이 어수선해져서 man ls
매뉴얼 페이지를 읽거나 위쪽 화살표를 눌러 기록의 이전 명령으로 이동하면 화면에 잘못된 위치에 문자가 표시됩니다. (예를 들어 화면 끝 부분이 화면 중앙 어딘가에 있다고 생각하세요.)
명령을 reset
시도했지만 작동하지 않았습니다. 한 가지 가능한 방법은 로그아웃하거나 창을 닫은 다음 먼저 크기를 조정한 다음 실행하는 것입니다 ssh
(또는 탭을 닫고 창 크기를 조정한 다음 새 탭을 열어 새 셸을 가져오는 것).
하지만 이 경우 가상 머신 콘솔 시작 등 이전에 수행한 모든 작업이 손실됩니다. 그렇다면 셸을 닫지 않으면 이 문제를 해결할 수 있는 방법이 없을까요?
(이는 이전에 Fedora 내부에서 발생했으며 ssh
RHEL 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