我有興趣了解有關我的系統的更多資訊。啟動 GUI 應用程式“列印”等。標題中的一個閃亮好聽的名字。
/usr/bin 中沒有檔案「列印」。
是否有一些技巧可以在檔案系統中顯示應用程式的真實名稱而不是“列印”,例如“printgui”?
答案1
通常GUI應用程式是透過「啟動器」啟動的,即。文件。您在選單中看到“列印”而不是真實姓名,因為這是應用程式的“通用名稱”(詳細資訊在我發布的連結中)。根據您使用的 DE,您也許可以右鍵單擊選單項目並選擇Edit
或 ,Properties
這將允許您查看可執行路徑,有時甚至是該應用程式的真實名稱。這在像 Gnome 3 這樣的桌面環境中是不可能的,所以這裡有一個無論你的桌面環境如何都應該有效的解決方案。
.desktop
檔案位於/usr/share/applications
如此簡單的grep
-ing forGenericName=列印應列出至少一個包含該字串的啟動器。
例如,我的系統上沒有“列印”,但有“文字編輯器”。我想知道應用程式/可執行檔的真實名稱,所以我運行:
grep "GenericName=Text Editor" /usr/share/applications/*
其輸出:
/usr/share/applications/gedit.desktop:GenericName=Text Editor
所以「文字編輯器」的「啟動器」是/usr/share/applications/gedit.desktop
。現在,為了知道「文字編輯器」的真實名稱和可執行文件,我必須 grep 兩個鍵的值:Name
和Exec
:
grep -E '(^Name=|^Exec=)' /usr/share/applications/gedit.desktop
其輸出:
Name=gedit
Exec=gedit %U
對於可執行檔的完整路徑,這只是運行的問題:
which gedit
返回:
/usr/bin/gedit
答案2
我將上面的答案轉入腳本中execCmdGnome3.sh如下圖所示。我使用這個實用程式來了解如何從我知道 gnome shell 名稱的終端呼叫應用程式。
#!/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"