screen

승우위키

개요

screen은 Unix 계열 운영체제에서 터미널을 여러 개의 프로세스로 연결(multiplex)할 수 있게 해주는 명령어이다. screen 명령을 사용하면 현재 터미널을 프로세스 A에 붙였다가, 프로세스 B에 붙였다가 할 수 있다. 가상의 터미널을 여러 개 만든다고 생각하면 된다. 이런 가상의 터미널을 screen의 용어로 "session"라고 부르는 듯 하다.

screen 명령을 사용하지 않는 경우에는 터미널 환경에서 어떤 프로그램을 foreground 환경에서 실행시킨 경우, 해당 프로그램이 끝날 때까지 다른 프로그램을 이용할 수가 없다. screen 명령을 사용하면 어떤 프로그램 A를 실행시킨 후, 해당 프로세스로부터 detach 함으로써 다른 프로그램 B를 수행할 수 있다. 다시 프로그램 A의 출력을 보고 싶은 경우엔 프로그램 B로부터 detach하고 프로그램 A에 attach하여 프로그램 A의 출력 결과를 확인할 수 있다. 각각의 가상 터미널은 스크롤할 수 있는 버퍼를 가지고 있으므로 위로 스크롤하여 기존의 출력을 볼 수도 있다.


사용법

screen

새로운 session를 생성한다. 해당 session에 자동으로 attach된다. 해당 session에서 먼저 screen의 라이선스가 나온다.


screen -S name

새로운 session를 생성한다. 해당 session에 자동으로 attach된다. 해당 세션에 인간이 기억하기 편한 name을 부여할 수 있다.


Ctrl + a + c

새로운 session를 생성한다. 해당 session에 자동으로 attach된다. 해당 session에서는 먼저 쉘이 실행된다. create의 c라고 외우면 좋을 것 같다.


Ctrl + a + d

현재 session로부터 detach한다. detach의 d라고 외우면 좋을 것 같다.


screen -ls

현재 screen session을 리스트(list)한다.


screen -r name
screen -r <SCREENID>

특정된 session에 attach한다.


screen -r name -X quit
screen -r <SCREENID> -X quit

특정된 session을 끝낼 수 있다. -X 옵션은 뒤의 명령을 session에서 실행시키는 역할을 한다. session에 attach해서 직접 quit을 함으로써 끝내는 방법도 가능하다.


Ctrl + a + esc

스크롤 및 카피 모드로 진입힌다. 스크롤 모드에서는 위아래 화살표 또는 PgUp/PgDn 키로 스크롤할 수 있다. 참고로, GUI 환경에서 터미널을 사용하는 경우에는 마우스 휠로 스크롤하면 해당 session에 attach하기 전의 내용들이 위에 있으므로, 스크롤 모드에 진입하여 키보드로 스크롤을 해야만 해당 session에서의 출력 내용을 확인할 수 있다.