/usr/bin/script에서 모든 터미널 세션을 시작합니다.

/usr/bin/script에서 모든 터미널 세션을 시작합니다.

나는 터미널 세션의 모든 입력과 출력을 기록하는 데 약간의 디스크 공간을 사용하고 싶습니다 /usr/bin/script. 모든 새 셸 세션(현재 사용 중인 세션 /bin/bash) 을 script이름으로 파일에 기록하는 세션에서 시작 하고 싶습니다.~/.log/$(date --iso-8601=second).log

script.bashrc 파일 끝에서 호출을 시도했지만 돌이켜보면 기본적으로 충돌이 발생하고 새 셸을 열 수 없습니다.

그러한 기록을 보관할 수 있는 가능한 방법에 대한 아이디어가 있습니까? 나는 이미 하나 가지고 있습니다"영원한 카니발의 역사"하지만 입력 내용을 아는 것만으로는 항상 충분하지 않습니다.

답변1

나는 그것을 rcfile의 맨 아래에 두는 것이 많은 일을 할 것이라고 생각하지 않습니다. script새 쉘이 로드되면 미리 선언한 모든 상태는 다음까지 지워질 것입니다.그것rcfile 등을 영원히 로드하려고 합니다. 방금 터미널에서 다음과 같이 실행했습니다.

$ x=;bash --rcfile /dev/fd/3 3<<\$x
    export S_LOG=~/".log/$(date --iso-8601=second).log"
    exec   script -aeqfc "bash   --rcfile /dev/fd/3 -i" "$S_LOG" \
3<<""
    alias success='echo it worked'
    PS1='script $ '
    exec 3<&-

$x
script $ success
it worked
script $ cat "$S_LOG"
Script started on Mon Dec 14 15:43:28 2015
script $ success
it worked
script $ cat "$S_LOG"
script $

그러니까 넣어두는 게 좋을 것 같아머리rc 파일을 선택한 다음 exec나머지 부분을 읽을 새 쉘뒤쪽에새 쉘이라고 부르는 지점입니다.

관련 정보