실행중인 화면 세션에서 스크롤 백 버퍼를 늘리려면 어떻게합니까?


237

퍼티를 통해 상호 작용 하는 현재 실행중인 스크린 세션이 있다고 가정 해 보겠습니다. 스크롤 백 버퍼가 너무 작아서 새 화면 세션 시작 하지 않고 늘리고 싶다는 것을 깨달았습니다 .

이 방법이 있습니까?


누군가 새 세션을 시작할 스크롤 백 버퍼를 늘리려는 경우를 대비하여screen -h <numlines>
Scz

답변:


180

매뉴얼 페이지 는 입력하여 실행중인 세션에서 명령 행 모드를 입력 할 수 있다고 설명 Ctrl+ A, :다음 실행 scrollback <num>명령을 사용합니다.


4
현재 화면의 각 창마다 개별적으로 수행해야합니다.
Matthew Wilcoxson

2
어디 <num>에서 스크롤 백 라인의 수는
rakslice

기본 최대 버퍼에 더 많은 기록이 표시 scrollback <num>되지 않고로 설정 하면 더 이상 버퍼를 확장하는 데 도움이되지 않으므로 전체 기록 버퍼를 얻으려면 마지막 명령을 다시 실행해야합니다.
Kamil

362

을 누른 Ctrl-a다음 :입력

scrollback 10000

예를 들어 10000 라인 버퍼를 얻을 수 있습니다.

추가하여 기본 스크롤 백 라인 수를 설정할 수도 있습니다

defscrollback 10000

당신에 ~/.screenrc파일.

스크롤하려면 (터미널에서 기본적으로 허용하지 않는 경우)을 누른 Ctrl-a ESC다음 스크롤합니다 (일반적 Ctrl-f으로 다음 페이지 또는 Ctrl-a이전 페이지 또는 마우스 휠 / 두 손가락으로). 스크롤 모드를 종료하려면을 누르십시오 ESC.

다른 팁 : Ctrl-a i현재 버퍼 설정을 보여줍니다.


9
우분투 12.10에서 1024로 설정된 defscrollback의 힌트에 +1 (직장에서 사용해야 함).
erik

2
byobu-screen우분투 12.04은 10000에 defscrollback 설정하는 것에
chronospoon

4
screenrc에서 추가 용어를 열면 창을 열기 전에 defscrollback을 넣어야합니다. 그렇지 않으면 기본 1024를
갖습니다.

