명령 줄에서 직접 여러 분할 화면을 시작하려면 어떻게합니까?


13

서버에 screen로그인 한 후 사용 하고 있습니다 ssh. 지금은 화면 창에서 분할을 수동으로 설정하고 다음 스크린 샷과 같이 수동으로 명령을 실행합니다.

여기에 이미지 설명을 입력하십시오

  • 상단 부분이 실행되어야합니다 tail -n 1 -f /home/server/log/access.log.
  • 오른쪽 아래 부분이 실행되어야합니다 htop
  • 왼쪽 하단은 단순히 명령 프롬프트 여야합니다.

명령 / 스크립트를 통해 수행 할 수있는 방법이 있습니까? 그래서 매번 손으로 다시 실행할 필요는 없습니까?



@muru 이것은 위와 같이 직접 주문하는 방법이 아니라 별도의 화면을 시작하는 방법에 대한 부분입니다.
Videonauth

화면에서 바로 가기를 사용하여 수행 할 수있는 모든 작업은의 명령을 사용하여 수행 할 수 있습니다 .screenrc. 이 배열 에는 split명령이 있습니다.
muru

답변:


16

특정 창 배열의 경우 파일로 저장하는 화면 명령이 있습니다 layout dump. 보낸 사람 man screen:

layout dump [filename]

Write to a file the order of splits made in the current layout. This is
useful to recreate the order of  your  regions  used  in  your  current
layout.  Only  the  current  layout is recorded. While the order of the
regions are recorded, the sizes of  those  regions  and  which  windows
correspond  to  which regions are not. If no filename is specified, the
default is layout-dump, saved in the directory that the screen  process
was  started in. If the file already exists, layout dump will append to
that file. As an example:

           C-a : layout dump /home/user/.screenrc

will save or append the layout to the user's .screenrc file.

따라서 수동으로 정렬 한 후을 누른 Ctrla:다음을 입력하십시오 layout dump /path/to/some/file. 레이아웃이 저장되고 /path/to/some/file다음을 사용하여 새 세션에서 복원 할 수 있습니다.

screen -c /path/to/some/file

+1 좋은 것; 는 split -v문서화되지 않은 것 같습니다 :) 내가 어려움을 겪고 된 이유입니다.
Videonauth

@Videonauth 실제로 기본 키 바인딩 섹션에 설명되어 있습니다. C-a | (split -v) Split the current region vertically into two new ones.
Sergiy Kolodyazhnyy

예, 맨 페이지, 옆에 언급 C-a |되었지만 GNU 문서 에는 언급 되지 않은 것 같습니다.
muru

당신이 언급 할 수 있습니다 이상한 행동을 찾았 당신이 예를 들어 입력하면 layout dump ~/layout프로세스가 실패합니다, 그것은 (즉, 전체 경로 필요 /home/$USER/layout)
Videonauth

@Videonauth 틸드 확장은 일반적으로 쉘에 의해 수행되므로, 주어진 명령이 내부적으로 지원하지 않는 것은 놀라운 일이 아닙니다. 일부는 그렇지 않습니다.
muru

10

내 질문에 표시된 결과를 생성하고 @muru의 훌륭한 대답을 따르기 위해 다음을 생각해 냈습니다 . 사용 layout dump하면 다음과 같은 결과를 얻었습니다.

split
focus
split -v
focus

참고 : 틸드 ( ~) 확장이 작동하지 않습니다 layout dump그래서 대신 ~/layout.dmp사용할 필요가있을 것이다 예를 들어 /home/<username>/layout.dmp.

그런 다음 다음을 만들었습니다. .screenrc

# create the top screen
chdir /home/server/log
screen -t "Apache Log" tail -n 1 -f access.log
# split the screen and focus onto the new created space
split
focus
#create the bash
chdir /home/server/log
screen
# split vertically and focus onto the new area
split -v
focus
# create the htop screen
screen -t "Htop" htop
# focus twice to end up with the bash area active
focus
focus

이제 screen원하는 레이아웃 을 입력 하고 시작하기 만하면됩니다. 나는 궁금해하는 사람들을 위해 여기에 예제를 남기지 만 @muru의 대답을 찬성 투표하는 것을 잊지 마십시오. 그가 나를 해결할 수있게 해주었습니다.

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