Estou interessado em saber mais sobre meu sistema. Iniciou, por exemplo, uma aplicação GUI "Impressão". Um nome bonito e brilhante no título.
Não há arquivo "imprimindo" em /usr/bin.
Existe algum truque para mostrar o nome real do aplicativo no sistema de arquivos em vez de “imprimir”, por exemplo “printgui”?
Responder1
Normalmente as aplicações GUI são iniciadas através de "lançadores", ou seja.Área de Trabalhoarquivos. Você está vendo "Impressão" 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ê poderá clicar com o botão direito na entrada do menu e selecionar Edit
ou Properties
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
os arquivos estão localizados /usr/share/applications
simplesmente grep
em -ing paraGenericName=Impressãodeve listar pelo menos um lançador contendo essa string.
Por exemplo, não tenho "Impressão" no meu sistema, mas tenho "Editor de Texto". Quero saber o nome real do aplicativo/executável, então executo:
grep "GenericName=Text Editor" /usr/share/applications/*
quais saídas:
/usr/share/applications/gedit.desktop:GenericName=Text Editor
Portanto, o "iniciador" do "Editor de Texto" é o /usr/share/applications/gedit.desktop
. Agora, para saber o nome real e o executável do "Editor de Texto", preciso digitar 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, basta executar:
which gedit
e isso retorna:
/usr/bin/gedit
Responder2
Eu transpus a resposta acima para o scriptexecCmdGnome3.shmostrado abaixo. Eu uso este utilitário para descobrir como chamar aplicativos fora do terminal cujo nome do shell gnome eu conheço.
#!/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"