Screen command 사용법(Linux, Mac)

CianJS
6 min readDec 25, 2017

--

으음.. 사용법을 올리려했던 시각보다 조금 늦어졌지만.. 번역을 완료(?)했으니 사용법에 대해서 이야기를 시작합니다!

오늘 제가 여러분들에게 알려드릴 것은 바로 Screen이라는 것입니다. screen command는 mac, linux와 같은 unix 운영체제에서 작동합니다. mac/linux의 애호가들은 마음 단단히 먹으십시오! screen은 정말 유용한 기능입니다. screen을 배우면 당신은 매일 이 기능을 사용할것이라고 장담합니다. 가장 먼저 screen에 대한 기초부터 시작하도록하죠. 그럼 우리는 몇 가지의 예제를 볼 것입니다. 시작하시죠!

screen command란?

screen은 여러 프로세스(일반적으로 대화식 shell을 가리킴)간의 물리적 터미널을 다중화하는 전체 화면 창 관리자입니다. 각 가상 터미널은 DEC VT100 터미널의 기능과 ISO 6429 (ECMA 48, ANSI X3.64) 및 ISO 2022 표준 (예 : 라인 삽입 / 삭제 및 다중 문자 세트 지원)의 여러 제어 기능을 제공합니다.

자.. 무슨 소리인지 모르겠지요? 이를 좀 더 설명을 해보자면, screen program은 터미널 세션을 끊고나서도 다시 사용했었던 터미널 세션에 접속할 수 있다는 것입니다. 이는 일반적인 터미널에서는 활용할 수 없습니다. 하지만 screen에서는 세션을 끊고나서도 원래 사용하고 있던 세션에서 시작된 프로세스는 계속 실행되고 관리되어있다는 것입니다.
예를 든다면, 당신이 어떤 프로그램을 돌리는데에 1시간이 걸립니다. 하지만 당신은 다른 작업을 해야하는데 1시간동안 기다릴 수는 없잖습니까? 그럴때에 이 screen을 이용한다면, 편리합니다.
screen terminal을 이용해 1시간짜리 프로그램을 돌려놓고 세션을 끊고 다른 작업을 하다가 다시 세션을 끊어놓은 곳으로 돌아갈 수 있다는 것입니다.

어떻게 screen command를 설치하나요?

screen command는 기본적으로 linux시스템과 mac os x에 설치되어 있습니다. 하지만, 리눅스 시스템의 일부는 기본적으로 screen이 설치되어 있지않을 수도 있습니다. 그래서 당신이 가장 먼저 apt-get 명령어를 사용하여 설치합니다. 아래의 명령어를 확인해주세요. 간혹 sudo가 필요한 경우도 있습니다.

apt-get install screen

언제 screen command를 사용하나요?

이것은 screen command의 사용법을 알기전에 매우 흥미로운 부분입니다. 명령을 아는 것은 효과적이고 효율적으로 작업을 수행하기 위해 적용을 하지 않으면 도움이 되지 않습니다. 그래서 제가 무슨 이야기를 하려는 것인가. 대부분의 경우는 screen command가 도움을 줄 수 있습니다. 여기 제 목록입니다. 그런데 만약 screen을 사용중이고 screen command가 아래의 목록에서 나오지 않은경우 제가 말한 아래의 comments은 잊지마세요.

  1. 싱글 터미널에만 접속할 수 있을때, 여러분들은 screen을 사용해서 싱글 터미널에서 여러 터미널을 만들 수 있고, 여러 screen 세션에서 다른 명령들을 실행할 수 있게 합니다.
  2. 다른 작업을 위해 터미널을 사용하는 동안에 프로세스를 계속 실행시키기 위해 Daemon으로 하지 않으려는 경우(언제든지 당신이 원하는 스크린 세션에 연결하여 어떤일이 일어나고 있는지 확인할 수 있음)
  3. 원한다면 커맨드(screen command)에 비밀번호를 걸어놓을 수 있습니다. 즉, 해당 세션을 잠군다는 것입니다.
  4. 다른 사용자들과의 사이에 세션을 공유하려고 할때, 이것을 다중 유저 세션이라고 합니다.

어떻게 screen command를 사용하나요?

좋아요. 이 순간을 기다려왔겠죠. 어떻게 사용하나(웃음)? 이것이 우리가 하려는 것입니다. 나는 여러분께 기본을 가르쳐줄 것이다.
만약 관심이 있다면 screen command에 대해 더 자세히 알 수 있을겁니다. 이제 손을 움직여 볼까요?
나의 말은 screen command 사용을 시작하자라는 것입니다. 당신이 mac이라면 ctrl키 대신에 command 키를 사용해야 한다는 것에 유의하십시오.(웃음)

새로운 Screen session을 만들자

screen # 기본 세션 생성하기screen -S name # 생성할 세션의 이름. 이름은 다시 세션에 연결(attach)할때 사용됩니다.

당신이 사용할 이름을 입력하지 않으면 [pid.]tty[.host]의 형식을 사용해 screen session의 이름을 지정합니다. pid는 screen session에 연결(attach)할때 사용됩니다.

screen session 끊기(Detach)

Ctrl-a d # 현재 screen 세션을 끊습니다.screen -d SCREENID # 다른 터미널에서 screen 명령을 실행할때, 원격 분리(remote detach)

screen sessions 목록 확인

screen -ls # 기존의 screen sessions들의 모든 목록을 보여줍니다.

screen session에 재연결

screen -r # 기본 세션에 연결합니다. 이 명령어는 screen session이 하나일때만 작동합니다.screen -r <SCREENID> # 특정 screen session에 연결screen -r name # 특정 세션에 연결(screen 세션을 만드는 동안 지정된 고유의 이름)

연결을 끊은 screen session 죽이기

screen -X -S SCREENID quitscreen -S SCREENID -X quit

Screen session 로그

screen -L # -L screen에 화면에 로그가 자동 출력되도록 알립니다.

출력한 것은 screenlog.n file에 저장되고, 여기서n은 숫자입니다. 그 파일은 아래의 명령을 사용해 볼 수 있습니다. 당신은 Ctrl-a + H를 사용하여 screenlog.n file에 로그를 저장할 수도 있습니다. 한번 더 Ctrl-a + H를 눌러 종료하십시오.
-L 옵션을 통해 screen 로그파일의 이름을 정할 수 있습니까?
라고 물으신다면 그 답은 Yes입니다.

less -r /home/dasunhegoda/screenlog.0cat /home/dasunhegoda/screenlog.0

screen session Lock걸기

CTRL-a x # screen session안에 있을때 screen session을 잠금니다.

Tips & Tricks

screen에서 스크롤하는 방법

screen에 있을때에는 command line에 있을때처럼 스크롤할 수 없다.
스크롤을 하려면 아래의 방법을 따라야합니다.

Step 1

CTRL-a Esc

Step 2

‘Up’ and ‘Down’의 키를 눌르거나 ‘Page Up’과 ‘Page Down’키를 통해 스크롤하세요.

Step 3

스크롤 모드에서 나오시려면 ‘Esc’키를 누릅니다.(copy mode).

Screen Key bindings

아래의 명령어로 screen key에 바인딩된 것을 모두 보여줍니다. 중요한 내용은 아니니 참고만 해주셔도 좋을 것 같습니다 ㅎㅎ

CTRL-a ?

해당 포스트의 출처 : http://dasunhegoda.com/unix-screen-command/263/
막연히 번역한것이기 때문에 자세한 내용은 위의 링크를 참조부탁드립니다!

--

--

CianJS

영어랑 영문서 자유롭게 듣고 읽고 싶다..