Скрипт или панель запуска для настройки нескольких вкладок терминала в разных местах

14

Я уже изучал это некоторое время назад, но не нашел никакого решения, которое открывало бы вкладки терминала, выполняло некоторые команды и затем позволяло бы мне продолжать использовать эти вкладки терминала. Все способы запуска вкладок терминала из командной строки только запускали вкладки и не позволяли мне продолжать их использовать после этого.

Проблема, которую я пытаюсь решить, состоит в том, что каждый раз, когда мне нужно загрузить свою машину (или виртуальную машину в этом случае), мне нужно настроить около шести различных вкладок терминала, чтобы указывать на разные папки и экспортировать некоторые переменные среды в некоторые из них.

Я экспериментировал с терминалом xfce, и я получил некоторый способ с командой как это:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab

Но если я добавлю аргумент команды, вкладка больше не будет использоваться, когда она открывается:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab --command="cd ~/folder1"

http://docs.xfce.org/apps/terminal/command-line

В настоящее время я использую Red Hat Linux с GNOME 2.28.2.

user232548
источник

Ответы:

18

Вы можете сделать это, используя GNOME terminatorотличный терминал, в частности, с возможностью разделения панелей по горизонтали или вертикали.

После установки terminatorвы можете настроить профиль с желаемыми настройками (инструкции адаптированы отсюда ):

  1. Запустите terminatorи настройте макет, который вы хотите. Вы можете использовать Ctrl+ Shift+ Eдля разделения окон по вертикали и Ctrl+ Shift+ O(это 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 панелями, каждая из которых запустила или выполняет указанные вами команды:

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

terdon
источник
После того, как я ввел свои команды в Custom commandполе и нажал «Закрыть», он не сохраняется при повторном открытии. Могу я узнать почему? Я использую Ubuntu 16 Desktop
Nam G VU
@NamGVU хм, я только что проверил, и у меня та же проблема. Похоже, ошибка в текущей версии терминатора (это сработало 3 года назад, когда был опубликован этот ответ). Это все еще работает, если вы редактируете ~/.config/terminator/configфайл, как показано в шаге 5.
Terdon
2

Для того чтобы Terminator cdвошел в каталог при запуске, необходимо настроить команду:

cd ~/someFolder; bash

Это откроет терминал в местоположении cdк.

На самом деле, Тердон упоминает об этом в своем посте, но это скрыто в его замечательном мини-учебнике. Не после того, как я понял это, я заметил, что это похоронено в его посте, поэтому я оставляю этот ответ, чтобы подчеркнуть.

dotancohen
источник
0

Команда должна сопровождаться "; bash". Отдых должен быть в соответствии с ответами Тердона /superuser//a/610048

Дхруба Адхикари
источник