screen 기본 사용법 - 2

김충길의 이미지

screen이 실행될때 읽어 들이는 rc 파일이 있습니다.
$HOME/.screenrc 파일이 그것입니다.

대부분은 .screenrc 가 디폴트로 잘 설정되어 있을 겁니다.
일단 이 파일이 있다면 열어서 아래와 같이 해당 라인을 찾아 수정합니다.

Quote:

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

defscrollback 1000

defhstatus 는 hardstatus 을 어떻게 표시할까를 나타내는겁니다.
^En 은 현재 창번호를 ^Et는 현재 창 타이틀을 표시합니다.
^EW 는 나머지 창들에 대해서 표시합니다.
(이부분은 screen 버전에 따라 약간 틀리게 동작할 수 있습니다.
제가 사용하는 버전은 3.09.09 입니다)

그 다음 hardstatus lastline은 hardstatus를 화면상의 맨 아래에
표시하게 합니다. 창이 여려개 일때 편리하죠.

defscrollback은 screen의 개별 창마나 scroll 사이즈를 몇 라인으로
할것인지를 정하는 겁니다. scrollback을 좀 길게 사용하는 이유는 출력내용을
살펴 볼때 유용합니다. 터미널 자체의 스크롤백을 사용할 수도 있으나 창을
왔다갔다하면 좀 불편하고 어디것이 어떤 차의 것인지 분간이 잘 안가죠.
이때 해당 창의 스크롤백을 사용하면 편리합니다.

스크롤백화면으로 이동하는건 간단합니다. Ctrl+a [을 누르면 screen
의 copy mode로 변환 됩니다. copy mode에서 이동할땐 vi의 이동키를
그대로 사용할 수 있습니다. 빠져나올땐 Esc Esc로 빠져나올 수 있습니다.

copy mode는 copy & paste할때 주로 사용하는것인데요. copy mode 상태
에서 spacebar을 눌러 복사할 시작점을 선택하고 끝지점에서 다시
spacebar을 누르면 그당 블럭이 screen 내부 버퍼를 복사됩니다.
복사된 버퍼값을 다시 쓰고자 할때는 Ctrl+a ]을 눌려 주면 됩니다.
만약 쉘 컴맨드상에 있다면 셀 컴맨드로 이게 복사될 것이고 vim에서 에디팅
중일 경우 입력으로 들어 가겠죠.

사용하다 특정 창에서 실행중인 프로그램이 말썽을 일으켜 동작하지 않을
때가 있습니다. 저같은경우 디버깅하다 디버가까지 같이 먹어버리는 경우가
종종 있습니다. 이때 해당 창을 죽이는 명령이 있는데 Ctrl+a K
현재 활성화된 창을 강제로 죽이는 경우 입니다. 뭐 다른 창으로 이동해서
ps -el 한다음은 해당 프로세스를 죽여도 상관없지만요.

Forums: 
hopoo의 이미지

저도 sreen을 사용한지 얼마되지 않아서리,

유용하게 사용할듯 하네요~~~~ ㄳㄳ

gbkwon의 이미지

저도 최근에야 알았습니다.

그런데 상당히 좋군요.. 괜찮습니다..

그런데.. 한가지 궁금한 점이. 혹시 split 한 후에. 윈도우를 이동할려고

하면 어떤 키 조합을 사용하는지요..??

split 는 ^S 로 가능 하던데.. 이동은 찾아 봐도 없군요.. split 하게 만들어

두었으면 이동도 가능 할 텐데요. 그리고 참.. vertical 로도 split 가능한가요.

??? 가능하면 더할나위 없이 좋겠는데. 혹 알고 계시면 답글올려 주세요..

gbkwon의 이미지

gbkwon wrote:

저도 최근에야 알았습니다.

그런데 상당히 좋군요.. 괜찮습니다..

그런데.. 한가지 궁금한 점이. 혹시 split 한 후에. 윈도우를 이동할려고

