Как открыть терминал, разделить его на 9 терминалов и переключаться между ними с помощью одного скрипта?

Как открыть терминал, разделить его на 9 терминалов и переключаться между ними с помощью одного скрипта?

Я хотел бы открыть терминал, разделить его, скажем, на 9 частей (3x3) и выполнить какой-нибудь скрипт bash. Но для каждой части терминала свой скрипт.

Можно ли это сделать с помощью Perl, Python или даже Bash?

Как переключаться между этими маленькими терминалами, не используя сочетания клавиш?

О, кстати, я использую terminator. И если есть какой-то другой эмулятор терминала, который обеспечивает такую ​​функциональность, какой это?

решение1

Плагиатить самого себя, вы можете настроить профиль с желаемыми настройками (инструкции адаптированы изздесь):

  1. Запустите terminatorи настройте желаемую раскладку. Вы можете использовать Ctrl+ Shift+ Eдля вертикального разделения окон и Ctrl+ Shift+ O(это O как в oodles, а не ноль) для горизонтального разделения. Для этого примера я создал раскладку с 6 панелями:

    введите описание изображения здесь

  2. Щелкните правой кнопкой мыши по terminatorокну и выберитеПредпочтения. ОднаждыПредпочтенияокно открыто, перейдите наМакетыи нажмитеДобавлять:

    введите описание изображения здесь

  3. Это заполнитМакетысписок с вашим новым макетом:

    введите описание изображения здесь

  4. Найдите каждый из терминалов, которые вы создали в макете, и щелкните по ним. Затем справа введите команду, которую вы хотите запустить в них при запуске:

    введите описание изображения здесь

    ВАЖНЫЙ:Обратите внимание, что за командой следует ; bash. Если вы этого не сделаете, терминалы будут недоступны, так как они выполнят указанную вами команду и закроются. Вам нужно запустить оболочку после каждой команды, чтобы иметь возможность использовать терминалы.

    После того, как вы установили все команды, нажмитеЗакрыватьи затем выйти terminator.

  5. Откройте terminatorфайл конфигурации ~/.config/terminator/configи удалите раздел под макетами для конфигурации по умолчанию. Затем измените имя созданного вами макета на default. Это должно выглядеть примерно так:

     [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 [email protected]'
           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]
    

Конечный результат заключается в том, что при запуске terminatorоткроется 6 панелей, на каждой из которых были выполнены или выполняются указанные вами команды:

введите описание изображения здесь

Кроме того, вы можете настроить столько различных профилей, сколько захотите, и либо запустить Terminator, -pуказав имя профиля с помощью переключателя, либо вручную переключиться на любой нужный профиль после запуска.

решение2

Вы ищете терминальный мультиплексор tmux.

https://github.com/tmux/tmux

решение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]

РЕДАКТИРОВАТЬ:Обратите внимание, что эта информация, вероятно, взята из поста Тердона в гораздо более ранней ветке. Я использую эту установку уже несколько месяцев, но пост Тердона здесь выглядит очень знакомым!

решение4

Скрипт-обертка для разделения эмулятора терминала Terminator https://github.com/AlekseyChudov/terminator-split

Связанный контент