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


75

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

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

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

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

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


어떤 터미널 에뮬레이터를 사용하고 있습니까? reset문제가 해결되지 않으면 소리가 나지 않습니다.
jordanm

Fedora 내부의 터미널 프로그램과 Mac OS X Lion의 기본 터미널 프로그램
nopole

Fedora
nopole

3
마법 주문은 ^Jreset^J여기서 ^J가압 수단 ctrl-J. 또는 (그래픽 터미널에서) Reset버튼을 사용해 볼 수 있습니다 . 또한 일부 프로그램은 터미널 크기가 그 아래에서 변경되거나 (예, 고대 소프트웨어가 활성화되어 발 차기) 터미널이 너무 작아지면 잘못 작동 할 준비가되지 않았습니다.
vonbrand 2016 년

1
내 문제는 bash가 프롬프트에 색상 코드가 있기 때문에 프롬프트 길이를 잘못 계산하여 발생했습니다. 이스케이프 문자 \ [및 \]가 누락되었습니다. unix.stackexchange.com/questions/105958/…
qneill

답변:


93

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

shopt | grep checkwinsize

당신이 얻지 못하면

checkwinsize    on

그런 다음

shopt -s checkwinsize

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

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

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

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

6
이것은 내 문제를 해결하는 데 발생하지는 않지만 좋은 일반적인 대답이므로 어쨌든 +1입니다. 내 문제는 Linux 서버에 ssh-ing 할 때 Windows 에뮬레이션 (?)과 관련이 있다고 생각합니다.
geneorama

처음에는 화살표를 사용하여 기록을 볼 때 작동하지 않는 것처럼 보였지만 첫 번째 실행 명령 직후 모든 것이 수정되었습니다. 내 경우에는 종결자를 사용합니다. 감사합니다 +1
kstenger

이것은 나를 위해 일했지만 checkwinsize를 해제 해야합니다. 어떤 이유로 내 창 (picocom 세션 포함)이 훨씬 더 길어도 각 명령 후에 LINES = 24가 설정되었습니다.
Michael

19

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


3
그러나 문제를 영구적으로 해결하지는 못합니다.
nopole

내 생각은 CTRL L을 누르면 잠시 동안 라인이
정상

11

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

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

1
당신은 5 년 전에 그 질문을 한 사람입니까?
Archemar

3
"docker"는 "5 년 전"에는 맞지 않습니다. 도커 아직 2013년 1월 ;-)에 출시되지 않은
jplandrain

8

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

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

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

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

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


2
나는 개인적으로 export PROMPT_COMMAND="resize &>/dev/null; $PROMPT_COMMAND"이전 프롬프트 명령이 유지되도록 할 것입니다
UKMonkey

필요할 때 수동으로 크기 조정을 실행합니다. 콘솔 크기를 조사하면 속도가 느려질 수 있습니다. 모든 명령을 수행하면 과도한 것으로 보이며 일반적으로 크기가 조정 된 시점을 알고 있습니다.
콘래드 마이어

6

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


1
믿거 나 말거나, 이것이 내 것이 고치기 위해 필요한 전부였습니다. 내가 먼저 다른 모든 것을 시도했기 때문에 재미있다.
taranaki

4

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


그래서 OP reset는 그들을 위해 작동하지 않았다고 언급 했고, 이것이 실제로 문제의 핵심이었습니다 ....
Stephen Rauch

OP는 Linux 맛에서 작동하지 않는다고 언급했습니다. 나는 MacOS Sierra에서 문제에 직면 reset하여이 경우에 일했습니다. MacOS에서 동일한 문제에 직면하고 reset명령 에 대해 모르는 사람을 돕기 위해이 답변을 추가했습니다 .
nonocut

resetUbuntu 16.04가 설치된 Windows Putty에서 작동합니다!
musbach

재설정은 우분투 16.04 zsh에서 작동
A.Wan

2

난 당신과 같은 문제를했고 이것이 내가 한 일이다 :
나는이 .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

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


0

글쎄, 그것은 일반적인 문제이며 간단한 해결책이 있어야합니다.

Ctrl + A Ctrl + L과 같은 다른 측정 값이 작동하지 않으면 stty다음을 사용하십시오 .

  1. Ctrl + T : 로컬 셸을 사용하여 새 탭을 엽니 다.
    또는 : 화면을 종료하고 (Ctrl + AD를 분리) SSH 세션에서 로그 아웃하십시오.
  2. stty -a | grep rows: 행과 열 수를 가져옵니다.
    예:speed 38400 baud; rows 33; columns 133; line = 0;
  3. 원격 탭으로 돌아가거나 로그인 한 후 다시 연결하십시오. stty출력 달라야한다.
    예:speed 38400 baud; rows 47; columns 177; line = 0;
  4. 에 입력 stty rows N하고 stty columns N여기서 n은 (화면의 외부) "진짜"숫자입니다. 예:$ stty rows 33; stty columns 133

Terminator 를 사용하는 경우 맨 앞의 열과 행 수를 표시하므로 처음 세 단계를 건너 뛸 수 있습니다.

이를 위해 터미널 창의 크기를 조정할 필요는 없습니다. 관리자는 일반적으로 다른 컴퓨터에서 로그인하며 연결된 모니터의 크기 (해상도)가 다른 경우 최대화 된 창의 크기는 컴퓨터마다 다릅니다. 실제로 이것을 자주 접 하지 않는 것이 오히려 어렵습니다 .

결과적으로 일부 매뉴얼 페이지가 제대로 표시되지 않습니다. 호출기를 사용하는 것은 거의 모든 것입니다. 예를 들어 처음 몇 줄이 종종 누락됩니다. 그리고 잘못 정렬 된 터미널에서 VIM을 사용할 생각조차하지 마십시오. 대체하기 위해 3 행 (V)을 강조 표시하려고하지만 대체 할 때 강조 표시된 텍스트는 다른 행의 텍스트입니다.


0

시도하십시오 stty sane. 필요한 것을해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.