Je me retrouve à faire <command> --help | grep <feature>
très très souvent tous les jours. Je me demandais s'il était possible de créer quelque chose comme ^^
ça "--help | grep"
et ensuite je fais ceci:
ls ^^ size
Cela exécuterait ce qui suit:
ls --help | grep size
bash
bash-expansion
yukashima huksay
la source
la source
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}
# d' où vous pouvez: taille QH ls, ls QH « quelque chose | autre » , etc. le (facultatif)type -all "$1"
ajouter aussi les informations sur 1 $: il dit que si vous lancerons un alias, une fonction, un etc, et il donne des informations de l'homme "$ 1" si la commande $ 1 n'avait pas l'option "--help" (cela arrive parfois)-a
, mais ne dit rien sur-l
ou-all
, mais la fonction fonctionne.Avec
zsh
, vous utiliseriez un alias global :Avec
bash
, vous pourrez peut-être utiliser l'expansion de l'historique, qui se produit suffisamment tôt dans l'analyse syntaxique du shell pour pouvoir remplacer un canal:Amorcez l'histoire avec le texte que vous souhaitez remplacer et un caractère spécial que vous n'utiliserez probablement pas autrement (comme
£
ici qui se trouve sur mon clavier):Ensuite, utilisez l'expansion de l'historique pour récupérer cela:
Ou vous pourriez avoir
readline
développé--help|grep
une touche ou une séquence de touches. Pour que cela s'appliquebash
uniquement (et pas à d'autres applications comme l'gdb
utilisation de readline), vous pouvez utiliser labind
commande bash builtin qui estbash
l'API de configurationreadline
, par exemple dans votre~/.bashrc
:Ou ajoutez à votre
~/.inputrc
(fichier de configuration de readline):(il y a d'autres shells comme
rc
oues
qui utilisent readline et où faire cette liaison pourrait avoir du sens mais AFAICT, ils ne définissent pas larl_readline_name
variable avant l'appelreadline
, vous ne pourrez donc pas leur ajouter des$if
instructions (ils s'afficheraientother
comme toutes les applications) qui utilisent readline sans leur dire le nom de leur application)).Notez que vous devez entrer la seconde
^
dans la demi-seconde (par défaut) après la première pour que la substitution se produise.la source
Vous pouvez utiliser des liaisons readline:
ajouter une ligne comme
à votre ~ / .inputrc
Appuyez ensuite sur ^ X ^ R dans votre terme, et la liaison sera activée.
La saisie
ls ^^
entraînera maintenantls --help | grep
.la source
Utilisation
less
pour afficher le message d'aideIl peut être utile de voir le contexte environnant des lignes correspondant à votre requête de recherche.
La syntaxe pour appeler cette
bash
fonction est similaire à la fonctionqh
dans la réponse de @ tgwtdt, le premier argument étant la commande à examiner et le second argument étant le terme de recherche. Par exemple:Cela ouvre le message d'aide complet dans
less
, met en surbrillance chaque instance du terme de recherche et fait défiler jusqu'à la première instance du terme de recherche. Vous pouvez ensuite appuyer surn
pour faire défiler vers l'avant jusqu'à la ligne suivante contenant le terme de recherche, àn
nouveau pour le suivant, etc. Pour revenir à une instance précédente, appuyez surN
. Utilisez lesHome
,End
,Page Up
,Page Down
,Up Arrow
et lesDown Arrow
touches de navigation générale. Appuyez surq
ouQ
pour quitterless
et revenir à la ligne de commande.la source
J'ai aimé la solution de @tgwtdt, alors je l'ai un peu améliorée.
Cela fait la même chose, mais fait un peu pour gérer les erreurs et essaie également de traiter les intégrés.
qh utilise () au lieu de {}, donc qh1 () et out sont locaux (en sous-shell).
la source