Avec zsh, vous utiliseriez un alias global :
$ alias -g '^^=--help|grep --color -i'
$ ls ^^ size
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
1,048,576 bytes; see SIZE format below
-h, --human-readable with -l and/or -s, print human readable sizes
-s, --size print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
The SIZE argument is an integer and optional unit (example: 10K is 10*1024)
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):
$ --help $(: £)|grep
bash: --help: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Ensuite, utilisez l'expansion de l'historique pour récupérer cela:
$ ls !?£? size
ls --help $(: £)|grep size
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
-h, --human-readable with -l and/or -s, print human readable sizes
-s, --size print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
Ou vous pourriez avoir readlinedéveloppé --help|grepune touche ou une séquence de touches. Pour que cela s'applique bashuniquement (et pas à d'autres applications comme l' gdbutilisation de readline), vous pouvez utiliser la bindcommande bash builtin qui est bashl'API de configuration readline, par exemple dans votre ~/.bashrc:
bind '"^^": "--help|grep "'
Ou ajoutez à votre ~/.inputrc(fichier de configuration de readline):
$if Bash
"^^": "--help|grep "
$endif
(il y a d'autres shells comme rcou esqui utilisent readline et où faire cette liaison pourrait avoir du sens mais AFAICT, ils ne définissent pas la rl_readline_namevariable avant l'appel readline, vous ne pourrez donc pas leur ajouter des $ifinstructions (ils s'afficheraient othercomme 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.
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)