回答:
コマンドの場合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コードに追加せずにこれを実行できるとは思えません。