gnome端末を開くときにプログラムでgnome端末を照会するコマンドはありますか?
GNOME端末にはいくつのタブがありますか?
各タブのパスワードは何ですか?
私は夜に仮想マシンを失ったので、上記の情報を保存してから翌日ログインしたときにプログラムですべてのgnome端末を再開するスクリプトを作成したいと思います。
答え1
dbus
;を使用して開いているウィンドウとタブを列挙し、そのタブに直接移動できます。
dbus-send --session --dest="org.gnome.Terminal" --print-reply /org/gnome/Terminal org.freedesktop.DBus.ObjectManager.GetManagedObjects | grep -c /screen/
何個開いているか教えてくれます。
シェルがVTEと連携している場合、GNOME端末はタブで実行されている各シェルの最後の現在のディレクトリを知ります(シェルでない場合は、各タブで実行されているリーフプロセスの現在のディレクトリではありません)。バスで検索する方法はありますか?
あなたは何ですかできるdoは、親プロセスがGNOME端末であるすべての「リーフ」プロセスの現在の作業ディレクトリを一覧表示します。
pstree -T -p $(pgrep gnome-terminal) |
sed -E 'sX^.*\(([0-9]+)\)$X/proc/\1/cwdX' |
xargs readlink -f
これはどのタブがどこにあるのかを教えてくれませんが、それが重要かどうかはわかりません(私が知っている限り、各タブが何で実行されているかを確認する方法はありません)。この方法のバリエーションを使用すると、現在の作業ディレクトリだけでなく、何が実行されているかを把握できます。