Screen 사용하기

지각생 연습장

출처 : http://mimosa.snu.ac.kr/~rommance/wikix/index.php?display=Linux%20Screen

http://linux.sarang.net/board/?p=list&table=tip&o[at]=s&o[sc]=r&o[no]=5673

원격에서 작업하다 보면 여러창을 보고 싶을때가 많지만, 따로 로그인 하기도 귀찮고, 여러창 왔다갔다 할때도 어느 터미널이 어느 기계인지 많아지면 관리가 안되죠 --; 이럴때 사용하면 편리한 것이 screen입니다.

screen은 한 터미널 화면에서 여러 쉘과 프로그램을 띄울수 있으며, 또한 세션 관리 기능도 지원해서 터미널을 종료해도 나중에 다시 그 세션으로 복귀할수 있기 때문에 정말 편리합니다. 저는 이제 로컬에서도 screen을 애용하고 있네요.

먼저 시작은

% screen

또는

% screen -S 세션명

으로 시작하고, screen 실행후 모든 명령은 Ctrl-a로 시작합니다:

  • Ctrl-a, c : (create) 새로운 쉘이 생기면서 그 쉘로 이동
  • Ctrl-a, a : 바로 전 창으로 이동
  • Ctrl-a, n : (next) 다음 창으로 이동
  • Ctrl-a, p : (previous) 이전 창으로 이동
  • Ctrl-a, 숫자 : 숫자에 해당하는 창으로 이동
  • Ctrl-a, d : (detach) screen 세션에서 빠져나옴
  • Ctrl-a, x : lock screen
  • Ctrl-a, S : (split) 창을 나눔 (region)
  • Ctrl-a, Tab : 다른 region으로 이동
  • Ctrl-a, Q : ~현재 region을 제외한 나머지 숨기기

위 명령 정도를 알고있으면, 불편하지 않게 사용할수 있으며,

detach 시 세션이 종료되는 것은 아니고

% screen -r 세션명

으로 그전 세션을 다시 불러들일수 있습니다. 여러 창을 쓴다는 장점도 있지만, 세션 관리가 되는것도 아주 큰 장점입니다. 세션이 여러개 있으면 screen -r 하면 세션명이 쭉 나오고 (-S로 지정하지 않았으면 자동으로 이름이 할당됩니다) 세션이 하나면 그 세션이 바로 불러들여지게 됩니다.

  • 세션을 완전히 종료하기 위해서는 모든 창에서 빠져나오면(exit 등으로) screen을 빠져나옵니다.
  • split으로 화면을 나누면, 나눠진 공간(region) 별로 다른 창으로 전환할 수 있습니다. 자세한 것은 man을 참고하세요.

프롬프트 상태에서 터미널을 종료 시킨 경우는 다음에 다시 터미널 띄워서 screen -r 세션명 으로 다시 작업을 개시할 수 있는데... 프롬프트 상태가 아니라 vi 등 작업을 하던중 그 프로그램을 종료하지 않은상태에서 터미널을 종료 시킨 경우엔 screen -r 세션명으로 돌아기지 않는군요.. 흘....

글쓴이: 서진 글쓴날: 2002-02-15 08:19:37 읽은수: 195 <+> screen -ls 하신다음 정확한 세션명을 적어보세요..~ screen -r 세션명

글쓴이: 나리 글쓴날: 2002-02-14 17:15:21 읽은수: 463 <+>

  • Ctrl-a, A: ~현재 창의 title을 수정
  • Ctrl-a, w: 창 리스트 보여주기
  • Ctrl-a, a: 이전창으로 이동
  • screen 목록 보여주기
$ screen -list
  • Ctrl-a, esc: Copy 모드로 전환. Copy 모드에서는 vi의 이동키로 이동을 할 수 있다. 커서 이동을 할 수 있고 특정 블럭을 복사하는 기능으로 사용한다. 먼저 시작 위치에서 space키를 누르고 끝 위치에서 space로 누르면 해당 사이가 buffer로 이동된다.
  • Ctrl-a, ]: buffer의 내용을 stdin으로 쏟아 넣는다. 이 기능은 vi의 입력모드에서 사용하면 유용하다.

제 경험으로는 창을 4개 이상 뛰우는건 비효율적인거 같습니다. 2-3개가 가장 적당할듯.. 프로그래머인 경우 screen & vim의 사용을 적극 추천

  • Ctrl-a, ': 창번호 또는 창이름으로 이동

커맨드 키 변경

저는 한쪽손으로만 치는게 불편해서 ctrl+o를 command key로 사용합니다.

screen -e^Oo 라고 치면 ctrl+o를 command key로 사용할 수 있습니다.

(혹은 쉘에 따라 screen "-e^Oo" )

참고로 , ctrl + command key + ? => 간단한 help. :-)

간단한 팁

  • screen 에서 스크롤 된 이전 내용을 보고 싶으면 ctrl+a esc로 카피 모드로 들어가면 됩니다.
개인 도구