
Я хотел бы открыть терминал, разделить его, скажем, на 9 частей (3x3) и выполнить какой-нибудь скрипт bash. Но для каждой части терминала свой скрипт.
Можно ли это сделать с помощью Perl, Python или даже Bash?
Как переключаться между этими маленькими терминалами, не используя сочетания клавиш?
О, кстати, я использую terminator
. И если есть какой-то другой эмулятор терминала, который обеспечивает такую функциональность, какой это?
решение1
Плагиатить самого себя, вы можете настроить профиль с желаемыми настройками (инструкции адаптированы изздесь):
Запустите
terminator
и настройте желаемую раскладку. Вы можете использовать Ctrl+ Shift+ Eдля вертикального разделения окон и Ctrl+ Shift+ O(это O как в oodles, а не ноль) для горизонтального разделения. Для этого примера я создал раскладку с 6 панелями:Щелкните правой кнопкой мыши по
terminator
окну и выберитеПредпочтения. ОднаждыПредпочтенияокно открыто, перейдите наМакетыи нажмитеДобавлять:Это заполнитМакетысписок с вашим новым макетом:
Найдите каждый из терминалов, которые вы создали в макете, и щелкните по ним. Затем справа введите команду, которую вы хотите запустить в них при запуске:
ВАЖНЫЙ:Обратите внимание, что за командой следует
; bash
. Если вы этого не сделаете, терминалы будут недоступны, так как они выполнят указанную вами команду и закроются. Вам нужно запустить оболочку после каждой команды, чтобы иметь возможность использовать терминалы.После того, как вы установили все команды, нажмитеЗакрыватьи затем выйти
terminator
.Откройте
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.
решение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