Как запустить 3 терминала с разными командами одновременно ? желательно в одном окне, типа Tmux

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

Запуск галпа, трек лога ошибок, и команды перезапуска служб


Ответы (2 шт):

Автор решения: Alexander Prokoshev

Зависит от используемого терминала.

Например, для mate-terminal возможно сделать так: mate-terminal --window -e "tail -f /var/log/Xorg.1.log" --tab -e "tail -f /var/log/Xorg.0.log" --tab -e "/bin/bash", где после "-e" в кавычках нужные вам команды или скрипты.

Привязка команды к мышовому объекту для её запуска также зависит от используемого DE или оконного менеджера.

→ Ссылка
Автор решения: Pak Uula

Запустите в терминале screen

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

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

$ screen -S SomeName - создать новый сеанс. В сеансе может быть любое количество интерактивных сессий, которые будут спокойно работать в фоне и ждать вашего переключения.

Если внутри сеанса screen нажать Ctrl-a d, то сеанс уйдёт в фон, а вас вернёт обратно в тот шелл, из которого был запущен screen. Это капец как удобно для управления сервером по ssh. Зашел, активировал фоновый сеанс командой $ screen -r SomeName, поработал, нажал Ctrl-a d, закрыл ssh. Канал закрыт, а оно на том конце и не заметило, что пользователь отключился.

Внутри screen клавиши Ctrl-a c создают новую интерактивную сессию, а клавиши Ctrl-a 0, Ctrl-a 1, Ctrl-a 2 ... - переключают между ними по номерам: 0 (самый первый), 1, 2 и так далее.

Более того, можно поделить экран консоли на области и на них будут параллельно выводиться интерактивные сессии.

CTRL-a | - разделить текущую панель по вертикали, CTRL-a S - по горизонтали. CTRL-a TAB - переключиться в следующую панель.

Возможностей много, мануал толстый. Я, если честно, пользуюсь только возможностями сворачивать сеансы на время, и переключением между сессиями внутри сеанса по Ctrl-a 0,1,2,3...

Сохранить и восстановить сеанс screen можно командой screen_session

Можно создать конфигурационный файл, в котором прописать запуск процессов в сессиях. Что-то вроде такого:

screen -t "Server" sh -c "cd ... ; server"
screen -t "Bash"
screen -t "Logs" sh -c "cd ...; tail -f log.file"

Запуск с кастомным конфигом: screen -c config.file

→ Ссылка