Estoy interesado en aprender más sobre mi sistema. Inició, por ejemplo, una aplicación GUI "Impresión". Un bonito nombre brillante en el título.
No hay ningún archivo "imprimiendo" en /usr/bin.
¿Existe algún truco para mostrar el nombre real de la aplicación en el sistema de archivos en lugar de "imprimir", por ejemplo "printgui"?
Respuesta1
Por lo general, las aplicaciones GUI se inician a través de "lanzadores", es decir.escritorioarchivos. Estás viendo "Imprimir" en tus menús en lugar del nombre real porque ese es el "nombre genérico" de la aplicación (detalles en el enlace que publiqué). Dependiendo del DE que esté utilizando, es posible que pueda hacer clic derecho en la entrada del menú y seleccionar Edit
o Properties
que le permitiría ver la ruta ejecutable y, a veces, el nombre real de esa aplicación. Eso no es posible en un DE como Gnome 3, así que aquí hay una solución que debería funcionar independientemente de su DE.
.desktop
Los archivos se encuentran en /usr/share/applications
tan simplemente grep
-ing paraNombreGenérico=Impresióndebe enumerar al menos un iniciador que contenga esa cadena.
Por ejemplo, no tengo "Impresión" en mi sistema pero tengo "Editor de texto". Quiero saber el nombre real de la aplicación/ejecutable así que ejecuto:
grep "GenericName=Text Editor" /usr/share/applications/*
que produce:
/usr/share/applications/gedit.desktop:GenericName=Text Editor
Entonces, el "lanzador" del "Editor de texto" es /usr/share/applications/gedit.desktop
. Ahora, para saber el nombre real y el ejecutable del "Editor de texto", tengo que obtener el valor de dos claves: Name
y Exec
:
grep -E '(^Name=|^Exec=)' /usr/share/applications/gedit.desktop
que produce:
Name=gedit
Exec=gedit %U
Para conocer la ruta completa del ejecutable, sólo es cuestión de ejecutar:
which gedit
y eso devuelve:
/usr/bin/gedit
Respuesta2
Transpuse la respuesta anterior al guión.ejecutivoCmdGnome3.shmostrado a continuación. Utilizo esta utilidad para descubrir cómo llamar aplicaciones desde la terminal cuyo nombre de shell de gnome conozco.
#!/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"