모든 터미널 세션을 자동으로 기록하는 방법은 무엇입니까?

모든 터미널 세션을 자동으로 기록하는 방법은 무엇입니까?

나는 history, , 및 script같은 도구를 사용하여 일반적인 일반 관리 목적으로 xterm(예: / ) 세션을 asciinema기록하고 검토 하고 때로는 학습 도구로 전체 연구/검토를 위해 사용하는 것을 좋아합니다.bashsh

  • $SHELL해당 도구 및/또는 명령에 대한 직접 경로로 기본값을 설정하는 것을 고려했습니다 . 예를 들면 다음과 같습니다.

    • /bin/script transcript.log;
    • /bin/asciinema rec -w0.5 term_log.json;
  • 그러나 이러한 도구는 기본 $SHELL설정(예: /bin/bash, /bin/sh, /bin/zsh등)에 의존하는 경우가 많습니다.

  • 또한 시스템 변수(예: 등)를 재정의하거나 $SHELL구성 ( ) 및 도트( / ) 파일 $TERM과 함께 작동하도록 만들려고 하면 온갖 종류의 허점과 잠재적인 문제로 가득 차 있을 것 같습니다.*.conf~/.bashrc~/.bash_profile

  • 그러나 내가 몇 분을 원한다고 결정하거나 깨달을 때마다 그 일은 사실 이후에 발생했거나 재미있는 부분을 절반 정도 진행했거나 유사한 시나리오였습니다.

모든 것을 자동으로 기록하도록(바람직하게는 (해당되는 경우) 등) 이와 같은 것을 설정하는 올바른 모범 사례는 무엇 stdin입니까 ?stdoutstderr

답변1

.bash_profile비슷한 것이 귀하의 또는 다음에서 .bashrc귀하에게 도움이 될 수 있습니다 .

if test -t 0 -a -t 1 -a -z "$SCRIPTING"
then
    export SCRIPTING="$HOME/.script.$(date +%Y%m%d_%H%M%S).$$)"
    exec script "$SCRIPTING"
fi

관련 정보