![特定のプロセスを開始したターミナルセッションを識別する](https://rvso.com/image/1036622/%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%9F%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E8%AD%98%E5%88%A5%E3%81%99%E3%82%8B.png)
私はUbuntuでGnomeを使用しています。8~20のターミナルセッションを開いていることが多く、そのうちのいくつかでは別のユーザーにsuしています。このクエリを書く原因となった特定の問題は、git ステータスしかし、これはより一般的な問題です。 git ステータス制御されていないファイル .foo.java.swp があることがわかります。これは、ターミナル セッションの 1 つで foo.java に対して vi が開いていることを意味します。
どのターミナル セッションで vi が実行されているかを知らせるスクリプトまたはツールが必要です。「ps aux | grep vi」を実行すると、特定の vi の pid を簡単に見つけることができます。ツールが何らかの方法でタスク バー上のターミナルを強調表示してくれると便利です。
ありがとう。
-サム
答え1
各ターミナルウィンドウには、コマンドでアクセスできる異なる擬似ターミナルが割り当てられます。これを出力の列tty
と相互参照できます。GUI統合の場合、通常は、現在のpty識別子をターミナルのウィンドウタイトルに追加するだけで十分です。TTY
ps u
xタイトル、 のように
if [ "$PS1" ] ; then
xtitle xterm $(tty)
fi
私のウィンドウ マネージャーではタイトルでウィンドウにジャンプするのは簡単ですが、GNOME についてはわかりません。