哪些命令允许我以编程方式查询 gnome 终端:它有多少个选项卡,以及它们的密码是什么

哪些命令允许我以编程方式查询 gnome 终端:它有多少个选项卡,以及它们的密码是什么

当我打开 gnome 终端时,是否有一个命令允许我以编程方式查询该 gnome 终端:

  1. gnome 终端打开了多少个选项卡?

  2. 每个选项卡的 pwd 是多少?

我在晚上丢失了虚拟机,因此我想编写一个脚本来存储上述信息,然后在第二天登录时以编程方式重新打开所有 gnome 终端。

答案1

dbus您可以使用;枚举打开的窗口和选项卡直接进入选项卡:

dbus-send --session --dest="org.gnome.Terminal" --print-reply /org/gnome/Terminal org.freedesktop.DBus.ObjectManager.GetManagedObjects | grep -c /screen/

会告诉你有多少个是开放的。

如果您的 shell 与 VTE 合作,GNOME 终端将了解选项卡中每个正在运行的 shell 的最后当前目录(如果不是 shell,则不是每个选项卡中运行的叶进程的当前目录);但我不认为有办法通过总线检索它。

你什么do 列出所有父进程为 GNOME Terminal 的“leaf”进程的当前工作目录:

pstree -T -p $(pgrep gnome-terminal) |
sed -E 'sX^.*\(([0-9]+)\)$X/proc/\1/cwdX' |
xargs readlink -f

这不会告诉您哪个选项卡在哪里,但我不确定这是否重要(据我所知,没有办法确定每个选项卡正在运行什么)。您可以使用此方法的变体来找出正在运行的内容,而不仅仅是当前的工作目录。

相关内容