如何打开终端,拆分为9个终端并使用一个脚本在它们之间切换?


17

我想打开一个终端,将其拆分成可以说的9个部分(3x3),然后执行一些bash脚本。但是对于每个终端部分,不同的脚本。

可以使用perl,python甚至bash来完成吗?

如何在不使用键盘快捷键的情况下在这些小终端之间切换?

哦,顺便说一句,我正在使用terminator。如果还有其他支持这种功能的终端仿真器,那是什么?


terminator不是壳。有两种不同的终端仿真器称为terminator(其中只有一个相信可以分割屏幕)。
斯特凡Chazelas

啊,谢谢..那我想知道如何terminator使用脚本分割?:)并在这些部分之间切换?
jirislav 2014年

1
我从未使用过它,现在也没有时间研究它,但是我认为(虽然不确定)如果在远程系统上运行终端,byobu可以为您提供帮助-请参阅help.ubuntu。 com / community / Byobu。Byobu在许多* nix发行版上运行
Clive van Hilten 2014年

1
正如@ClivevanHilten提到并在此处回答的那样,可以通过友好的Byobu(默认情况下位于tmux之上)来完成。
Pablo A

Answers:


35

为了窃自己,您可以使用所需的设置来建立个人资料(说明从此处改编):

  1. 运行terminator,然后设置所需的布局。您可以使用Ctrl+ Shift+ E垂直分割窗口和Ctrl+ Shift+ O(这是在苦苦O,不是零),以水平分割。对于此示例,我创建了一个包含6个窗格的布局:

    在此处输入图片说明

  2. 右键单击terminator窗口,然后选择“首选项”。打开“首选项”窗口后,转到“布局”,然后单击“添加”:

    在此处输入图片说明

  3. 这将使用您的新布局填充“布局”列表:

    在此处输入图片说明

  4. 找到在布局中创建的每个终端,然后单击它们,然后在右侧输入要在启动时在其中运行的命令:

    在此处输入图片说明

    重要说明:请注意,命令后跟; bash。如果您不这样做,则将无法访问终端,因为它们将运行您给出的命令并退出。您需要在每个命令之后启动shell才能使用终端。

    设置所有命令后,单击“关闭”,然后退出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个窗格,每个窗格都已运行或正在运行您指定的命令:

在此处输入图片说明

另外,您可以根据需要设置任意数量的配置文件,并通过-p提供配置文件名称的开关启动终结器,或者在启动后手动切换到所需的配置文件。


泰顿,谢谢!这可能是我学会编写该配置文件的地方!
dotancohen 2014年

@dotancohen很高兴听到我对我有帮助:)
特登

1
哇!非常感谢,“; bash”救了我的命!
艾蒂安

“您需要在每个命令之后启动shell才能使用终端。” 很棒-当我最初尝试时,这根本不直观。它们应包括某种复选框以自动启用此功能。
dtmland


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]

编辑:请注意,此信息可能来自Terdon在更早的主题上的帖子。我已经使用这种设置几个月了,但是Terdon在这里的帖子看起来非常熟悉!


这就是我想要的-如何拆分终端并执行特定的脚本-谢谢!但是我不想每次都这样执行。是否有可能拥有更多这些配置并根据我的需要打开每个配置?假设通过添加--config2或--config1参数?
jirislav 2014年

您无需添加更多配置文件,而是将部分添加到配置文件中。参见Terdon的帖子,他解释得很好,实际上,我是从他的帖子中的较早主题中学到的。
dotancohen 2014年

哦,我知道了。因此,我接受了他的回答是最有帮助的。但是还是谢谢你。
jirislav 2014年

好的选择!我实际上想建议接受他的回答,因为信息确实来自他的辛苦!
dotancohen 2014年

2

用于拆分Terminator终端模拟器的包装器脚本 https://github.com/AlekseyChudov/terminator-split


2
您应该在此处包括相关信息,一旦github消失了,您的答案就会失去其所有潜在价值。
Anthon 2013年

1
看起来不错..但是如何运行此脚本?
萨钦(Sachin)

1
terminator-split具有很大的潜力,但似乎无法在不同的分割中运行不同的命令,并且-m示例中显示的参数未在用法摘要中列出
bitinerant
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.