gnome 터미널에 프로그래밍 방식으로 쿼리할 수 있는 명령: 탭 수 및 비밀번호는 무엇입니까?

gnome 터미널에 프로그래밍 방식으로 쿼리할 수 있는 명령: 탭 수 및 비밀번호는 무엇입니까?

gnome 터미널을 열 때 프로그래밍 방식으로 gnome 터미널을 쿼리할 수 있는 명령이 있습니까?

  1. 그놈 터미널에는 몇 개의 탭이 열려 있습니까?

  2. 각 탭의 비밀번호는 무엇입니까?

밤에 가상 머신을 잃어버렸기 때문에 위의 정보를 저장한 다음 다음날 로그인할 때 프로그래밍 방식으로 모든 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

이것은 어느 탭이 어디에 있는지 알려주지는 않지만 그것이 중요한지는 확실하지 않습니다(내가 아는 한 각 탭이 무엇에서 실행되고 있는지 확인할 방법이 없습니다). 이 방법의 변형을 사용하면 현재 작업 디렉터리뿐 아니라 무엇이 실행되고 있는지 알아낼 수 있습니다.

관련 정보