live-f1의 출력을 파일에 쓰는 방법 실행되는 동안에는 “Enter”키만 사용할

터미널을 열고 live-f1을 실행하여 매 초마다 바뀌는 터미널 (텍스트)에 라이브 피드를 표시합니다. 이 프로그램이 실행되는 동안에는 “Enter”키만 사용할 수 있습니다 (해당 프로그램을 종료합니다). 따라서 콘솔에 다른 것을 입력 할 수 없습니다.

매 초마다 터미널 내용을 파일에 쓰고 싶습니다.

어떻게하니?

두 번째 콘솔을 열고 명령을 사용하여?

setterm -dump 명령으로 작동시킬 수 없습니다.



답변

live-f1top또는 처럼 터미널 제어 문자 (ncurses)를 사용하여 새 데이터로 화면을 다시 그 mtr립니다. 따라서 파일 또는 비 터미널 장치로 리디렉션 할 때이 정크가 모두 표시됩니다.

불행히도 live-f1통계 등을 위해 데이터를 저장하고 나중에 추출하기에 적합한 출력을 얻는 옵션을 제공하지 않습니다. 나중에 재생할 수 있도록 출력을 저장하려면을 사용할 수 있습니다 script.

live-f1을 기록하고 typescript와 timingfile이라는 두 파일을 만듭니다.

script -c live-f1 -t 2> timingfile

이것은 출력을 재생합니다

scriptreplay timingfile

답변

출력을 파일로 캡처하는 데 사용할 수있는 몇 가지 방법이 있습니다.

script

이것은 서브 쉘을 생성하고 모든 출력을 그 안에 넣습니다. 그래서 할 script당신이 원하는대로 다음, 다음, exit당신의 서브 쉘을 종료하고 출력은 “타이프 라이터”라는 파일에있을 것입니다

tee

모든 파이프를 다른 곳으로 에코 할 수 있습니다. 따라서 tee표준 출력을 파일로 분리 할 수 있습니다 .

$ mycommand | tee myoutput

표준 오류를 캡처해야하는 경우 리디렉션하십시오.

$ mycommand 2>&1 | tee myoutput

답변

다음과 같이 프로그램을 실행하는 방법은 다음과 같습니다.

program > /path/to/file

출력 program/path/to/file즉시 재 지정합니다 .

그리고 출력을 터미널에 저장하고 파일로 저장하려면. 확인 리디렉션 출력 bash는 방법이 있나요 아직도이 표준 출력으로 이동했다?


답변

로깅 기능 과 함께 GNU 화면을 사용할 수 있습니다 . 이
명령을 사용하면 출력을 디스크로 플러시하는 빈도를 제어 할 수 있습니다. 스크린 사용자 설명서에서 :logfile flush secs

— 명령 : logfile flush secs

로그 파일의 이름을 정의합니다. 기본값은 ‘screenlog. % n’입니다. 두 번째 형식은 로그 파일 버퍼를 파일 시스템으로 플러시하기 전에 화면이 대기하는 시간 (초)을 변경합니다. 기본값은 10 초입니다.