화면에서 다음 화면으로 이동하는 방법

화면에서 다음 화면으로 이동하는 방법

분리 모드에서 실행 중인 화면이 10개 있습니다. 이렇게 하면 screen -r pid그 중 하나의 결과를 볼 수 있습니다. 매뉴얼 페이지에는 ctrl-a + n다음 화면이 표시될 것이라고 나와 있지만, 그렇게 하면 다음과 같이 표시됩니다.No other window.

내가 무엇을 놓치고 있나요?

답변1

키 순서는 Ctrl+ 입니다 a. 그런 다음 키를 놓고 키를 누릅니다 n.

나는 항상 다음과 같은 제목의 치트 시트를 참조합니다.화면 빠른 참조.

10개의 스크린 세션을 반복하려고 하면 마치 창인 것처럼 보이지만 내가 아는 한 그들은 창이 아니며 창이 될 수도 없습니다. 화면 측면에서 세션과 창은 완전히 다른 두 가지입니다.

답변2

screen각 창을 미리 구성하여 여러 창으로 세션을 실행 해 볼 수 있습니다 ~/.screenrc. 다음은 실제 예입니다.

# Automatically running some programs in windows on screen startup.
# The following will open top in the first window, an ssh session to
# monkey in the next window, and then open mutt and tail in windows 8 
# and 9 respectively.

screen top
screen -t monkey ssh monkey
screen -t mail 8 mutt
screen -t daemon 9 tail -f /var/log/daemon.log

거기에서 도난당했습니다 . 깨끗하고 문서화된 구성 예제가 /etc/screenrc많이 있습니다 .screen

답변3

다음은 편리합니다.

  • Ctrla space— 다음 창
  • Ctrla backspace— 이전 창
  • Ctrla "— 창 목록 메뉴
  • Ctrla 0— 창 0 선택

(당신도 확인할 수 있습니다 man screen)

답변4

예를 들어 쉘 스크립트를 사용하여 이 작업을 수행할 수 있습니다.

    for s in `screen -ls | grep Detached | grep <regex to your screen names>`; do screen -r $s; done 

이 명령을 실행한 후 첫 번째 화면에서 Ctrl+ 를 입력하고 a해제한 다음 숨기기 d(분리용)를 누릅니다. 현재 화면을 종료하면 bash 스크립트가 즉시 다음 화면으로 이동합니다.

  1. 열려 있는 화면이 거의 없다고 가정해 보겠습니다. 또한 업무와 데이터로 분류한다고 가정합니다.

     for i in {10..13}; do screen -S `printf data%02d $i`; done;
     for i in {0..5}; do screen -S `printf work%02d $i`; done;
     ...
    
  2. 적용 후 screen -ls화면은 다음과 같습니다.

     There are screens on:
         81592.data13    (Detached)
         81539.work04    (Detached)
         81527.work02    (Detached)
         81586.data12    (Detached)
         81574.data10    (Detached)
         81533.work03    (Detached)
         81488.work00    (Detached)
         81607.ttys014.Mo    (Attached)
         81545.work05    (Detached)
         81580.data11    (Detached)
         81521.work01    (Detached)
         81515.work00    (Detached)
     12 Sockets in /var/folders/qs/cvlbhpr54fnb96vtx01bs9k00000gn/T/.screen.
    
  3. 이제 격리 분리 화면을 사용해 보겠습니다 grep.

     screen -ls | grep Detached
    

당신은 이런 자격이 있습니다

        81592.data13    (Detached)
        81539.work04    (Detached)
        81527.work02    (Detached)
        81586.data12    (Detached)
        81574.data10    (Detached)
        81533.work03    (Detached)
        81488.work00    (Detached)
        81545.work05    (Detached)
        81580.data11    (Detached)
        81521.work01    (Detached)
        81515.work00    (Detached)
  1. 이제 다시 사용하여 원하는 것(예: 데이터)을 선택해 보겠습니다 grep.

     screen -ls | grep Detached | grep data
    

이렇게 하면 데이터 화면만 격리됩니다. 정규식을 사용하여 grep 키워드 검색을 변경하여 검색을 사용자 정의할 수 있습니다.

        81592.data13    (Detached)
        81586.data12    (Detached)
        81574.data10    (Detached)
        81580.data11    (Detached)
  1. 다행히 결과는 잘 구조화되어 있으며 탭으로 구분되어 있습니다. 이제 열을 필드로 분할하고 두 번째 필드를 선택해 보겠습니다 cut.

     screen -ls | grep Detached | grep data | cut -d'       ' -f2
    

그 뒤에 구분 기호 매개변수를 삽입하려면 Tab 키를 눌러야 합니다 ctrl+v. 결과는 다음과 같습니다.tab-d

81592.data13
81586.data12
81574.data10
81580.data11
  1. 이제 따옴표를 사용하여 명령으로 묶고 ...이와 같은 결과를 반복합니다. 실제로 실행하기 전에 공식화된 명령을 먼저 확인하십시오. 나는 사용했다echo screen -r

     for s in `screen -ls | \
     grep Detached | grep data | \
     cut -d'     ' -f2`; do \
         echo screen -r $s; \
     done
    
  2. 모든 것이 순조롭게 진행된다면 echo.

     for s in `screen -ls | \
     grep Detached | grep data | \
     cut -d'     ' -f2`; do \
         screen -r $s; \
     done
    
  3. 바라보다. 종료하는 각 화면은 다음 화면으로 이동합니다.

즐거운 상영 되세요!

관련 정보