Як відкрити термінал, розділити на 9 терміналів і переключитися між ними за допомогою одного сценарію?


17

Я хотів би відкрити термінал, розділити його, щоб сказати 9 частин (3x3) і виконати якийсь баш скрипт. Але для кожної термінальної частини різний сценарій.

Це можна зробити за допомогою perl, python або навіть bash?

Як я можу переключатися між цими маленькими терміналами, не використовуючи комбінації клавіш?

О, до речі, я використовую terminator. І якщо є якийсь інший термінальний емулятор, який дозволяє такий функціонал, що це?


terminatorне є оболонкою. Є два різних термінальних емуляторів, які називаються terminator(лише один з яких, я вважаю, може розділити екран).
Стефан Шазелас

А, дякую .. тоді я хотів би знати, як розділити terminatorза допомогою скрипту? :) І перемикатися між цими частинами?
Джиріслав

1
Я ніколи не використовував його і не маю часу досліджувати його зараз, але я думаю (хоча не впевнений), що byobu може допомогти вам, якщо ви запускаєте термінали на віддаленій системі - див. Help.ubuntu. com / спільнота / Byobu . Byobu працює на багатьох дистрибутивах * nix
Клайв ван Гільтен

1
Як згадував @ClivevanHilten і відповів тут, це можна зробити з дружнім Byobu (який за замовчуванням сидить на вершині tmux).
Пабло А

Відповіді:


35

Щоб плагіатувати себе , ви можете створити профіль із потрібними налаштуваннями (інструкції, адаптовані тут ):

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

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

  2. Клацніть правою кнопкою миші на terminatorвікні та виберіть "Налаштування". Після відкриття вікна "Налаштування" перейдіть до "Макети" та натисніть "Додати":

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

  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]

Кінцевий результат полягає в тому, що при запуску terminatorвін відкриється з 6 панелей, кожна з яких виконує або виконує вказані вами команди:

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

Крім того, ви можете налаштувати стільки різних профілів, скільки бажаєте, або запустити термінатор за допомогою -pперемикача, який дає ім'я профілю, або вручну переключитися на потрібний профіль після запуску.


Тердон, дякую! Це, мабуть, там я навчився писати цей конфігураційний файл!
dotancohen

@dotancohen рада почути, що мені допомогли :)
terdon

1
Whaou! Велике спасибі, "; 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]

EDIT: Зауважте, що ця інформація, ймовірно, надходила з поста Тердона на набагато раніше темі. Я використовую цю установку вже кілька місяців, але пост Тердона тут виглядає дуже знайомим!


Це те, що я шукав - як розділити термінал та виконати окремі сценарії - дякую! Але я не хотів би виконувати це кожен раз, як це. Чи є можливість мати більше цих конфігурацій і відкривати кожну залежно від того, що мені потрібно? Скажімо, додавши параметр --config2 або --config1?
Джиріслав

Ви не додаєте більше конфігураційних файлів, ви додаєте розділи до конфігураційного файлу. Дивіться пост Тердона, він це дуже добре пояснює, адже я дізнався про це з його допису на більш ранній темі.
dotancohen

О, я бачу ... Таким чином я прийняв його відповідь як найбільш корисну. Але все-таки спасибі
Джиріслав

Гарний вибір! Я насправді хотів запропонувати прийняти його відповідь, оскільки інформація походить від його важкої роботи!
dotancohen

2

Сценарій обгортання для розщеплення емулятора терміналу Terminator https://github.com/AlekseyChudov/terminator-split


2
Ви повинні включити сюди відповідну інформацію, як тільки Github зникне, ваша відповідь втрачає всю потенційну цінність.
Антон

1
здається добре .. але як запустити цей сценарій?
Сачин

1
terminator-splitпотенціал має багато, але, здається, немає способу запускати різні команди в різних розділах, і -mаргумент, показаний у прикладах, не вказаний у резюме використання
bitinerant
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.