利用可能なすべてのコマンドと関数のリストを生成するにはどうすればよいでしょうか?

利用可能なすべてのコマンドと関数のリストを生成するにはどうすればよいでしょうか?

Linux (私は CentOS 7 を使用しています) には、実行可能なすべてのコマンドを表示する機能が組み込まれています。コマンドは、コンソールで Tab キーを 2 回押してプロンプトを表示することで実行されます。

Display all 1130 possibilities? (y or n)

押すと、y膨大なコマンドのリストがコンソールに出力されます。

この出力をファイルにキャプチャする方法はありますか?

それとも、このリストはすでにローカルに保存されていますか? その場合、どうすればアクセスできますか?

答え1

私が選択した解決策は、次のコマンドを実行することでした:

$ compgen -A function -abck | sort -u >> cmds.txt

実行可能なコマンド、関数、エイリアスをすべてテキストファイルに追加します。cmds.txt

出典:https://stackoverflow.com/questions/948008/linux-command-to-list-all-available-commands-and-aliases

編集: sort -uglenn jackman の提案に従って重複を削除するコマンドを追加しました

答え2

重複して出力されているようですcompgen。おそらく、PATH 内の複数の場所に表示されるプログラムです。

オートコンプリートは次のように言います:

$ [tab][tab]
Display all 2328 possibilities? (y or n)

compgen は言います:

$ compgen -A function -abck | wc -l
2647
$ compgen -A function -abck | sort -u | wc -l
2328

これがあなたにとって重要かどうかは分かりません。

関連情報