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

10

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

Прямо сейчас я запускаю их все вручную: щелкните значок «Терминал», перейдите к нужной папке, введите команды и измените заголовок окна на что-то значимое.

Есть ли способ написать сценарий или что-то, что автоматизирует это для меня? И если да, то как?

(Я круче, что не получил полный сценарий в качестве ответа. Указатель, с которого можно начать чтение, тоже подойдет.)

Адам Лир
источник

Ответы:

9

Поскольку вы нажимаете значок терминала, я полагаю, вы используете gnome-terminal.

Я получил список опций, используя gnome-terminal --helpв командной строке и читая оттуда.

Основываясь на ответе Мако, я мог бы предложить что-то вроде этого:

gnome-terminal --window --title=Log -e "tail -f /var/log/syslog" --window --title=Output --working-directory=output --window --active --title=Dev --working-directory=dev/project

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

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

Еще одна полезная вещь, когда вы настроите свои окна по своему вкусу, это использовать

gnome-terminal --save-config=FILE

Это создает файл конфигурации с информацией обо всех открытых окнах и вкладках терминала (включая заголовки, рабочие каталоги и т. Д.). Запуск gnome-терминала с этой --load-configопцией затем восстановит ваш макет.

Многие разработчики, работающие с несколькими терминалами, любят использовать Terminator, так как он добавляет такие функции, как расположение сетки и сочетания клавиш.

jbowtie
источник
Будет ли это делать с флагом -e, что приведет к закрытию окна после выполнения команды? И если так, можно ли заставить окно оставаться открытым?
EMF
8

Какой бы эмулятор терминала вы не использовали, он должен принимать команду в качестве аргумента. Например:

gnome-terminal -e "tail -f /var/log/syslog"

Просто добавьте такие команды в свой автозапуск в Система -> Настройки -> Сеансы (Ubuntu) или Настройки системы -> Автозапуск (Kubuntu).

MACO
источник
4

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

Вот простой пример:

$ vi your-script
#!/bin/bash
gnome-terminal -e "tail -f /var/log/syslog"
gnome-terminal --working-directory=/foo/bar
gnome-terminal --whatever-else

Затем просто сделайте его исполняемым:

$ chmod +x your-script
анонимный
источник
тебе не нужно execвсе это?
Мако
Да, если gnome-терминал уже запущен, команда просто открывает новое окно для другого запущенного процесса и затем закрывается.
LassePoulsen