현재 터미널 스크롤 백을 파일로 저장 하시겠습니까?


24

나는 이것에 대한 답을 찾고 있었고 그것이 불가능하다고 생각하는 것을 찾지 못했습니다 ...

현재 그놈 터미널 스크롤 백 버퍼를 파일에 저장할 수 있습니까?

command > output.txt모든 출력을 파일로 리디렉션하거나 command | tee output.txt출력을 터미널뿐만 아니라 파일 로 분할하는 것과 같은 작업을 수행 할 수 있다는 것을 알고 있습니다. 내가하려고하는 것은 사실 후에 이것을 포착하는 것입니다. 현재 터미널 탭의 스크롤 백 내용을 파일에 저장하고 싶습니다.


kitty이 작업을 수행 할 수 불행히도 글꼴이 끔찍한 (어떤 서브 픽셀 렌더링을) 봐 하나 개의 터미널 프로그램입니다
jberryman

감사합니다, @jberryman. 알아 둘만 한.
Karl Wilbur

답변:


37

조금 놀아 본 후에 나는 당신이 할 수 있음을 발견했습니다.

  • triple-click 마지막 줄
  • 히트 shift + home
  • shift + click 첫째 줄
  • 로 복사 ctrl + shift + c(또는 right-click> '복사')

이제 텍스트 파일에 붙여 넣습니다 ... 또는 xsel새 탭을 열고 다음을 수행하여 클립 보드를 새 파일로 넣을 수 있습니다.

xsel -o > out.txt

(설치하려면 xselsudo apt-get install xsel)


5
강조 표시는보다 쉽게 ​​수행 할 수 있습니다 Edit.-> Select All.
egmont

3
당신이 사용할 수있는 깨닫게 원인 이것은 훌륭한 대답 triple-click the last line하고 shift + home or the scrollbar당신은 출력의 시작 부분에 대해 원하는 정확한 위치로 이동합니다.
Chef Pharaoh

2
경고 : X를 중단시킬 수 있으므로 큰 스콜 백 (많은 메가 바이트)으로 시도하지 마십시오.
케빈 콕스

메가 바이트가 많으면 처리 속도가 느려질 것으로 예상됩니다. 인내심을 갖고 컴퓨터를 작동 시키십시오. "두 번째로 줘! 우주로 간다! 우주에서 돌아올 수있는 시간을 줄 수 있니?"
Karl Wilbur

방금 Edit-> Select All방법을 사용 하여 출력을 캡처하기 위해 큰 스크롤 백 (2TB 드라이브를 밤새 백업 한 rsync 출력)을 복사하려고했습니다 . 지금 25-30 분이 지났고 그놈 터미널은 여전히 ​​잠겨 있습니다. Byobu를 사용하여 topGnome Terminal이 여전히 실행 중인지 확인할 수있었습니다 (CPU 시간 증가). 현재 4.176g 이상의 RAM을 사용하고 천천히 등반합니다. 예, 매우 큰 스크롤 백으로 시간이 좀 걸릴 것입니다. X는 여전히 실행 중이지만 Chrome, YouTube, Nautilus, Byobu 등은 그놈 터미널에 1 분이 걸립니다. 더 잘 계획 했어야했는데
Karl Wilbur

2

script명령은 터미널 세션을 파일에 저장하고 나중에 표시하려는 경우에 적합합니다. 호출 script하면 쉘이 시작되고 완료되면 exit를 입력하십시오. typescript달리 지정하지 않으면 모든 것이 파일 에 저장됩니다.

예를 들어

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit
Script done, file is typescript
xieerqi@eagle:~$ cat typescript 
Script started on 2015年10月27日 星期二 11时37分55秒

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit

Script done on 2015年10月27日 星期二 11时38分18秒

typescript 파일에 제어 문자가있을 수 있습니다 (예 : lscomand 등). cat typescript | col -b > outputfile.txt명령을 사용 하여 깨끗한 출력을 파일로 리디렉션하십시오.


5
감사합니다. 그러나 터미널에서 중요한 정보를 수집 하기 전에 수행 해야 할 작업 입니다. 사후 해결책이 필요했습니다.
Karl Wilbur

1
그래도 이것은 매우 좋습니다. 나는 앞으로 그것을 기회를 줄 것이다.
Karl Wilbur

@KarlWilbur :) 당신이 유용하다고 확신합니다. 프로그래밍 숙제에 많이 사용합니다. 실제로 TTY 콘솔에서 화면에 내용을 덤프하는 방법이 있지만 그놈 터미널은 좀 더 까다 롭습니다.
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy 나는 이것을 python 스크립트로 구현하려고 시도하지만 "os.system ("exit ")를 사용하여 스크립트를 종료 할 수는 없지만 터미널에서 종료하고 출력을 파일에 저장한다
mtkilic

@mtkilic이 script명령은 별도의 프로세스를 시작하므로 하위 프로세스의 부모 인 Python 스크립트가 자식이 종료되기를 기다리고 있습니다. 대화 형 세션에 더 적합하지만 Python 인터프리터에서 세션을 기록하려면 script먼저 명령을 시작하고 인터프리터를 두 번째로 시작하십시오 . 이 명령에는 또한 -c플래그 가 있어야 호출 할 수 script -c python있지만로 다시 확인하십시오 man script.
Sergiy Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.