Como descobrir o nome e o caminho de uma aplicação GUI em execução no linux?

1

Estou interessado em saber mais sobre o meu sistema. Começou por exemplo um aplicativo GUI "Printing". Um bom nome brilhante no título.

Não há arquivo "impressão" em / usr / bin.

Existe algum truque para mostrar o nome real do aplicativo no sistema de arquivos em vez de "imprimir", por exemplo "printgui"?

    
por James Mitch 26.09.2012 / 17:25

2 respostas

3

Normalmente, as aplicações GUI são iniciadas através de "iniciadores", ou seja, .desktop arquivos. Você está vendo "Imprimindo" em seus menus, em vez do nome real, porque esse é o "nome genérico" do aplicativo (detalhes no link que postei). Dependendo de qual DE você está usando, você pode clicar com o botão direito do mouse na entrada de menu e selecionar Edit ou Properties , o que permitiria ver o caminho do executável e, às vezes, o nome real desse aplicativo. Isso não é possível em um DE como o Gnome 3, então aqui está uma solução que deve funcionar independentemente do seu DE.

.desktop arquivos estão localizados em /usr/share/applications , então simplesmente grep -ing para GenericName = Impressão deve listar pelo menos um iniciador contendo essa sequência.

Por exemplo Eu não tenho "impressão" no meu sistema, mas eu tenho "Editor de texto". Eu quero saber o nome real do aplicativo / executável, então eu corro:

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

quais saídas:

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

Portanto, o "lançador" do "Editor de texto" é /usr/share/applications/gedit.desktop . Agora, para saber o nome real e o executável do "Editor de texto", tenho que usar o valor de duas chaves: Name e Exec :

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

quais saídas:

Name=gedit
Exec=gedit %U

Para o caminho completo do executável, é apenas uma questão ou está em execução:

which gedit

e isso retorna:

/usr/bin/gedit
    
por 26.09.2012 / 19:07
2

Transponho a resposta acima para o script execCmdGnome3.sh mostrado abaixo. Eu uso esse utilitário para descobrir como chamar aplicativos fora do terminal cujo nome de shell gnome eu sei.

#!/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"
    
por 18.02.2014 / 00:03

Tags