터미널을 열고 9 터미널로 분할하고 하나의 스크립트를 사용하여 터미널을 전환하는 방법은 무엇입니까?


17

터미널을 열고 9 부분 (3x3)이라고 말하고 bash 스크립트를 실행하도록 분할하고 싶습니다. 그러나 각 터미널 부분마다 다른 스크립트가 있습니다.

이것은 perl, python 또는 bash를 사용하여 수행 할 수 있습니까?

키보드 단축키를 사용하지 않고 작은 터미널간에 어떻게 전환 할 수 있습니까?

아, 그런데 나는을 사용하고 terminator있습니다. 그리고 그러한 기능을 가능하게하는 다른 터미널 에뮬레이터가 있다면 그것은 무엇입니까?


terminator껍질이 아닙니다. 두 개의 다른 터미널 에뮬레이터 가 있습니다 terminator(하나만 화면을 분할 할 수 있다고 생각합니다).
Stéphane Chazelas

아, 고마워 .. 그러면 terminator스크립트를 사용하여 분할하는 방법을 알고 싶습니다 . :) 그리고 그 부분들 사이를 전환합니까?
jirislav

1
나는 그것을 사용하지 않았으며 지금 연구 할 시간이 없지만, byobu 가 원격 시스템에서 터미널을 실행하는 경우 도움이 될 것이라고 생각합니다 ( help.ubuntu 참조) . com / community / Byobu . Byobu 많은 유닉스 계열의 배포판에서 실행
이브 밴 Hilten에게

1
@ClivevanHilten이 여기에 언급하고 대답 했듯이 친절한 Byobu (기본적으로 tmux 위에 앉아 있음)로 수행 할 수 있습니다.
Pablo A

답변:


35

자신을 표절 하기 위해 원하는 설정으로 프로필을 설정할 수 있습니다 ( 여기 에서 수정 된 지침 ).

  1. 를 실행 terminator하고 원하는 레이아웃을 설정 하십시오 . Ctrl+ Shift+ E를 사용 하여 창을 세로로 나누고 Ctrl+ Shift+ O(0이 아닌 oodle과 같이 O 임)를 가로로 나눌 수 있습니다. 이 예제에서는 6 개의 창으로 레이아웃을 만들었습니다.

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

  2. terminator창을 마우스 오른쪽 버튼으로 클릭 하고 "환경 설정"을 선택 하십시오 . 환경 설정 창이 열리면 "Layouts"로 이동하여 "Add"를 클릭하십시오.

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

  3. 그러면 레이아웃 목록이 새 레이아웃으로 채워집니다.

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

  4. 레이아웃에서 생성 한 각 터미널을 찾아서 클릭 한 다음 오른쪽에서 시작시 실행할 명령을 입력하십시오.

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

    중요 : 명령 뒤에이옵니다 ; bash. 그렇게하지 않으면 터미널은 사용자가 지정한 명령을 실행하기 때문에 액세스 할 수 없습니다. 터미널을 사용하려면 각 명령 후에 쉘을 시작해야합니다.

    모든 명령을 설정했으면 "닫기"를 클릭 한 다음 종료하십시오 terminator.

  5. terminator구성 파일을 열고 ~/.config/terminator/config기본 구성의 레이아웃에서 섹션을 삭제하십시오. 그런 다음 작성한 레이아웃 이름을 기본값으로 변경하십시오. 다음과 같이 보일 것입니다 :

    [global_config]
    [keybindings]
    [profiles]
      [[default]]
    [layouts]
      [[default]]
        [[[child0]]]
          position = 446:100
          type = Window
          order = 0
          parent = ""
          size = 885, 550
        [[[child1]]]
          position = 444
          type = HPaned
          order = 0
          parent = child0
        [[[child2]]]
          position = 275
          type = VPaned
          order = 0
          parent = child1
        [[[child5]]]
          position = 219
          type = HPaned
          order = 1
          parent = child1
        [[[child6]]]
          position = 275
          type = VPaned
          order = 0
          parent = child5
        [[[child9]]]
          position = 275
          type = VPaned
          order = 1
          parent = child5
        [[[terminal11]]]
          profile = default
          command = 'df -h; bash'
          type = Terminal
          order = 1
          parent = child9
        [[[terminal10]]]
          profile = default
          command = 'export foo="bar" && cd /var/www/; bash'
          type = Terminal
          order = 0
          parent = child9
        [[[terminal3]]]
          profile = default
          command = 'ssh -Yp 24222 cchapple@139.124.66.43'
          type = Terminal
          order = 0
          parent = child2
        [[[terminal4]]]
          profile = default
          command = 'top; bash'
          type = Terminal
          order = 1
          parent = child2
        [[[terminal7]]]
          profile = default
          command = 'cd /etc; bash'
          type = Terminal
          order = 0
          parent = child6
        [[[terminal8]]]
          profile = default
          command = 'cd ~/dev; bash'
          type = Terminal
          order = 1
          parent = child6
    [plugins]

