원격에서 작업하다 보면 여러창을 보고 싶을때가 많지만, 따로 로그인 하기도 귀찮고, 여러창 왔다갔다 할때도 어느 터미널이 어느 기계인지 많아지면 관리가 안되죠 --; 이럴때 사용하면 편리한 것이 screen입니다. screen은 한 터미널 화면에서 여러 쉘과 프로그램을 띄울수 있으며, 또한 세션 관리 기능도 지원해서 터미널을 종료해도 나중에 다시 그 세션으로 복귀할수 있기 때문에 정말 편리합니다. 저는 이제 로컬에서도 screen을 애용하고 있네요. 먼저 시작은 % screen 또는 % screen -S 세션명 으로 시작하고, screen 실행후 모든 명령은 Ctrl-a로 시작합니다: 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을 제외한 나머지 숨기기 Ctrl-a, A: ~현재 창의 title을 수정 Ctrl-a, w: 창 리스트 보여주기 Ctrl-a, esc: Copy 모드로 전환. Copy 모드에서는 vi의 이동키로 이동을 할 수 있다. 커서 이동을 할 수 있고 특정 블럭을 복사하는 기능으로 사용한다. 먼저 시작 위치에서 space키를 누르고 끝 위치에서 space로 누르면 해당 사이가 buffer로 이동된다. Ctrl-a, ]: buffer의 내용을 stdin으로 쏟아 넣는다. 이 기능은 vi의 입력모드에서 사용하면 유용하다. 위 명령 정도를 알고있으면, 불편하지 않게 사용할수 있으며, detach 시 세션이 종료되는 것은 아니고 % screen -r 세션명 으로 그전 세션을 다시 불러들일수 있습니다. 여러 창을 쓴다는 장점도 있지만, 세션 관리가 되는것도 아주 큰 장점입니다. 세션이 여러개 있으면 screen -r 하면 세션명이 쭉 나오고 (-S로 지정하지 않았으면 자동으로 이름이 할당됩니다) 세션이 하나면 그 세션이 바로 불러들여지게 됩니다. 세션을 완전히 종료하기 위해서는 모든 창에서 빠져나오면(exit 등으로) screen을 빠져나옵니다. split으로 화면을 나누면, 나눠진 공간(region) 별로 다른 창으로 전환할 수 있습니다. 자세한 것은 man을 참고하세요. screen 목록 보여주기 $ screen -list 제 경험으로는 창을 4개 이상 뛰우는건 비효율적인거 같습니다. 2-3개가 가장 적당할듯.. 프로그래머인 경우 screen & vim의 사용을 적극 추천 저는 한쪽손으로만 치는게 불편해서 ctrl+o를 command key로 사용합니다. screen -e^Oo 라고 치면 ctrl+o를 command key로 사용할 수 있습니다. (혹은 쉘에 따라 screen "-e^Oo" ) 참고로 , ctrl + command key + ? => 간단한 help. :-) 간단한 팁 !!! screen 에서 스크롤 된 이전 내용을 보고 싶으면 ctrl+a esc로 카피 모드로 들어가면 됩니다.