Con zsh
, useresti un alias globale :
$ 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)
Con bash
, potresti essere in grado di utilizzare l' espansione della cronologia, che si verifica abbastanza presto nell'analisi della sintassi della shell e che può funzionare per sostituire una pipe:
Prime la storia con un testo che vuoi sostituire e un carattere speciale che difficilmente userai altrimenti (come £
qui che si trova sulla mia tastiera):
$ --help $(: £)|grep
bash: --help: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Quindi utilizzare l'espansione della cronologia per recuperarlo:
$ 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
Oppure avresti potuto readline
espandere la --help|grep
pressione di alcuni tasti o sequenze di tasti. Affinché ciò si applichi bash
solo (e non ad altre applicazioni come l' gdb
utilizzo di readline), è possibile utilizzare il bind
comando incorporato bash che è bash
l'API per la configurazione readline
, ad esempio in ~/.bashrc
:
bind '"^^": "--help|grep "'
Oppure aggiungi al tuo ~/.inputrc
(file di configurazione di readline):
$if Bash
"^^": "--help|grep "
$endif
(ci sono altre shell simili rc
o es
che usano readline e dove fare quell'associazione potrebbe avere senso ma AFAICT, non impostano la rl_readline_name
variabile prima di invocare, readline
quindi non sarai in grado di aggiungere alcune $if
istruzioni per loro (mostrerebbero other
come tutte le applicazioni che usano readline senza dirgli il nome dell'applicazione)).
Si noti che è necessario inserire il secondo ^
entro mezzo secondo (per impostazione predefinita) dopo il primo affinché avvenga la sostituzione.
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}
# quindi potresti: qh ls size, qh ls "qualcosa | altro" ecc. Il (opzionale)type -all "$1"
aggiunge anche le informazioni su $ 1: dice che lancerai un alias, una funzione, un comando, ecc. E fornisce informazioni dall'uomo "$ 1" se il comando $ 1 non aveva l'opzione "--help" (questo succede a volte)