Linux/Linux Shell Command

screen - 리눅스 가상 터미널

드로니뚜벅이 2023. 8. 15. 16:03

Linux에서 독립적으로 동작하는 가상 터미널을 띄워주는 것을 의미합니다. 즉, 백그라운드로 동작하는 가상 터미널입니다.

 

스크린에서 명령어를 실행시키고 터미널을 꺼도, 명령어가 백그라운드로 계속 돌아갑니다. 명령어를 실행시킨 뒤 터미널을 종료하고, 나중에 screen 명령을 이용해서 다시 접속하면 해당 터미널 그대로 작업을 이어갈 수 있습니다.

 

리눅스 설치 시 기본으로 설치되지 않기 때문에 사용하기 위해서는 별도로 설치해 주어야 합니다.

$ sudo apt install screen

실행: screen [스크린이름] - 스크린이름을 지정하지 않으면 임의로 생성함

$ screen

 

screen 내부 명령어
<Ctrl+a, d> : 현재 스크린으로부터 탈출(Deattach). (스크린은 꺼지지 않고 여전히 동작 중)
<Ctrl+a, c> : 스크린에서 새창 띄우기
<Ctrl+a, 숫자> : 해당 번호의 스크린으로 이동
<Ctrl+a, n> : 다음 창으로 이동 (Ctrl+a, space와 동일)
<Ctrl+a, p> : 이전 창으로 이동 (Ctrl+a, Backspace와 동일) 

 

환경설정

처음 screen을 쓰면, 기본 터미널과 같은 화면이 나오기 때문에 몇번째 스크린인지 알기 어렵습니다. 그래서 홈 디렉터리에. screenrc 파일을 만들고 환경설정을 하면 screen을 보다 쉽게 사용할 수 있습니다.

설정파일(.screenrc) 생성

$ vim ~/.screenrc

screen 설정

ck 5000
vbell off
defscrollback 10000
termcapinfo xterm* ti@:te@
startup_message off
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n*%t%{-}%+w %= %c ${USER}@%H"
bindkey -k k1 select 0
bindkey -k k2 select 1
bindkey -k k3 select 2

 

자주 사용하는 옵션

옵션 설명
screen -S [스크린 이름] screen에 이름을 지정하여 진입합니다.
screen -R [스크린 이름] screen이 존재한다면 다시 진입(Reattach)하고, screen이 없다면 해당 스크린 이름을 만들어서 진입합니다.
screen -ls (screen -list) 현재 존재하는 스크린 리스트를 출력합니다.
screen -x [스크린 이름] 실행 중인 스크린에 다시 진입(Reattach)합니다. (-R 옵션은 Single display mode, -x 옵션은 Multi display mode입니다. 즉, -R옵션은 해당 스크린에 여러 명이 들어가도 서로 무슨 명령을 치는지 모르지만, -x 옵션은 해당 스크린에 여러명이 들어가도 마치 한 화면처럼 움직여, 상대방이 무슨 명령어를 치는지까지 다 볼 수 있습니다)
screen -S [스크린 이름] -X quit 해당 스크린을 종료합니다(해당 스크린 삭제됨). [스크린이름] 대신 스크린 번호를 써도 됩니다. 혹은 사용하고 있는 스크린에서 모든 창을 exit으로 꺼버려도 해당 스크린은 종료됩니다.

 

 

참고사이트