Command-Line

如何判斷打開應用程序的命令是什麼?

  • December 18, 2019

它時不時地發生在我的系統中安裝了一個應用程序,我不知道如何從命令行執行。

為了找出答案,我通常lsof在從 GUI 執行應用程序後Google或搜尋(並不總是成功)的輸出。

必須有一個更簡單的方法。它是什麼?

您可以從桌面環境啟動的應用程序由.desktop文件描述,這些文件儲存在/usr/share/applications~/.local/share/applications(嚴格來說,相應的 XDG 目錄,但這些是預設設置)。給定一個應用程序名稱,如您的桌面環境所示,您可以在這些文件中查找它並找到相應的Exec行。

為此,您可以使用 GUI 菜單編輯器,例如 GNOME 的 Alacarte 或MenuLibre,或在命令行上搜尋。

Alacarte(GNOME 中的“主菜單”)顯示所有可用的應用程序,每個條目的屬性顯示相應的命令:

Alacarte 螢幕截圖顯示“使用者”的啟動器屬性

在終端視窗中,可以使用以下命令找到此“使用者”應用程序

grep -l Name.\*=Users {/usr,~/.local}/share/applications/*.desktop |
xargs -r grep Exec=

由此可見

Exec=gnome-control-center user-accounts

並且足夠真實,

gnome-control-center user-accounts

在命令行上打開相應的面板。

對於 DB Browser,您將執行

grep -l "Name.*=DB Browser" {/usr,~/.local}/share/applications/*.desktop |
xargs -r grep Exec=

在某些情況下,該Exec行會有額外的參數,例如 %f; 這些是文件等參數的佔位符。

引用自:https://unix.stackexchange.com/questions/557855