본문 바로가기

TECH DOC

SCREEN v1.0

Screen

 

Date

Ver

Etc.

12.03.12

1.0

 

 

 

 

 

 

 

 

 

1.    Screen

웹 브라우저의 탭과 마찬가지로, 이와 동일한 경험을 GNU screen 이라는 command line 을 통해 제공한다.

 

GNU Screen 은 몇 개의 상호 작용이 가능한 shell instances 를 같은 윈도우에 매니징 하는 것을 가능케한다.

키보드 숏컷을 이용하여, shell instance 의 변경, 다른 shell 에 직접 접근하는 것이 가능하며 새로운 인스턴스를 만들거나 종료하는 것도 가능하다.

 

또 세션을 다른 사람과 공유하는 것도 가능하다.

 

그밖에 .screenrc 라는 환경파일 ( user home directory 에 존재 ) 을 통해 status bar session 의 이름을 표시한다던가의 편의 제공도 가능하다.

 

2.    Installing

(In root user)

# yum install screen

 

3.    Shortcuts

먼저 screen 을 사용할 유저의 home directory .screenrc 파일을 만들어 아래의 내용을 넣는다.

이는 screen 을 위한 환경값이며 사용자 구미대로 구성이 가능하다.

hardstatus alwayslastline

hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}] '

# Default screens

screen -t shell1        0

( 위 프리셋은 ‘A guide to GNU Screen’ 에서 가지고 왔다. url 은 글 말미의 REF 를 참조 )

 

아래의 명령어를 사용하기에 앞서 기본적으로 Ctrl + a 가 선행된다.

또 유념할 것은 아래의 Shortcuts 은 대소문자를 구별한다.

 

l  0 ~ 9 – 윈도우를 변경

l  Ctrl + n – 변경가능한 다음 윈도우로 변경

l  Backspace – 변경가능한 이전 윈도우로 변경

l  Ctral + a – 마지막 사용하던 윈도우로 변경

l  A – 윈도우 세션 이름을 변경

l  K – 윈도우 세션을 정리 ( ctrl + d 와 동일 효과 )

l  c – 새로운 윈도우를 생성

l  [ - 다음에 방향키 상이나 하를 누름

 

더 자세한 shortcuts man screen 을 확인한다.

 

4.    Create / Remove Windows

윈도우는 화면의 작업영역을 의미하며, 이를 확장하고 축소하고 분할하고 병합할 수 있다.

이와 관련된 명령어는 다음과같다.

 

l  Ctrl + a c : 새로운 윈도우를 만듦

l  Ctrl + a d : 윈도우를 닫는다. 마지막 윈도우인 경우 shell instance 가 종료된다.

l  Ctrl + a [number]

 

3번의 환경을 쓴다고 했을 때 세션을 추가할 때 마다 screen status bar 에 정보가 추가된다.

 

Ctrl + a c

[ ocp ][                       0-$ shell1  (1*$ bash)                       ][2012-03-12 19:06 ]

 

Ctrl + a c

[ ocp ][                  0$ shell1  1-$ bash  (2*$ bash)                   ][2012-03-12 19:06 ]

 

Ctrl + a c

[ ocp ][              0$ shell1  1$ bash  2-$ bash  (3*$ bash)              ][2012-03-12 19:07 ]

 

현재 바라보고 있는 윈도우는 (window_name) 이다.

윈도우의 이름은 ctral + a A 로 현재 윈도우에 대해 이름을 셋팅할 수 있다.

 

ctrl + a A

Set window's title to: hello

[ ocp ][              0$ shell1  1$ bash  2-$ bash  (3*$ bash)              ][2012-03-12 19:10 ]

 

[ ocp ][             0$ shell1  1$ bash  2-$ bash  (3*$ hello)              ][2012-03-12 19:11 ]

 

윈도우의 선택은 ctrl + a (window number) 로 선택 가능하다.

ctrl + a 0

[ ocp ][             (0*$ shell1)  1$ bash  2$ bash  3-$ hello              ][2012-03-12 19:12 ]

 

윈도우를 닫는건 ctrl + d 로 닫을 수 있으며 현재 선택되어 있는 윈도우를 닫는다. 마지막 윈도우를 닫는 경우 screen instance 가 종료된다.

 

5.     Split a Window

윈도우를 새 창에 생성하는 것 외에도 한 윈도우를 분할하여 사용할 수 있다.

/*+ 분할 한 윈도우를 재 접속시에도 유지하는 방법에 대해 알아보기 */

아래의 명령은 Split 과 관련해 사용할 수 있는 shortcuts 이다.

 

l  Ctrl + a S : 수직 분할

l  Ctrl + a | : 수평 분할 ( screen 4.0 이 패치 된 Debian / Ubuntu 가 필요함 )

l  Ctrl + a :resize : 분할된 크기 조정 ( 현재 select 되어 있는 윈도 기준 )

l  Ctrl + a :remove : 분할된 윈도우를 삭제 ( 현재 select 되어 있는 윈도 기준 )

 

shortcuts 을 이용해 다음과 같이 윈도우를 만들 수 있다.

 

 

6.     Sharing a session with others

/*+ 추가 조사가 필요한 부분… */

 

7.     References

A.     A guide to GNU Screen | http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

B.     Pixelbeat.org | http://www.pixelbeat.org/lkdb/screen.html