我知道gnome-terminal
会打开一个新窗口,我想知道有没有办法打开一个新标签,而不仅仅是一个新窗口?
在此之后,有没有办法将命令传递给新窗口,例如
gnome-terminal && cd /
这将导致
- 新航站楼开放
- 新终端然后运行
cd /
[编辑] 这些答案会说如何将 cmds 传递到另一个终端,它没有回答如何打开新的TAB。这就是我所追求的,我不想打开多个终端。
我知道gnome-terminal
会打开一个新窗口,我想知道有没有办法打开一个新标签,而不仅仅是一个新窗口?
在此之后,有没有办法将命令传递给新窗口,例如
gnome-terminal && cd /
这将导致
cd /
[编辑] 这些答案会说如何将 cmds 传递到另一个终端,它没有回答如何打开新的TAB。这就是我所追求的,我不想打开多个终端。
GNOME Terminal
没有提供通用命令行解决方案来在现有窗口中打开新选项卡。(为什么?因为它可能打开了多个窗口,它不知道在哪个窗口打开新标签。你可能会说你只有一个窗口,但如果实现了这样的功能,软件需要保持一致并且当它有多个窗口时需要做一些合理的事情,而这实际上是做不到的。)
根据已提交的答案存在诸如模拟用户按键之类的黑客攻击,但仅在 X.Org 下有效,在 Wayland 下无效。
从即将发布的 3.28 版开始,如果
gnome-terminal --tab
从 GNOME 终端中执行此命令,该命令将在 GNOME 终端窗口中打开一个新选项卡,从该窗口执行该命令。(在这种情况下,它如何知道在哪个窗口中打开新选项卡?它通过在打开的每个终端中预先将某个环境变量设置为不同的值来知道。该环境变量可以让它找到所需的窗口。)
因此,对于您的特定情况,您可以这样做:
这样,一旦
cd /
完成,您就会在新选项卡中获得一个正在运行的 shell。如果您刚刚这样做gnome-terminal --tab -- some command
,则选项卡将在some command
退出后立即关闭。通过使用bash -c 'some command; exec bash'
,选项卡将在完成后有一个正在运行的bash
进程some command
。您必须在终端中模拟按shift++ 。存在这样做的程序:ctrlT
如果您想从命令行执行此操作
例如,您可以使用
xdotool
- 一个让您模拟键盘输入的程序。然后在终端输入:
这将模拟按下组合键。