特定の(大文字と小文字の区別)パターンに一致するすべてのコマンドのリストを取得する方法はありますか?たとえば、私は次のコマンドを知っています(可能エイリアスです)「diag」または「Diag」を含むコマンドを探していますが、実際のコマンドはわかりません。
私は現在UbuntuでBashを使用していますが、さまざまなディストリビューションでどのように機能するかを知りたいので、このサイトに特に質問します。 (たとえば、後でCentOSとManjaroでもこの技術が必要になるでしょう)。
man iag
Powershellのように動作したいのですhelp iag
が、うまくいきませんでした。
私を試してみましたGoogle Fuただし、これはファイル内のテキストの部分名でファイルを検索する方法だけを説明しているようです。
私はこのSEサイトをさまざまな方法で検索してみました(例:1、2)しかし、私の質問と重複した内容は見つかりませんでした。
コマンドの一部だけを覚えている場合は、コマンドの正確な名前をどのように見つけることができますか?
答え1
すべてのコマンドのリストを取得するには、compgen -c
次のように使用することもできます。
compgen -c dif
「dif」で始まるすべてのコマンドのリストを取得します。
これを次のように組み合わせて、必要なものをgrep
入手してください。
compgen -c | grep -i diag
"diag"を含むコマンドを見つけます。より柔軟な検索のために正規表現を使用してください。
compgen -c | grep -i ^diag # started with diag
compgen -c | grep -i diag$ # ended to diag
apropos
マニュアルページ名と説明を検索するFindコマンドを使用することもできます。