gnu 화면으로 디스플레이에 인쇄 된 내용을 저장하는 방법이 있습니까?


9

예를 들어 무언가를 업그레이드하고 업그레이드가 어떻게 진행되는지 등을 읽을 때와 같이 명령 줄에서 수행하는 모든 작업을 저장하고 싶습니다.

일반적으로 Mac OSX 및 터미널에서는 원하는만큼 뒤로 스크롤하고 Cmd-S로 저장할 수 있습니다. 그러나 gnu 화면을 사용하여 SSH를 사용하는 경우 터미널에서 직접 뒤로 스크롤 할 수 없습니다.

스크린 세션에서 발생하는 모든 것을 디스크에 저장하려면 어떻게해야합니까? 아마도 기본적으로 (모든 세션이 자동으로 디스크에 파일을 생성합니다 ...)

감사!

답변:


7

에 로깅 기능이 screen있습니다. 시작할 때 시작 screen수행하여 screen -L(또는 내에서 screen). 또는 내 screen에서 Ctrl-를 누를 수도 a : H있습니다.

기본값으로 로그온하려면 ~/.screenrc파일에 다음 줄을 추가 하십시오.

deflog on

다음과 같은 방법으로 파일 이름을 설정할 수 있습니다.

logfile /tmp/screenlog.%n

1
일반적으로 재부팅시 (예 : 정전으로 인해) 정리되므로 / tmp에 저장하지 않아야합니다.
maxelost

@ maxelost : 고려해야 할 사항입니다. 그러나 그것은 단지 예일뿐입니다. 기본 동작은 현재 디렉토리에 로그 파일을 작성하는 것이기 때문에 요점은 절대 디렉토리를 포함하는 것입니다. 또한 screen세션 (분리 된 세션도)은 재부팅 후에도 지속되지 않습니다.
추후 공지가있을 때까지 일시 중지되었습니다.


2

옵션 1 : 스크립트 명령을 살펴보십시오. "man script"

"스크립트는 터미널에 인쇄 된 모든 내용을 타이프 스크립트로 만듭니다. 나중에 lpr을 사용하여 타이프 스크립트 파일을 인쇄 할 수 있으므로 과제 증명으로 대화 형 세션의 하드 카피 레코드가 필요한 학생들에게 유용합니다."

기본적으로 "script"(따옴표 제외)를 입력하십시오. 작업을 수행하고 세션을 종료하려면 exit를 한 번 입력하십시오.

옵션 2 : 화면의 "하드 카피"모드를 사용하십시오. 'Crtl-a'다음 'h'현재 세션을 파일에 저장합니다.

참고 : GNU Screen에는 스크롤 기능이 있습니다. 'crtl-]'(오른쪽 대괄호)을 사용하여 복사 모드로 들어간 다음 'ctrl-b'및 'ctrl-f'를 사용하여 한 번에 p를 페이지 아래로 이동하십시오.


1

일반적으로에 바인딩 된 'log'작업을 사용하려고합니다 Ctrl-a H. screenlog라는 새 파일이 열립니다. N 여기서 N 은 창 번호입니다. 파일이 존재하면 출력이 파일에 추가됩니다. 해당 창의 모든 출력이 화면 로그에 기록됩니다. 다시 눌러 비활성화 할 때까지 N 파일 Ctrl-a H. 로이 기능을 얻을 수도 있습니다 Ctrl-a :log. logfile {filename}명령을 사용하여 이름을 변경할 수 있습니다 . 파일은 화면이 처음 시작된 디렉토리에 배치되지만 logfile 명령 또는을 사용하여 변경할 수 있습니다 chdir [{directory}].

이것은 하드 카피 또는 스크롤 버퍼와 동일하지 않습니다. 이는 script (1) 프로그램과 동일한 기능이지만 새 프로그램을 호출하지 않고 단일 창에 연결됩니다.

스크롤 버퍼의 전체 내용을 저장하려면 다음을 사용 Ctrl-a ] g <space> G <space> Ctrl-a :writebuf 하십시오. 스크롤 버퍼를 파일 / tmp / screen-exchange에 저장합니다. 일부만 저장하려면 'g'와 'G'를 다른 이동 키로 변경하십시오.

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