Ich tue es <command> --help | grep <feature>
jeden Tag sehr, sehr oft. Ich habe mich gefragt, ob es möglich ist, so etwas zu machen ^^
, "--help | grep"
und dann mache ich Folgendes:
ls ^^ size
Das würde folgendes ausführen:
ls --help | grep size
bash
bash-expansion
Yukashima Huksay
quelle
quelle
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)-a
, sagt aber nichts über-l
oder aus-all
, aber die Funktion funktioniert.Mit würden
zsh
Sie einen globalen Alias verwenden: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):Verwenden Sie dann die Verlaufserweiterung, um Folgendes abzurufen:
Oder man könnte
readline
erweitern--help|grep
auf irgendeine Taste oder Tastenfolge drücken. Damit diesbash
nur für (und nicht für andere Anwendungen wie diegdb
Verwendung von readline) gilt, können Sie den inbind
bash eingebauten Befehl verwenden, der diebash
API für die Konfiguration darstelltreadline
, zum Beispiel in Ihrem~/.bashrc
:Oder fügen Sie zu Ihrer
~/.inputrc
(readline's Konfigurationsdatei) hinzu:(es gibt auch andere Shells wie
rc
oderes
dass die Verwendung readline- und wo das Sinn macht Bindung tun könnte , aber AFAICT, sie die nicht gesetztrl_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.quelle
Sie können Readline-Bindungen verwenden:
füge eine Zeile hinzu wie
zu Ihrer ~ / .inputrc
Drücken Sie dann in Ihrer Amtszeit ^ X ^ R und die Bindung wird aktiviert.
Das Keying
ls ^^
führt nun zuls --help | grep
.quelle
Verwenden Sie
less
, um die Hilfemeldung anzuzeigenMöglicherweise ist es hilfreich, den umgebenden Kontext der Zeilen zu sehen, die Ihrer Suchanfrage entsprechen.
Die Syntax zum Aufrufen dieser
bash
Funktion ähnelt der Funktionqh
in der Antwort von @ tgwtdt, wobei das erste Argument der zu überprüfende Befehl und das zweite Argument der Suchbegriff ist. Beispielsweise:Dies öffnet die vollständige Hilfemeldung in
less
, hebt jede Instanz des Suchbegriffs hervor und führt einen Bildlauf zur ersten Instanz des Suchbegriffs durch. Sie können dann drücken,n
um vorwärts zur nächsten Zeile mit dem Suchbegriff zu blättern,n
erneut zum nächsten usw. Um zu einer vorherigen Instanz zurückzukehren, drücken SieN
. Verwenden Sie dieHome
,End
,Page Up
,Page Down
,Up Arrow
, undDown Arrow
Tasten für die allgemeine Navigation. Drücken Sieq
oder,Q
um das Menü zu verlassenless
und zur Befehlszeile zurückzukehren.quelle
Ich mochte die Lösung von @tgwtdt, also habe ich sie ein bisschen verbessert.
Dies macht dasselbe, aber es geht ein wenig um Fehler und versucht auch, eingebaute Funktionen zu verarbeiten.
qh verwendet () anstelle von {}, daher sind qh1 () und out lokal (in einer Subshell).
quelle