스크린 세션의 이름 설정


43

유닉스 스크린 세션에 특정 이름을 부여하는 방법이 있습니까? 예를 들어, 각각 다른 매개 변수를 사용하여 동일한 프로그램을 여러 번 실행하고 있으며 어느 프로그램이 어떤 것인지 알려고합니다.


프로그래밍 질문이 아닙니다. 수퍼 유저 또는 유닉스로 가야합니다.
0xC0000022L

답변:


52

-S name옵션 으로 세션을 시작할 때 이름을 지정할 수 있습니다 . 실행중인 화면에서을 입력하여 변경할 수 있습니다 CTRL-a, :sessionname name. 을 screen -ls사용하여 실행중인 화면 세션을보고을 사용 하여 이름별로 하나씩 연결할 수 있습니다 screen -xS name.

단일 화면 세션 내에서 각 창의 이름을 지정할 수도 있습니다. CTRL-a, A원하는 이름을 입력하면됩니다 . 을 입력하여 명명 된 창의 대화 형 목록 CTRL-a, "을보고 해당 목록에서 전환하려는 목록을 선택할 수 있습니다.

화면 내에서 화면과 터미널의 이름을 모두 지정하면 화면의 내용과 처음 시작한 이유를 기억하는 데 도움이됩니다.


시작 후 스크린 세션의 이름을 바꾸는 것은 가능 :sessionname NEWNAME하지만 (을 사용하여 ) "일반적으로 권장하지 않습니다". $STY환경 변수는 여전히 원래의 이름을 나타냅니다. screen매뉴얼 참조 : gnu.org/software/screen/manual/html_node/Session-Name.html
Keith Thompson

22

여기에는 두 가지 개념이 있으며, 어떤 개념을 염두에두고 있는지 잘 모르겠습니다.

  • 여러 개의 화면 창이있을 수 있습니다. 각 창은 쉘 또는 다른 프로그램을 실행합니다. 모든 창은 동일한 프로세스로 호스팅됩니다. C-a c창을 만들고 다음 / 이전 창 C-a n등으로 C-a p전환합니다.
  • 여러 개의 세션을 가질 수 있습니다. 각 세션은 자체 프로세스에서 호스팅되며 다른 모든 세션과는 독립적입니다. 다시 연결 ( -r또는 -R) 옵션 없이 화면을 시작 하면 새 세션이 생성됩니다.

Windows에는 제목이 있으며 -t명령 행 옵션, C-a A키 바인딩, title명령 또는 \ek이스케이프 시퀀스를 통해 설정할 수 있습니다 . 자세한 내용은 쉘터의 답변 을 참조하십시오.

세션은 이름을 가질 수 있습니다. 일반적으로 -S옵션 을 사용하여 명령 행에서 이름을 설정합니다 . 이름을 지정하지 않으면 screen이 이름을 구성합니다. 여러 화면 세션을 사용하는 경우 일반적으로 서로 다른 세션 이름을 지정합니다. screen -ls;로 실행중인 화면 세션을 나열 할 수 있습니다 . 각 세션 줄의 첫 번째 단어는 12345.sessionname12345가 화면 프로세스 ID입니다. 사용 screen -r sessionname또는 screen -r 12345세션을 재개은 이름이나 프로세스 ID를 통해 지적했다.


1
기본 키 바인딩에서 제목을 변경하려면 Ca A를 사용해야합니다.
enzotib

11

아 ... 스크린, 그것은 나를 다시 데려다 ;-)

하나의 창

-t name
    sets the title (a.k.a.) for the default shell or specified program. 
    See also the "shelltitle" .screenrc command.

.screenrc에서 시작된 다중 세션의 경우

screen -t top 2 nice top
screen -t ....

다음은 온라인 맨 페이지 온라인 사본 하나에 대한 링크 입니다.

편집 : 추가

현재 화면 이름을 변경하려면 다음과 같은 쉘 스크립트 도구를 만드십시오.

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

테스트를 거치지 않아서 작업중인 시스템에서 화면을 사용할 수 없습니다.


고마워, 이것은 많은 도움이됩니다. 이미 존재하는 스크린 세션의 이름을 바꾸는 방법이 있습니까?
실제로 실제로

@Charlotte : 편집 내용을 참조하십시오. 투표 해 주셔서 감사합니다!
shellter

좋은 답변 @ shellter! 궁금합니다. 요즘 다른 것을 사용한다는 의미로 "나를 데려 가라"고 말했습니까 (예 : tmux), 아니면 32 세 이상 입니까?
tutuDajuju

1
@tutuDajuju : Gulp, 이제 생각해 보니, screen적어도 25 년을 사용 했습니다. 나를 데려다 줄 특별한 유스 케이스이기 때문에 나를 다시 데려갑니다 screen. 일반적으로 나는 계속 열려 X-Terms있지만 X486 PC 에서 실행이 불가능 해 보였을 때를 기억합니다 . ;-) 건배!
쉘터

@shellter 참고로, 1992 년에 8Mb RAM을 가진 486 PC에서 X를 실행했습니다.
Eno

4

실행하는 동안 screen:

Ctrl+a(또는 screen탈출 순서가 무엇이든 )A


3

위의 답변은 이미 시작했을 때 화면 이름을 지정하는 방법을 알려줍니다. 또한 화면이 시작된 후에는 화면 이름을 바꿀 수 없음을 지적합니다. 창 제목은 설정할 수 있지만 화면에 연결하는 데 사용되는 이름은 pid.pty.host입니다.

그러나 유용한 효과를 얻으려면 별칭을 사용하는 것이 꽤 효과적이라는 것을 알았습니다. 화면의 이름을 잊거나 특정 작업의 화면이 자연스럽게 된 화면이 많은 세션에서 자신을 찾으면 명령에 별명을 설정하여 첨부합니다.

예:

alias goncompile='screen -r 2354'

별명 명령을 단독으로 실행하면 어떤 화면이 있는지와 연결하도록 설정 한 명령이 표시됩니다.

unalias그것들을 제거하는 데 사용하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.