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 readline
développé --help|grep
une touche ou une séquence de touches. Pour que cela s'applique bash
uniquement (et pas à d'autres applications comme l' gdb
utilisation de readline), vous pouvez utiliser la bind
commande bash builtin qui est bash
l'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 rc
ou es
qui utilisent readline et où faire cette liaison pourrait avoir du sens mais AFAICT, ils ne définissent pas la rl_readline_name
variable avant l'appel readline
, vous ne pourrez donc pas leur ajouter des $if
instructions (ils s'afficheraient other
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.
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)