하면 어떤 키 조합을 사용하는지요..??

split 는 ^S 로 가능 하던데.. 이동은 찾아 봐도 없군요.. split 하게 만들어

두었으면 이동도 가능 할 텐데요. 그리고 참.. vertical 로도 split 가능한가요.

??? 가능하면 더할나위 없이 좋겠는데. 혹 알고 계시면 답글올려 주세요..

이런.. 계속 메뉴얼을 보고 있었는데.. 꼼꼼히 보지 못한것이 실수 군요..

일단.. 다른 윈도우로의 이동은 ^tab 입니다.

그리고.. vertical split 는 아직 구현이 안된것 같군요..

http://www.math.fu-berlin.de/~guckes/screen/wish.php3

그럼..

서지원의 이미지

gbkwon wrote:
저도 최근에야 알았습니다.

그런데 상당히 좋군요.. 괜찮습니다..

그런데.. 한가지 궁금한 점이. 혹시 split 한 후에. 윈도우를 이동할려고

하면 어떤 키 조합을 사용하는지요..??

split 는 ^S 로 가능 하던데.. 이동은 찾아 봐도 없군요.. split 하게 만들어

두었으면 이동도 가능 할 텐데요. 그리고 참.. vertical 로도 split 가능한가요.

??? 가능하면 더할나위 없이 좋겠는데. 혹 알고 계시면 답글올려 주세요..

command key + tab을 씁니다. 보통은 command key가 ctrl+a이므로, ^a tab 하면 됩니다. 그런 다음에는 적당한 창을 선택하면 됩니다.

서지원의 이미지

앗.. 그 사이에 답변을 :roll:

tarak1004의 이미지

저도 금방 해봤는데 아주 유용하게 쓰겠군요 :)

근데 screen으로 작업하는 터미널은 한글이 깨져나오는 군요.

echo $TERM 하면은 screen으로 나오구요.

어떻게 하면 한글이 정상적으로 나올까요? 궁금 :mrgreen:

-. 오늘할일을 내일로 미루자
-. 모든 일에는 마무리를 하지말자
-. 저녁늦게자서 아침늦게 일어나자 :shock:

gbkwon의 이미지

tarak1004 wrote:
저도 금방 해봤는데 아주 유용하게 쓰겠군요 :)

근데 screen으로 작업하는 터미널은 한글이 깨져나오는 군요.

echo $TERM 하면은 screen으로 나오구요.

어떻게 하면 한글이 정상적으로 나올까요? 궁금 :mrgreen:

이상하군요.. 별다른 설정 없이도 한글은 문제가 안되는 것 같던데..

어떤 터미널 프로그램을 사용하시는지요..?? 개인적으로 PuTTY를 추천해

드립니다..

http://www.chiark.greenend.org.uk/~sgtatham/putty/

한글.., 터미널... , 키. , 거의 모든 것이 완벽(?) 합니다..

참고가 될지도 모르니.. screenrc 파일을 설정해 보세요..

자세한 설정은.. 메뉴얼이나.. 다음링크에 있는 파일을 참조하세요..

http://www.math.fu-berlin.de/~guckes/setup/screenrc

vim을 개인적으로 상당히 잘만든 프로그램이다.. 라고 생각 하고 있었는데요..

몇개가 더 있군요.. vim, putty, screen, eclipse 이정도는 가히.. 돈주고

살만 합니다.. 그런데.. open source 라니....

송지석의 이미지

음. 왜그런지 잘 살펴보진 않았지만 screen으로 하면 화면이 다르게 보이긴 하더군요 (전 레뎃 8.0..) ls시에 컬러로 안나오더라구요.

뭔가 설정이 필요한 것 같습니다.

up2date로 업데이트 한 다음에는 컬러가 잘 나오더군요. 대신에 bold 컬러로 나오는군요. 음..

그나저나 screen 팁 올려주셔서 감사합니다. 저번에 vim+screen 쓰면 좋다고 하셔서 방법을 올려주시길 부탁드렸는데 정말 올려주셨군요.

