在不同位置设置多个终端选项卡的脚本或启动器

use*_*548 15 linux linux-terminal

我前段时间已经研究过这个,但没有找到任何可以打开终端选项卡、运行一些命令然后让我继续使用这些终端选项卡的解决方案。我发现从命令行启动终端选项卡的所有方法只会启动选项卡,之后不允许我继续使用它们。

我试图解决的问题是,每次我需要启动我的机器(或本例中的虚拟机)时,我都需要围绕六个不同的终端选项卡进行设置,以指向不同的文件夹并在其中一些文件夹上导出一些环境变量。

我已经对 xfce 终端进行了试验,并且我已经通过这样的命令获得了一些方法:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加命令参数,则该选项卡在打开时将不再可用:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab --command="cd ~/folder1"
Run Code Online (Sandbox Code Playgroud)

http://docs.xfce.org/apps/terminal/command-line

我目前使用 Red Hat Linux 和 gnome 2.28.2。

ter*_*don 19

您可以使用GNOME terminatorwhich 是一个很棒的终端来做到这一点,其中包括水平或垂直拆分窗格的能力。

安装后,terminator您可以使用所需的设置设置配置文件(从此处改编的说明):

  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]
    
    Run Code Online (Sandbox Code Playgroud)

最终结果是,当您运行terminator它时,它将打开 6 个窗格,每个窗格都已运行或正在运行您指定的命令:

在此处输入图片说明