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 명령 하에서 실행할 때에는 표준 입력을 표시한다.

같이 보기[편집]

각주[편집]