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 „ Edit
oder“ 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.
.desktop
Dateien befinden sich in /usr/share/applications
so 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: Name
und 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"