GUIがあるすべてのインストール済みアプリケーションのリストが必要です。明確にするために、少なくともShow Applicationsにリストされているすべてのアプリケーション。
apt list --installed
、dpkg -l
、find '*.desktop'
のようないくつかのコマンドを試して、インストールされたすべてのアプリケーションのリストを取得しましたが、すべてのアプリケーションはAndroid Studio 、b1freearchiver、pyCharmなど。)
Show Applicationsメニューで使用されているフォルダーまたはファイルを見つけて、そこにリストされているすべてのアプリケーションを取得する方法はないでしょうか。
Ubuntu 18.04デスクトップを実行しています。
すべての.desktopファイルを検索してみてください。 GnomeのデベロッパーWebサイト は、それらを「ユーザーが実行できるアプリケーションの登録済みセット」と呼びますそしてそれらはほとんど常にGUIプログラムです。
この回答( *。desktopファイルを見つけるにはどうすればよいですか? )は、.desktopファイルをどこでも検索できると述べています。
find / -name '*.desktop'
または、おそらく/usr/share/applications/
と~/.local/share/applications
のみにあるので、それらshouldを調べるだけで十分です。
find /usr/share/applications ~/.local/share/applications -name '*.desktop'
ターミナルプログラムを除外したい場合(htopのようなターミナルGUIがある場合でも)、上記の検索にこれらのコマンドを追加できます。
... -print0 |xargs -0 grep -i -l "Terminal=False"
@ Xen2050 answer のcompめ言葉として、このワンライナーで*.desktop
ファイルを持つdeb-packagesの正確なパッケージ名を決定できます(APTに認識されます)。
dpkg --search '*.desktop' | awk '{print $1}' | sed "s/://" | sort --unique
上記のコマンドで:
dpkg --search '*.desktop'
は、*.desktop
ファイルを持つパッケージを検索します。|
は、前のコマンドの出力から次のコマンドの入力にリダイレクトされます。awk '{print $1}'
は、検索結果の最初の列を出力します(通常はplank: /usr/share/applications/plank.desktop
の形式-したがって、plank:
を取得します);sed "s/://"
は、パッケージ名から不要な:
を削除します(ここでplank
を取得します)。sort --unique
は結果をソートし、それらから重複を削除します。Ubuntu 16.04.5 LTSでは、約347の一意のパッケージ名が返されます。
ホームフォルダーにソフトウェアをインストールした場合-以下のコマンドを使用できます
find ~ -name '*.desktop'
またはより正確に
find ~/.local/share/applications/ '*.desktop'
*.desktop
ファイルを見つけます。
一般的に、それを判断することは困難です。他の答えは、コマンドラインアプリにも.desktopファイルがあるか、GUIアプリに。デスクトップファイル。さらに、.desktopファイルで参照されているアプリがシステム上にまだ存在するという保証はありません(既存のパスのExec =行を確認または確認するには、実行する必要があります)。したがって、それは悪い基準です。
しかし、できることはより良い質問をすることです。 GUIに依存するアプリは何ですか?それはapt-cache rdepends 'package or lib'
で見つけることができます。たとえば、apt-cache rdepends libappindicator
は、依存関係としてそのlibを持つパッケージを表示し、おそらくそのようなアプレットを提供します。
ただし、公平を期すために、ターミナルアプリは実際にGUIインターフェイスを持たずにGUIとインターフェイスすることもできます。 GUIフロントエンドでアプリを見つけるという目標がGtkまたはQtライブラリに依存するアプリを探す場合
もちろん、パッケージメンテナーがパッケージの依存関係の説明を適切に提供したかどうかにも依存します。標準のUbuntuリポジトリの場合は問題ありません。開発者とメンテナーに依存する外部PPAの場合。