Mit würden zshSie einen globalen Alias verwenden:
$ 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)
Mit bashkönnen Sie möglicherweise die Verlaufserweiterung verwenden, die bei der Syntaxanalyse der Shell früh genug eintritt, um eine Pipe zu ersetzen:
Füllen Sie den Verlauf mit dem Text, den Sie ersetzen möchten, und einem Sonderzeichen, das Sie sonst wahrscheinlich nicht verwenden (wie £hier auf meiner Tastatur):
$ --help $(: £)|grep
bash: --help: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Verwenden Sie dann die Verlaufserweiterung, um Folgendes abzurufen:
$ 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
Oder man könnte readlineerweitern --help|grepauf irgendeine Taste oder Tastenfolge drücken. Damit dies bashnur für (und nicht für andere Anwendungen wie die gdbVerwendung von readline) gilt, können Sie den in bindbash eingebauten Befehl verwenden, der die bashAPI für die Konfiguration darstellt readline, zum Beispiel in Ihrem ~/.bashrc:
bind '"^^": "--help|grep "'
Oder fügen Sie zu Ihrer ~/.inputrc(readline's Konfigurationsdatei) hinzu:
$if Bash
"^^": "--help|grep "
$endif
(es gibt auch andere Shells wie rcoder esdass die Verwendung readline- und wo das Sinn macht Bindung tun könnte , aber AFAICT, sie die nicht gesetzt rl_readline_nameVariable vor dem Aufruf , readlineso dass Sie nicht in der Lage sein werden , einige hinzufügen $iffür sie Aussagen (sie als würde zeigen , otherwie alle Anwendungen die readline verwenden, ohne ihren Anwendungsnamen anzugeben)).
Beachten Sie, dass Sie die Sekunde ^innerhalb einer halben Sekunde (standardmäßig) nach der ersten eingeben müssen, damit die Ersetzung erfolgt.
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}# daher könnten Sie: qh ls Größe, qh ls "etwas | anderes" usw. Das (optionale)type -all "$1"fügt auch die Information über $ 1 hinzu: es sagt, ob Sie einen Alias, eine Funktion, ein befehl usw. Und es gibt Informationen von Mann "$ 1" aus, wenn der Befehl $ 1 nicht die Option "--help" hatte (dies passiert manchmal)