回答:
コマンドの場合compgen -c:
$ compgen -c bas
basename
base64
bashbug
bash
basename
base64
bashbug
この出力は、単純にパイプ処理できますgrep。
@ Salutisの者の回答に基づいて、私はと呼ばれるスクリプトを作成compし、中に保存され~/bin/compている検索commands」aliases、およびbuiltins(オプションフラグは、-cab参照はbashのmanエントリを、存在する場合、パイプを出力するオプションの二番目のパラメータで、)grep用と検索2番目のパラメーター。
Usage: comp string [keyword-for-grep]
コード:
#!/bin/bash
if [ -z "$1" ]; then
echo usage: comp string [keyword-for-grep]
echo
exit
fi
if [ -z "$2" ]; then
compgen -cab -- $1
exit
fi
compgen -cab -- $1 | grep -i $2
個人的には、スクリプトのシェル履歴(に関連するものhistory -d)から最後のコマンドを削除して、bash履歴を検索してもcompエントリが見つからないようにする方法を考えたいと思います。私もこれを使用して実行できることを知っていますがHISTIGNORE、Linuxはかなり強力であるため、スクリプトファイルからそれを実行する方法も必要です。
探しているものを見つけてみませんか?
例:
find / -name ec2* -executable -type f -perm -og+rx -print
あなたのユースケースを知っていれば、より詳細なコマンドの例を作成できます。
grep正規表現に入るとどのくらい正確に想像しますか?(y or n or g[rep])?私は悲観的に聞こえたくないのですが、bashコードに追加せずにこれを実行できるとは思えません。