端末で利用可能なアプリケーションコマンドを一覧表示する方法

端末で利用可能なアプリケーションコマンドを一覧表示する方法

私はFluxboxを使用していますが、最近ビデオ編集アプリケーションを起動したかったのですが、名前は覚えていません。私は通常ターミナルでアプリケーションを実行するので、Xmonadの「run or raise」機能など、すべての(アプリケーションまたは)アプリケーション固有のコマンドを一覧表示する方法があるかどうか疑問に思います。この機能は1:14で見ることができます。http://www.youtube.com/watch?v=AyNkBLhIpQk&feature=関連

編集:インストールされているすべてのアプリケーションのリスト(shotwell、gedit、gvim、vim、vi、firefox、chromium-browserなど、利用可能なすべてのアプリケーションコマンドのリスト)を返すコマンドを端末に入力できるようにしたいです。など)実行できるアプリケーション(どんなアプリケーションがあるのか​​)を知りたいです。

答え1

を使用している場合は、組み込みの次のものをbash(1)使用できます。compgen

$ compgen -abc -A function

-aエイリアス、-b組み込み関数、-cコマンド、および-A functionシェル関数の場合。これらを除外したい場合は、かなり大きなリストを取得できるので、どちらを選択できます(私のシステムには3206のコマンドがあります)。

このcompgenコマンドはコマンドライン補完候補を生成するために使用されますが、この目的にも使用できます。

答え2

「実行可能なアプリケーション」が「パスの実行可能ファイル」と同義であると仮定すると、これは簡単です。

#!/bin/bash
IFS=: read -ra _dirs_in_path <<< "$PATH"

for _dir in "${_dirs_in_path[@]}"; do
    for _file in "${_dir}"/*; do
        [[ -x ${_file} && -f ${_file} ]] && printf '%s\n' "${_file##*/}"
    done
done

答え3

少なくとも1文字を入力してからを押すと、Tab名前がその文字で始まるすべてのランチャーのリストが表示されます。これは…完了またはオートコンプリート

次のシェルフラグメントを使用して、すべてのランチャーを一覧表示できます。

( IFS=':'; set -f;
  for dir in $PATH; do
    for x in $dir/*; do echo $x; done
  done )

これはあなたが持っているすべてのランチャーをリストします。これはおそらくあなたが望むすべてのアプリケーションよりも一般的です。また、他のコマンドによって呼び出されることを意図した多くのコマンドを表示することができ、ユーザーが直接呼び出すことはほとんどありません。 GUIから呼び出すように設計されたアプリケーションのリストは、*.desktop以下のファイルで確認できます/usr/share/applications。次のコマンドはこれを表示します(コマンドに通常必要な引数の種類を%u表す移動パスなどを見つけることができます。%cデスクトップファイル形式の仕様)。

grep -Proh '(?<=^Exec=).*' /usr/share/applications

dpkg -lDebian、Ubuntu、およびその派生物の下にあるパッケージを一覧表示すると、どのアプリケーションをインストールしたかをよりよく理解できますrpm -ql

関連情報