최종 결과는 실행할 때 terminator6 개의 창으로 열리 며 각 창은 지정한 명령을 실행했거나 실행 중입니다.

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

또한 원하는만큼 다른 프로파일을 설정 -p하고 프로파일 이름을 제공하는 스위치를 사용하여 터미네이터를 시작하거나 시작 후 원하는 프로파일로 수동 전환 할 수 있습니다.


Terdon, 감사합니다! 이것은 아마도 그 구성 파일을 작성하는 것을 배웠습니다!
dotancohen

@dotancohen 내가 도움이되었다 니 기쁘다 :)
terdon

1
와우! "; bash"는 내 생명을 구했습니다!
에티엔

"터미널을 사용하려면 각 명령 후에 쉘을 시작해야합니다." 놀랍습니다-처음 시도했을 때 전혀 직관적이지 않았습니다. 자동으로 활성화하려면 일종의 확인란을 포함해야합니다.
dtmland


3

내가 terminator이것을 사용했을 때, 이것은 많은 터미널을 열고 응용 프로그램을 실행하는 데 사용한 rc 파일입니다. 에 저장하십시오 .config/terminator/config.

[global_config]
  title_hide_sizetext = True
  enabled_plugins = LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
[keybindings]
[profiles]
  [[default]]
    font = DejaVu Sans Mono 9
    cursor_blink = False
    scrollback_infinite = True
[layouts]
  [[default]]

    [[[root]]]
      position = -4:0
      type = Window
      order = 0 
      parent = ""
      size = 1072, 1884

    [[[grand]]]
      position = 536 
      type = HPaned
      order = 0 
      parent = root
    [[[left]]]
      position = 942 
      type = VPaned
      order = 0 
      parent = grand
    [[[right]]]
      position = 942 
      type = VPaned
      order = 1 
      parent = grand



    [[[terminal1]]]
      profile = default
      type = Terminal
      order = 0 
      parent = left
      command = "cd ~/code/foo; bash"
    [[[terminal2]]]
      profile = default
      type = Terminal
      order = 1 
      parent = left
      command = "cd ~/bar/baz; bash"



    [[[terminal3]]]
      profile = default
      type = Terminal
      order = 1 
      parent = right
      command = ""
    [[[terminal4]]]
      profile = default
      type = Terminal
      order = 0 
      parent = right
      command = "cmus; bash"



[plugins]

편집 : 이 정보는 아마도 훨씬 이전 스레드에 대한 Terdon의 게시물에서 온 것입니다. 이 설정을 몇 달 동안 사용해 왔지만 Terdon의 게시물은 매우 친숙합니다!


이것은 내가 찾고있는 것입니다-터미널을 나누고 특정 스크립트를 실행하는 방법-감사합니다! 그러나 나는 이것을 이렇게 매번 실행하고 싶지 않습니다. 필요한 구성에 따라 더 많은 구성을 보유하고 각각을 열 가능성이 있습니까? --config2 또는 --config1 매개 변수를 추가하여
jirislav

구성 파일을 더 추가하지 않고 구성 파일에 섹션을 추가합니다. Terdon의 게시물을 참조하십시오. 그는 그것을 아주 잘 설명합니다. 사실 나는 이전 스레드의 게시물에서 이것을 배웠습니다.
dotancohen

아, 알 겠어요 .. 그래서 그의 대답을 가장 도움이되는 것으로 받아 들였습니다. 어쨌든 고마워
jirislav

좋은 선택! 나는 정보가 그의 노력에서 나온 것처럼 그의 대답을 받아들이기를 제안하고 싶었다!
dotancohen

2

터미네이터 터미널 에뮬레이터를 분할하기위한 래퍼 스크립트 https://github.com/AlekseyChudov/terminator-split


2
일단 github이 사라지면 답이 모든 잠재적 가치를 잃게됩니다.
Anthon

1
좋아 보인다 ..하지만이 스크립트를 어떻게 실행합니까?
Sachin

1
terminator-split많은 잠재력을 가지고 있지만 다른 분할에서 다른 명령을 실행할 수있는 방법이없는 것 같습니다 -m. 예제에 표시된 인수는 사용 요약에 나열되어 있지 않습니다.
bitinerant
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.