Wie finde ich den Namen und den Pfad einer laufenden GUI-Anwendung unter Linux heraus?

Wie finde ich den Namen und den Pfad einer laufenden GUI-Anwendung unter Linux heraus?

Ich bin daran interessiert, mehr über mein System zu erfahren. Habe zum Beispiel eine GUI-Anwendung „Drucken“ gestartet. Ein glänzender, schöner Name im Titel.

In /usr/bin gibt es keine „druckende“ Datei.

Gibt es einen Trick, um den echten Namen der Anwendung im Dateisystem anzuzeigen, anstatt ihn zu „drucken“, zum Beispiel „printgui“?

Antwort1

Normalerweise werden GUI-Anwendungen über "Launcher" gestartet, d.h..desktopDateien. In Ihren Menüs wird „Drucken“ statt des tatsächlichen Namens angezeigt, da dies der „generische Name“ der Anwendung ist (Details in dem von mir geposteten Link). Je nachdem, welche DE Sie verwenden, können Sie möglicherweise mit der rechten Maustaste auf den Menüeintrag klicken und „ Editoder“ auswählen Properties. Dadurch können Sie den ausführbaren Pfad und manchmal den tatsächlichen Namen dieser Anwendung sehen. Dies ist in einer DE wie Gnome 3 nicht möglich, daher hier eine Lösung, die unabhängig von Ihrer DE funktionieren sollte.

.desktopDateien befinden sich in /usr/share/applicationsso einfach grep-ing fürGenericName=Druckensollte mindestens einen Launcher auflisten, der diese Zeichenfolge enthält.

Beispiel: Auf meinem System ist die Funktion „Drucken“ nicht installiert, dafür aber ein „Texteditor“. Ich möchte den tatsächlichen Namen der Anwendung/ausführbaren Datei wissen und führe daher Folgendes aus:

grep "GenericName=Text Editor" /usr/share/applications/*

welches ausgibt:

/usr/share/applications/gedit.desktop:GenericName=Text Editor

Der „Launcher“ für „Text Editor“ ist also /usr/share/applications/gedit.desktop. Um nun den tatsächlichen Namen und die ausführbare Datei für „Text Editor“ zu erfahren, muss ich den Wert von zwei Schlüsseln abrufen: Nameund Exec:

grep -E '(^Name=|^Exec=)' /usr/share/applications/gedit.desktop 

welches ausgibt:

Name=gedit
Exec=gedit %U

Um den vollständigen Pfad der ausführbaren Datei zu erhalten, müssen Sie lediglich Folgendes ausführen:

which gedit

und das gibt zurück:

/usr/bin/gedit

Antwort2

Ich habe die obige Antwort in das Skript übertragenexecCmdGnome3.shunten gezeigt. Ich verwende dieses Dienstprogramm, um herauszufinden, wie ich Anwendungen aus einem Terminal aufrufe, dessen Gnome-Shell-Name ich kenne.

#!/bin/bash
#
# Name: execCmdGnome3.sh
# Usage e.g.: sudo execCmdGnome3.sh "Document Viewer" 
# Output: Found Launcher: "evince.desktop"
#         Name=Document Viewer
#         Exec=evince %U

launcher=`grep "$1" /usr/share/applications/* | sed s/.*applications.// | sed s/:.*// | uniq`
echo "Found Launcher: \"$launcher\""
grep -E '(^Name=|^Exec=)' "/usr/share/applications/$launcher"

verwandte Informationen