识别启动特定进程的终端会话

识别启动特定进程的终端会话

我在 Ubuntu 上使用 Gnome。我经常打开 8-20 个终端会话,其中一些会话我切换到不同的用户。导致我写这个查询的具体问题发生在使用git 状态,但这是一个更普遍的问题。 git 状态会告诉我有一个不受控制的文件 .foo.java.swp。这意味着在我的一个终端会话中,我在 foo.java 上打开了 vi。

我需要一个脚本或工具来告诉我 vi 在哪个终端会话中运行。我可以执行“ps aux | grep vi”来轻松找到特定 vi 的 pid。如果该工具以某种方式突出显示任务栏上的终端,那就太好了。

谢谢。

—萨姆

答案1

每个终端窗口都会分配一个不同的伪终端,可通过命令tty访问。您可以将其与输出列进行交叉引用。对于 GUI 集成,我通常发现使用以下命令将当前 pty 标识符添加到终端窗口标题就足够TTYps u标题, 喜欢

if [ "$PS1" ] ; then
  xtitle xterm $(tty)
fi

在我的窗口管理器中,通过标题跳转到一个窗口很容易,但对 GNOME 却一无所知。

相关内容