Mit würden zsh
Sie 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 bash
kö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 readline
erweitern --help|grep
auf irgendeine Taste oder Tastenfolge drücken. Damit dies bash
nur für (und nicht für andere Anwendungen wie die gdb
Verwendung von readline) gilt, können Sie den in bind
bash eingebauten Befehl verwenden, der die bash
API 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 rc
oder es
dass die Verwendung readline- und wo das Sinn macht Bindung tun könnte , aber AFAICT, sie die nicht gesetzt rl_readline_name
Variable vor dem Aufruf , readline
so dass Sie nicht in der Lage sein werden , einige hinzufügen $if
für sie Aussagen (sie als würde zeigen , other
wie 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)