Mac에서는 작동하지 않습니다. startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc`를 넣으면 첫 번째 줄이 나오지만 두 번째 줄은 무시되는 것 같습니다.

9

'퍼티 세션'내에서 '스크린'세션을 시작할 때 최소한의 "기본"버퍼가 있습니다. 나는 내 작업에서 스크린을 많이 사용하므로 '스크린'세션 내에 '스크린'버퍼와 '퍼티'버퍼를 조합하지 않을 것이라고 말할 수 있습니다.

추가하여 스크롤 백 라인의 기본 번호를 설정 defscrollback 10000 하여에 ~/.screenrc파일은 올바른 솔루션입니다.

그건 그렇고, 나는 내 ./screenrc파일 에서 "defscrollback 200000"을 사용 합니다.


4

이미 언급했듯이 우리는 두 가지 방법이 있습니다!

 화면 당 (세션) 대화식 설정

그리고 대화식으로 완료되었습니다! 그리고 즉시 효력을 발휘하십시오!

CTRL + A다음에 :우리는 입력 scrollback 1000000과 히트ENTER

화면에서 분리했다가 다시 돌아옵니다! 항상 동일합니다.

또 다른 새 화면이 열립니다! 그리고 값이 다시 기본값으로 재설정됩니다! 글로벌 환경이 아닙니다!

 그리고 영구적 인 기본 설정

(집에서) 에 추가 defscrollback 1000000하여 수행.screenrc

defscrollback아님 scrollback(def는 기본값을 의미합니다)

당신이 알아야 할 것은 파일이 생성되지 않은 경우입니다! 당신은 그것을 만들 !

> cd ~ && vim .screenrc

그리고 당신 defscrollback 1000000은 그것에 추가 합니다!

또는 하나의 명령으로

> echo "defscrollback 1000000" >> .screenrc

(아직 만들지 않은 경우)

효과

기본값을 .screenrc!에 추가하면 다시 연결시 이미 실행중인 화면은 적용되지 않습니다! .screenrc화면 생성시 실행! 그리고 말이 되네요! 일반 콘솔 및 셸 실행과 마찬가지로!

그리고 새로 생성 된 모든 화면은 설정된 값을 갖습니다!

화면 유효 버퍼 크기 확인

유형 CTRL + A다음에 확인i

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

중요하게 버퍼 크기+ 부호 뒤의 숫자입니다
(그림에서 나는 그것을 000으로 설정했습니다)

대화식으로 변경할 때도 유의하십시오! 효과는 즉각적이며 기본값을 사용합니다!

스크롤

CTRL+ A이어서 ESC(복사 모드로 전환).

다음으로 이동 Up, Down또는PgUp PgDown

그리고 ESC다시 그 모드를 종료합니다.

(추가 정보 : 복사 ENTER를 선택하여 선택을 시작하십시오! ENTER다시 복사하십시오! 단순하고 멋진)

이제 버퍼가 더 큽니다!

그리고 그것은 중요한 세부 사항에 대한 요약입니다!


스크롤하는 방법의 단계를 아는 것이 좋습니다!
skytree

감사. CTRL + A 다음에 i
alphaGeek

3

경고 :이 값을 너무 높게 설정하면 시스템에 심각한 문제가 발생할 수 있습니다. 설정 한 값이 클수록 화면 세션을 시작할 때 화면 프로세스에 더 많은 가상 메모리가 할당됩니다. ~ / .screenrc를 "defscrollback 123456789"로 설정하고 화면을 시작할 때 화면 프로세스를 종료 할 수있는 시점 (16.6GB 사용)으로 돌아 가기 전에 전체 시스템이 10 분 동안 정지했습니다. 그때까지 VIRT mem의


-3

후손의 경우,이 답변은 Steven Lu가 지적한대로 잘못되었습니다. 그러나 원본은 그대로 둡니다.

원래 답변 :

웹 검색을 통해 도착한 사람들에게 (몇 년 후)

화면을 사용할 때, 스크롤 백 버퍼는 screen두 개의 이전 답변에서 언급 한 것처럼 스크롤 백 버퍼와 퍼티 스크롤 백 버퍼의 조합입니다.

퍼티 스크롤 백 버퍼와 화면 스크롤 백 버퍼를 모두 늘리고 있는지 확인하십시오. 그렇지 않으면 퍼티 창 자체로 스크롤하여 스크롤 백 기록을 볼 수 없습니다 screen(화면 내에서 스크롤하여 극복 ctrl+a->ctrl+u)

설정의 "창"범주에서 퍼티 스크롤 백 제한을 변경할 수 있습니다. exitOP가 요청한대로 퍼티 세션을 종료했다가 다시 열면 화면이 닫히지 않습니다 (퍼티 창을 닫고 입력하지 않은 경우 ).

화면의 스크롤 백 버퍼를 늘려도 문제가 해결되지 않는 이유를 파악하는 데 도움이되기를 바랍니다.


17
정확하지 않습니다. 화면 자체 버퍼를 유지합니다. 복사 모드를 사용하여 화면으로 위로 스크롤하면 화면이 저주를 통해 화면 자체 기록을 제공합니다. 스크린과 같은 터미널 멀티플렉서를 사용하는 경우 네이티브 터미널 에뮬레이터의 버퍼가 사용되지 않습니다 (실제로 부작용으로 가비지가 축적되거나 축적되지 않을 수 있음)
Steven Lu

좋은 지적, 그리고 당신이 맞다고 생각합니다 ... 내 대답을 삭제 해야하는지 궁금합니다.
Brad P.

잘 모르겠습니다. 그것은 또한 사람들이 좋아하는 내 의견을 제거합니다.
Steven Lu

3
하하, 그렇습니다. 나는 그것이 틀렸다는 것을 주목하기 위해 그것을 편집 할 것이라고 생각하지만, 원문은 그대로 둔다
Brad P.

2
감사합니다. 사람들이 혼동하지 않고 사이트에서 벗어날 수 있도록 이와 같은 사이트에 추가 변경 사항 만 남기는 것을 선호합니다.
Steven Lu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.