2009. 6. 26. 03:01
screen은 참 좋은 어플이긴 한데, 매번 켜주고 붙이고 하는 것이 상당히 귀찮은 것이 사실이다. 그리고 여러 부가기능들을 보면 항상 켜놓는 것도 그다지 나쁘지 않은 선택인거 같아서, 몇 가지 해법을 찾아보았다.

  1. screen-profile 쓰기
    사실 가장 무난한 방법인 것 같다. ubuntu에서 제공해주는 것인데, gentoo에서는 dpkg를 이용해서 포티지와 합쳐진 통합 관리로 설치 및 유지 보수가 가능하다.
    하지만 중요한 것은... 이거 쓰는 법을 내가 잘 몰라서 이 방법은 포기했다 -_-.. 그래도 꽤 유명한 방법인 것 같으므로 조금만 찾아보면 적절한 해답을 얻을 수 있을거라고 믿는다.
  2. 직접 쉘스크립트를 짜서 자동으로 붙게 만들기
    이 것이 내가 소개하고자 하는 방법이다.
    먼저, screen의 옵션에 대해 조금 알 필요가 있다.
    • -x : 현재 실행중인 screen에 attach하되, 이미 attach된 screen이라고 해도 동시에 보기 모드로 붙는다.
    • -R : attach가 가능하면 attach를 하고, attach가 불가능하면 새롭게 screen 세션을 만든다.
    이 두 옵션을 동시에 쓰면, screen이 수행되지 않은 상태면 새롭게 screen이 수행되고, 이미 수행중인 screen이 있다면 자동으로 attach된다.
    그리고, screen이 수행중일 때는 기본값으로 TERM 환경변수가 screen이 된다는 점을 이용하면 screen 내에서 쉘이 실행될 때 screen이 또 실행되는 것을 막을 수 있다.
먼저 홈 디렉토리에 있는 .bashrc 파일을 살펴본다. 그리고 맨 마지막에 다음과 같은 내용을 집어넣는다.
if [[ $TERM != "screen" ]]; then
  screen -x -R -q
  exit
fi

위의 명령은 꽤 단순하다. TERM 환경변수가 screen이 아니라면, 즉 screen 내부가 아니라면 screen을 attach시켜서 현재 실행중인 screen에 붙인다. 그리고 이 붙은 screen이 종료되면 자동으로 쉘도 꺼지도록 했다.

이렇게 하면, 언제나 어디서나 접속해도 하나의 터미널을 공유할 수 있고 작업 내용을 볼 수도 있다. 편리하다.

'유용한 어플 > screen' 카테고리의 다른 글

자동으로 screen 켜기  (0) 2009.06.26
screen 소개  (0) 2009.06.17
2009. 6. 17. 20:31
이번에는 gentoo에서 필수요소인 screen을 소개해 보도록 하겠다.

screen은 젠투 포티지에서 설명을 찾아보면

 Screen - A full-screen window manager that multiplexes physical terminals between several processes

이라고 설명이 나와 있다.
간단하게 내가 이해한 대로 설명을 하자면, 일종의 텍스트 모드 터미널이라 할 수 있다.

GUI 환경에서 여러 개의 터미널을 열고, 탭을 만들고, 탭 사이로 다니면서 동시에 여러 작업을 하듯 screen을 쓰면 한 터미널에서 여러 작업을 동시에 수행할 수 있게 된다. 그리고, 'Detach'를 통해 진행중인 작업을 현재 작업중인 콘솔에서 분리시켜 독립적으로 돌아가게 할 수 있고 'Attach'를 통해 detach된 작업을 다시 수행할 수 있다는건 screen의 최대 매력이라고 할 수 있겠다.

이런 킹왕짱 screen을 써보려면, 젠투의 경우
# emerge screen
우분투의 경우
# apt-get install screen
으로 설치하는 것이 가능하다.

사용법은, 간단하게 쓰려면 매우 간단하다. 먼저, 실행중인 screen이 없다면 단지 screen만 쳐서 새 screen을 실행시킨다.
$ screen
혹은, 먼저 실행중인 스크린이 있을 때는 -r 옵션으로 attach를 할 수도 있다.
$ screen -r
detach가 이루어지지 않은 screen에 attach하려면 두 가지 방법이 있다.
다른 곳에서 동작중인 screen을 강제로 detach시킨 뒤 attach하려면 -d -r 옵션을 둘 다 주면 된다.
$ screen -d -r
그게 아니고 동시에 작업하는게 필요한 경우 -x 옵션을 주면 된다. 이 때는 꽤 재밌는 점이, 같은 윈도우를 보고 있을 때면 한 쪽의 변화가 다른 한 쪽에 바로바로 보이고 둘 다 동시에 키를 입력한다거나 하는 것도 가능하다.
$ screen -x

이제 스크린을 시작했으면, 여러가지 방법으로 가지고 놀 수 있다. 기본적으로 명령키는 Ctrl+A인데, 이 키를 누르고 다른 키를 누름으로써 여러가지 명령을 줄 수 있다.
흔히 사용되는 것들은 다음과 같다.
 ^A a 또는 ^A ^A
이전에 작업중인 창으로 이동.
Alt+Tab과 비슷하다고 할 수 있다.
 ^A c
새로운 창을 연다. 새 탭을 여는거라고 생각해도 무관하다.
 ^A d
현재 작업중인 screen에서 detach하고 나간다.
 ^A K
작업중인 창을 강제로 닫는다.
 ^A "
현재 열려 있는 창들의 목록을 볼 수 있다. 선택하면 그 창으로 이동하는 것도 가능하다.
 ^A A
창의 제목을 바꿀 수 있다. 바꾸면 ^A "에서 나오는 창의 제목이 바뀐다.
 ^A 숫자
숫자에 해당하는 창으로 바로 이동한다.
 ^A S
창을 위 아래로 분리하여 두 창을 동시에 본다.
 ^A Tab
분리된 다음 창으로 이동한다.
 ^A +, ^A -
분리된 창의 크기를 조절한다.

뭐, 요 정도 있으면 그럭저럭 쓸만하다.

그리고 추가로,  screen은 인코딩 변환하는 것도 지원한다.

예를 들어 UTF-8 인코딩의 터미널에서 이슬비같은 cp949 인코딩으로 작업해야 할 경우가 생기면 이 명령을 주면 된다.
^A:encoding euckr
사실, CP949는 지원을 안하고 euckr밖에 지원하지 않아서 뭥, 뷁 같은 글자들은 찍히지 않고 깨지긴 하지만 그럭저럭 큰 문제 없이 쓸 수 있어 좋다.

이후에 더 기능을 많이 알게되면 추가해야지.

'유용한 어플 > screen' 카테고리의 다른 글

자동으로 screen 켜기  (0) 2009.06.26
screen 소개  (0) 2009.06.17