터미널 * 출력 * 기록?


19

터미널에서 명령 기록을 탐색하는 기능을 광범위하게 사용합니다. 명령 출력 기록을 탐색하는 방법이 있는지 궁금합니다. (큰 histsize를 유지하고 pgup 키에 기대는 것 외에)

특정 상황에서 명령의 소스가 변경되므로 '명령을 다시 실행'할 수 없습니다. 나는 종종 이전 변경의 결과를 되돌아 볼 필요가있다.

해킹을 환영합니다.

감사!

2010 년 편집 :

나는 '티'에게 신용을 주었다. 세션을 다른 곳에 기록하는 모든 방법 중에서 가장 광범위하게 적용됩니다 (즉, gnu coreutils의 일부이며 작동하기 위해 특정 쉘 또는 유틸리티가 필요하지 않음). 그것은 내가 실제로 찾고있는 것이 아니었지만 그런 것이 실제로 존재하지 않는다는 것을 알고 있습니다.

내가 생각할 수있는 가장 가까운 근사치는 screen파일에 기록하는 (byobu / tmux) 와 같은 것을 사용하고 해당 로그 파일을 통해 페이지 / 검색에 사용자 정의 명령을 작성 (및 키 바인드)하는 less것입니다 (화면보다는 프롬프트로 페이징을 생각하십시오 ). 모두 감사합니다.

2012 년 편집 :

@Dustin Kirkland의 답변은 적어도 일반적으로 가장 좋습니다. 터미널의 스크롤 백 버퍼는 명령 출력 기록을 탐색하는 가장 방해가되지 않는 방법입니다. Byobu는 많은 기본 히스토리 라인을 저장 한 것으로 보이며 (10K; tmux에는 2K, GNU 화면 100), 정규식 검색이 가능합니다 (커서 모양은 GNU 화면에 스크롤 백 검색이없고 tmux에는 일반 텍스트 검색 만 있음).

답변:


4

byobu 사용을 언급했습니다 ...

그것은 분명히 그것을하는 한 가지 방법입니다. Byobu는 창당 또는 분 할당 (창) 10K 줄의 스크롤 백 기록을 저장합니다.

당신은 쉽게 스크롤 백 입력 할 수 눌러 Alt- PageUp, Alt- PageDown, 또는F7 . 스크롤 백 모드에 있으면 vi와 유사한 명령을 사용하여 앞뒤로 검색 할 수 있습니다. 사용 /regex앞으로 검색 및 ?regex역방향 검색 할 수 있습니다.


스크롤 백 기록은 어디에 저장되며 세션간에 유지되도록하는 방법이 있습니까? 즉 : Byobu로 터미널 열기, 일부 명령 실행, 호출 exit, 터미널 닫기, Byobu로 새 터미널 열기 및 이전 세션이 계속 있습니다.
Darrel Holt

11

tee명령 출력을 파일과 터미널에 동시에 보내는 데 사용할 수 있습니다 .


8

script터미널 세션을 파일에 기록 하는 데 사용할 수 있습니다 . 항상 이런 일이 일어나길 원한다면에 적절한 script명령을 추가 하십시오 .login.

$ man script


5

사용하다 screen -L

쉘 세션 ( exit명령)을 종료 한 후 시작한 동일한 디렉토리에 로그 파일이 나타납니다.screen

다음으로 출력을 볼 수 있습니다 more또는less -R


5

screen 로그 출력으로 설정할 수 있습니다.

실행중인 screen세션 내에서 시작하는 한 가지 방법 은 Ctrl- a을 누른 :다음을 입력하는 것 log입니다.

보낸 사람 man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

@ SQB : 나는 대답을 확장했습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

3

bash는 수행 한 내역을 유지하지만 명령의 출력은 유지하지 않습니다. 잠재적으로 거대 할 수 있으며 종종 유용하지 않습니다.

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