screen command 정리

2008/01/08 13:58

아무리 GUI시대라 해도 터미널 작업은 피할 수 없다. 우리팀이 대부분 SecureCRT를 쓰길래 한번 써봤지만 역시 putty를 버릴 수가 없다. 가장 큰 이유는 최대 SccureCRT의 화면 column 제한. 와이드 모니터가 널린 시기에 최대 column 제한이라니 쩝쩝. 암튼 그래서 putty를 계속 써야 하는데 SecureCRT에 비해 아쉬운 점은 tab기능의 부재. 이를 대신할 만한게 screen이 있다. 아니.. 익숙해지면 tab보다 편하다. vi 같이 키보드로 콘트롤이 가능하고 화면 split도 지원한다.(최근에는 screen 버전은 vertical split 기능도 추가되었다) 거기다 detach 기능까지.. 짝짝짝.
암튼 이것저것 많이 알아봐야 익숙해지는데 시간도 걸리고 하니 정말 필요한 것만 정리해봤다.

참고 URL: Screen User's Manual

설정파일

홈디렉토리의 .screenrc

기본적인 내용

C-a 는 Ctrl+a 를 의미한다.
C-a a는 Ctrl+a 누르고 난 후에 a만 누르는 것을 의미한다.
Command를 쓰려면
  • C-a :(콜론) 누르고 난 다음에 Command를 입력하여 실행한다
  • .screerc에 다음과 같이 key binding을 해준다.
    bind '[character]' [Command]
    그리고 screen 실행 후 C-a [character]로 실행한다

detach, attach

$screen -ls
쉘에서 위 명령을 실행하면 현재 실행중인 screen의 세션을 sid.pts.server 형식으로 보여준다 Attached라고 나온건 현재 터미널이 열려져 있는 상태이고 Detached라고 나온건 터미널이 종료되었고 screen 만 떠있는 상태라고 말할 수 있다. Attached라고 나온 세션을 Detached로 바꾸는 옵션이 -d와 -D이다. 두 옵션의 차이는 -D의 경우 detach되면서 screen만 빠져 나오는게 아니고 logout까지 한다는 점이다.
$screen -d sid.pts.server
$screen -D sid.pts.server
detach된 세션을 다시 attach하려면(그러니까 터미널이 닫힌 스크린을 다시 열고 싶으면) 다음과 같이 -r 옵션을 사용한다.
$screen -r sid.pts.server


Default Key Bindings


기본적인 명령어


  1. C-a c: create new window
  2. C-a d: detach
  3. C-a l: redisplay
  4. C-a A: 창 타이틀 변경
    기본값을 변경하고 싶다면 .screenrc 파일에 shelltitle을 수정해준다. 환경변수를 사용할 수 있으며 예를 들어 서버명으로 하고 싶다면 다음과 같이 해주면 된다.
    shelltitle $HOSTNAME
    Screen user manual을 보면 Dynamic title에서 prompt 명령어로 타이틀 동적으로 바꾸는 방법이 나오는데 잘 안된다. -_-
  5. C-a r: toggle line wrap

창 전환

  1. C-a n: next window
  2. C-a p: previous window
  3. C-a 0..9: switch to window number 0..9
  4. C-a C-a(콘트롤 누르고 a 두번 연타): toggle to the window displayed previously

창 분할

  1. C-a S: split the current region
  2. C-a Tab: move the input focus to the next region
  3. C-a X: kill the current region

스크롤백, 복사 및 붙여넣기

스크롤백 사이즈 설정: defscrollback num, 기본값 100
  1. C-a [, C-a ESC: enter to copy/scrollback mode
    1. h,j,k,l: move cursor
    2. spacebar: 블록을 시작하고, 블록이 잡힌 상태에서는 블록을 해제하면서 paste buffer에 저장한다
    3. ESC: copy/scrollback mode에서 나온다
  2. C-a ]: paste
Creative Commons License
Creative Commons License