hey의 이미지

스크린 안에서는 스크린을 다시 작동할 수 없나요?
한 머신에서가 아니라

스크린을 연 다음, 원격지에 접속해서
거기서 다시 스크린을 열고 싶은데.. 음, 안되는 것 같아요.


----------------------------
May the F/OSS be with you..


ilashman의 이미지

hey wrote:
스크린 안에서는 스크린을 다시 작동할 수 없나요?
한 머신에서가 아니라

스크린을 연 다음, 원격지에 접속해서
거기서 다시 스크린을 열고 싶은데.. 음, 안되는 것 같아요.

detach하고 원격지에서 screen 띄운후 다시 attach 하세요.
(C-t d) (screen -r)

서지원의 이미지

hey wrote:
스크린 안에서는 스크린을 다시 작동할 수 없나요?
한 머신에서가 아니라

스크린을 연 다음, 원격지에 접속해서
거기서 다시 스크린을 열고 싶은데.. 음, 안되는 것 같아요.

두 머신에서 띄운 screen의 command key가 같아서 그런 것 같습니다.
일단 한 머신에서는 그냥 screen으로 screen을 열고, 원격지에 접속해서는 screen -e^Oo (혹은 shell에 따라서는 screen "-e^Oo")라고 하면 command key가 ctrl+o가 됩니다. ctrl+o+w하면 원격지 screen의 윈도우들이 보이게 되고, ctrl+a+w하면 처음 screen을 띄운 머신의 윈도우들이 보이게 됩니다.

hey의 이미지

하나 더,
서지원님이 알려주신 "-e^뭐뭐" 를 screenrc에 넣으려면 다음과 같이

Quote:
escape ^Oo''
escape ^Aa''

이런 식으로 합니다.


----------------------------
May the F/OSS be with you..


serat의 이미지

screen을 하나 띄어 놓고, 다른 터미널에서 screen -x 하면, 두 터미널이 하나의 screen을 공유하게 됩니다.
떨어져 있는 두 사람이 하나의 터미널을 보고 싶을 때 유용하겠죠..

hey의 이미지

serat wrote:
screen을 하나 띄어 놓고, 다른 터미널에서 screen -x 하면, 두 터미널이 하나의 screen을 공유하게 됩니다.
떨어져 있는 두 사람이 하나의 터미널을 보고 싶을 때 유용하겠죠..

페어프로그래밍 할 때 유용하겠네요.


----------------------------
May the F/OSS be with you..


raymundo의 이미지

좋은 강좌 감사합니다.
아직 강좌에서 나오지 않은 얘기입니다만.. (앗, 지금 보니 위에 답글 중에 언급이 되었군요. 답글 첫 페이지만 보는 바람에 몰랐네요)

한 터미널에서 screen 을 띄우고,
다른 터미널에서 screen -x 를 하여 위에서 띄운 스크린을 두 터미널에서 동시에 작업을 할 수가 있잖습니까?

그런데 이 때 A 라는 유저가 screen 을 띄웠는데, B 라는 유저가 screen -x 로 A 의 screen 에 attach 할 수 있는 방법을 모르겠습니다.

man page 에서 알아낸 것은, multiuser 와 acladd 인데,

A 의 홈디렉토리의 .screenrc 에다가
multiuser on
acladd B
라고 적어준 후에 screen 을 실행하고,
B 유저가 screen -x 를 했는데, 여전히 "There is no screen to be attached" 라는 말만 나오는군요.

좋은 하루 되세요!

김충길의 이미지

screen -x [pid.tty.host]
또는
screen -x 세션명

으로 해보세요. 세션명이나 pid.tty.host는 screen -list 하면 나옵니다.

raymundo wrote:
좋은 강좌 감사합니다.
여전히 "There is no screen to be attached" 라는 말만 나오는군요.

screen + vim + ctags 좋아요~

raymundo의 이미지

