script (유닉스)
script 명령어는 터미널 세션을 기록하는 유닉스 유틸리티이다.[1] scriptreplay 명령어는 script에 리플레이 기능을 제공한다.[2] 이 세션은 기본적으로 typescript라는 파일 이름으로 포착된다. 다른 파일 이름을 지정하려면 script 명령어 뒤에 공백을 두고 다음과 같이 파일 이름을 지정하면 된다: script recorded_session
.
ttyrec 프로그램은 동일한 종류의 기능 외에 다른 몇 가지 바인딩을 제공한다.
기록된 셸 세션들은 온라인 서비스들을 사용하여 공유할 수 있다.[3] 일반적인 스크린캐스트로부터 이러한 형태로 기록된 세션을 사용할 때의 이점은 셸 명령들을 쉽게 플레이어 스크린에서 복사해서 붙여넣을 수 있다는 것이다.
script 명령어의 대안
[편집]script 명령어의 문제점들 가운데 하나는 자식 프로세스의 로깅만을 허용한다는 것이다. 또, 새로운 프로세스를 스폰(spawn)하지 않고 현재의 프로세스의 명령을 로깅해야 할 수 있는데, 이를테면 자체 출력을 기록할 수 있는 스크립트의 자동화가 필요한 시점을 들 수 있다. 유닉스 운영 체제는 파이프와 리다이렉트를 사용하여 이를 가능케 한다. 다음의 예들을 고려할 수 있다:
본 셸
[편집]본 셸과 관련되는 모든 셸(sh, bash, ksh)들은 stdout과 stderr이 지명 파이프에 부착되도록 할 수 있으며 tee 명령어로 리다이렉트가 가능하게 할 수 있다.
예
LOGNAME="script"
rm -f $LOGNAME.p $LOGNAME.log
mknod $LOGNAME.p p
tee <$LOGNAME.p $LOGNAME.log &
exec >$LOGNAME.p 2>&1
위의 스크립트는 script.log에 "exec" 명령의 모든 출력을 기록한다. 그러나 동일한 상호작용 프로그램(예: 파이썬)들은 결과 셸 아래에 있을 때 표준 입력을 표시하지 않지만 script 명령 하에서 실행할 때에는 표준 입력을 표시한다.
같이 보기
[편집]각주
[편집]- ↑ http://www.freebsd.org/cgi/man.cgi?query=script
- ↑ “LinuxInsight - Replaying terminal sessions with scriptreplay”. 2016년 4월 21일에 원본 문서에서 보존된 문서. 2017년 11월 11일에 확인함.
- ↑ The instructions at this link no longer work due to the demise of the shelr.tv service. OMG! Ubuntu! - How To Record And Share Terminal Screencasts Quickly Archived 2017년 7월 19일 - 웨이백 머신
이 글은 소프트웨어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |