¿Cómo abrir la terminal, dividirla en 9 terminales y cambiar entre ellas usando un script?

¿Cómo abrir la terminal, dividirla en 9 terminales y cambiar entre ellas usando un script?

Me gustaría abrir una terminal, dividirla en, digamos, 9 partes (3x3) y ejecutar algún script bash. Pero para cada terminal parte un script diferente.

¿Se puede hacer esto usando Perl, Python o incluso bash?

¿Cómo puedo cambiar entre esos pequeños terminales sin usar atajos de teclado?

Ah, por cierto, estoy usando terminator. Y si existe algún otro emulador de terminal que permita dicha funcionalidad, ¿cuál es?

Respuesta1

Para plagiarme, puede configurar un perfil con la configuración que desee (instrucciones adaptadas deaquí):

  1. Ejecute terminatory configure el diseño que desee. Puedes usar Ctrl+ Shift+ Epara dividir ventanas verticalmente y Ctrl+ Shift+ O(eso es O como en montones, no cero) para dividir horizontalmente. Para este ejemplo, he creado un diseño con 6 paneles:

    ingrese la descripción de la imagen aquí

  2. Haga clic derecho en la terminatorventana y elijaPreferencias. Una vez elPreferenciasLa ventana está abierta, vaya aDiseñosy haga clicAgregar:

    ingrese la descripción de la imagen aquí

  3. Eso poblará elDiseñoslista con su nuevo diseño:

    ingrese la descripción de la imagen aquí

  4. Encuentra cada uno de los terminales que has creado en el diseño y haz clic en ellos. Luego, a la derecha, ingrese el comando que desea ejecutar en ellos al inicio:

    ingrese la descripción de la imagen aquí

    IMPORTANTE:Tenga en cuenta que el comando va seguido de ; bash. Si no haces eso, no se podrá acceder a las terminales, ya que ejecutarán el comando que les des y saldrán. Debe iniciar un shell después de cada comando para poder utilizar las terminales.

    Una vez que haya configurado todos los comandos, haga clic enCercay luego salir terminator.

  5. Abra el terminatorarchivo de configuración ~/.config/terminator/configy elimine la sección debajo de diseños para la configuración predeterminada. Luego cambie el nombre del diseño que creó al predeterminado. Debería verse así:

     [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]
    

El resultado final es que cuando lo ejecute terminatorse abrirá con 6 paneles, cada uno de los cuales ha ejecutado o está ejecutando los comandos que ha especificado:

ingrese la descripción de la imagen aquí

Además, puede configurar tantos perfiles diferentes como desee e iniciar Terminator con el -pinterruptor que proporciona un nombre de perfil o cambiar manualmente al perfil que desee después del inicio.

Respuesta2

¿Está buscando un multiplexor de terminal tmux?

https://github.com/tmux/tmux

Respuesta3

Cuando usaba terminatoreste es el archivo rc que usaba para abrir un montón de terminales y ejecutar aplicaciones. Guárdalo en .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]

EDITAR:Tenga en cuenta que esta información probablemente provino de la publicación de Terdon en un hilo mucho anterior. He estado usando esta configuración durante algunos meses, ¡pero la publicación de Terdon aquí parece muy familiar!

Respuesta4

Script contenedor para dividir el emulador de terminal Terminator https://github.com/AlekseyChudov/terminator-split

información relacionada