김충길 wrote:
screen -x [pid.tty.host]
또는
screen -x 세션명

으로 해보세요. 세션명이나 pid.tty.host는 screen -list 하면 나옵니다.

감사합니다. 그런데 그것도 시도해봤습니다만, 여전히 안 됩니다. B 쪽에서도 세팅이 필요한 것인가 싶어서 다음과 같이 해 보았습니다.

A 의 .screenrc 에는
multiuser on
addacl B

B 의 .screenrc 에는
multiuser on
addacl A

PuTTY 를 사용해서, 창 하나는 A 로, 또 하나는 B 로 로긴했습니다.

A 쪽에서 screen -S aaa 라고 실행하여 스크린을 실행했습니다.
이 때 screen -list 하면
There is a screen on:
3239.pts-4.호스트명 (Multi, attached)
1 Socket in /var/run/screen/S-A.
라고 나옵니다.

이제 B 쪽에서 이 스크린에 attach 를 하고자 합니다.
$ screen -x
There is no screen to be attached.

$ screen -x aaa
There is no screen to be attached matching aaa.

$ screen -x 3239.pts-4.호스트명
There is no screen to be attached matching 3239.pts-4.호스트명.

$ screen -list
No Sockets found in /var/run/screen/S-B

위에서 보듯이, B 입장에서는 list 도 안 되고, 전혀 해당 스크린이 없는 것처럼 반응하는 걸로 보입니다. 설정이 뭔가 부족한 걸까요?

좋은 하루 되세요!

raymundo의 이미지

김충길 wrote:
screen -x [pid.tty.host]
또는
screen -x 세션명

으로 해보세요. 세션명이나 pid.tty.host는 screen -list 하면 나옵니다.

이게... 세션명을 줄 때, screen 을 실행한 유저의 유저네임을 붙여서 "username/sessionname" 의 형식으로 주어야 하더군요.. man page 에는 없고 info 페이지 구석탱이에 적혀 있었습니다. -_-;;;;

정리하면,

1) A 유저쪽에서 .screenrc 에

multiuser on
acladd B

라고 적어준다.

2) screen 실행화일이 SetUID 퍼미션이 지정되어야 한다.

3) A 유저가 스크린을 띄울 때 session name 을 다음과 같이 주어야 한다.

screen -S 세션이름

위 상태에서 B 가

screen -x -S A/세션이름

과 같이 실행하면 A 의 screen 에 attach 하여 쓸 수 있습니다. 저는 죽어라고
screen -x -S 세션이름
까지만 시도해봤기 때문에 계속 불가능했던 거지요. ㅠ,.ㅠ

좋은 하루 되세요!

raymundo의 이미지

raymundo wrote:

man page 에는 없고 info 페이지 구석탱이에 적혀 있었습니다. -_-;;;;

흑흑... 답을 얻은 후에 다시 man page 를 보니 SYNOPSIS 에 적혀 있군요.

SYNOPSIS
       screen [ -options ] [ cmd [ args ] ]
       screen -r [[pid.]tty[.host]]
       screen -r sessionowner/[[pid.]tty[.host]]         <-- 요거 -_-;;

ㅠ,.ㅠ 어째서 man page 의 SYNOPSIS 하고 screen -h 했을 때 나오는 용법하고 다르게 나오는 건지... 아는 만큼 보인다고... 뻔히 보이는데도 무슨 말인지 몰라서 시도를 못했었군요. 크윽...

좋은 하루 되세요!

myroot의 이미지

자바로 네트웍에서 돌아가는 프로그램 만들어서 screen을 이용해서 돌려봤는데
그냥 하면 한글이 제대로 나오는데 screen에서 돌리면 한글이 깨져서 나오더라구요.....

익명사용자의 이미지

좋은글 잘 읽었습니다.

화면 split이 Ctrl+a S 인데, 수평으로 split 되네요.

혹시 수직으로 split되게 하는 방법이 있나요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.