Unix계열인 맥에서도 screen이란 다중 윈도우를 지원하는 터미널 유틸리티이다.
느린 터미널에서 출력이 많을 경우나 잠시 작업을 터미널에서 떨어뜨려 놓을때 유용한 프로그램이다. iTerm을 사용해서 자주 사용하지 않게 되긴 했지만 여전히 가끔은 유용한 경우가 있다.

그런데 사용을 해 보면 몇가지 팁을 적어둔다.

1. UTF-8 한글 입출력 설정
매뉴얼을 보면 .screenrc 에 defutf8 on 을 하면 된다고 하지만 잘 되지 않더라. 그래서 왜 그런지 이유는 잘 모르겠으나 screen시작시 '-U' 옵션을 주면 된다. 그게 결국 위의 옵션을 지정한 것과 같은것인데 왜 실행인수로는 잘 되고 환경설정파일에서는 안되는지...

2. 상태표시줄 설정.
.screenrc에 몇가지 설정을 하면 상태 표시줄을 표시해서 몇변째 스크린인지 표시되게 하면 편리하다.

defhstatus "<^En-^Et> ^EW [^EM/^Ed(^ED) ^Ec]"
hardstatus lastline

대략 이렇게 하면 된다. ^En 은 현재 창번호를 ^Et는 현재 창 타이틀을 ^EW 는 나머지 창들에 대해서 표시한다.

3. 화면 스크롤 사이즈 조절
.screenrc에 아래 내용을 설정하면 스크롤사이즈를 1000라인으로 설정하게 된다.

defscrollback 1000

스크롤이 무엇이냐 하면 스크린 내용을 마우스를 사용하지 않고 내부 버퍼에 들었던 내용을 스크롤 할 수 있게 하는 것이다. Ctrrl-a [ 을 하면 그때부터 copy mode이다. 이 상태에서 vi식의 단축키로 돌아다닐 수 있다. 그러다가 space를 눌러서 일정 영역을 선택한 후 다시 space를 누르면 내부 버퍼에 복사가 된다. 그 내용을 붙여넣기 하고 싶으면 Ctrl-a ] 하면 된다. 이동중에 빠져나오려면 Esc Esc하면 된다.

4. 스크린의 공유
screen실행시 '-x' 옵션을 이용하면 같은 사용자가 스크린을 두 터미널 창에서 동시에 나타나게 혹은 다른 사용자가 접속해 볼 수 있다.
다른 사용자가 접속해서 보게 하려면 조금 더 설정이 필요하다.
먼저 screen 실행파일에 SetUID 퍼미션을 준 상태이어야 한다.
그리고 접속을 허용할 A사용자의 .screenrc 파일에

multiuser on
addacl B

의 내용을 추가해서 다중사용자 접근이 되게 허용하고, B라는 사용자에게 권한을 주게 한다. 그렇게 설정한 상황에서 접근을 원하는 B 사용자가 'screen -r sessionowner/[[pid.]tty[.host]]'으로 접속을 하면 된다.

5. .profile 설정이 적용되지 않는다.
이전에는 필요한 alias등을 모두 .profile에 해 두고 사용을 했다. 그런데 screen은 새로운 스크린을 만들때 .profile을 읽어들이지 않아서 설정이 적용되지 않았다. 그래서 필요한 내용을 .bashrc에 두고 사용을 하면 된다. 이는 현재 사용하는 쉘이 bash이기 때문에 .bashrc에 필요한 설정을 한 것이다.

더 자세한 내용은 man page와 info
그리고 http://sdnkorea.com/blog/entry/GNU-Screen-설치-및-활용하기 을 참고하자.

Technorati Tags: , ,

Posted by trip2me
,