Wyszukaj polecenia w historii za pomocą nieciągłych słów kluczowych

13

Zastanawiałem się, jak wyszukiwać polecenia w historii, nie znając kilku pierwszych liter polecenia?

Podczas wyszukiwania przy użyciu opcji Ctrl- Rw trybie bash należy podać kilka pierwszych liter polecenia. Co, jeśli znam tylko niektóre postacie na środku lub niektóre na początku, a niektóre na środku?

Na przykład, aby szukać cat myfile, wiem tylko, że jest atw nim, albo cna początku i mygdzieś pośrodku. słowa kluczowe muszą być stale pozycjonowane. Na przykład, cat myfilechciałbym wyszukać oba ci my, ale Ctrl+Rnie pozwolę na określenie obu jednocześnie.

Tim
źródło
2
Używam Ctrl-R cały czas i automatycznie przeszukuje środkowy tekst. Nic szczególnego, ale w twoim przykładzie wystarczy wpisanie my. RHEL4 i Cygwin potwierdzone.
Aaron D. Marasco,
@ Tim: tak naprawdę tego nie próbowałeś, prawda? Bo to nie szukaj literami w środku polecenia.
alex
1
@alex: Chciałem powiedzieć słowa kluczowe, które nie są pozycjonowane w sposób ciągły. Na przykład, cat myfilechciałbym wyszukać oba ci my, ale Ctrl + R nie pozwoli na określenie obu jednocześnie.
Tim

Odpowiedzi:

12

Jeśli chcesz po prostu znaleźć linię (aby pobudzić pamięć), możesz po prostu grep dla części zapamiętanego polecenia:

history | grep "substring"
jasonwryan
źródło
2
Jak to jest, że używam systemów * nix od ponad 5 lat i historydo tej pory nie wiedziałem o poleceniu? Dzięki!
GMA
8

Bash ma tylko proste wyszukiwanie ciągów, o ile widzę.

Rozważ przejście na zsh , który ma historię wyszukiwania symboli wieloznacznych. history-incremental-pattern-search-backwardi history-incremental-pattern-search-forwarddomyślnie nie są powiązane z kluczami, ale możesz je powiązać:

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward

Następnie wpisz Ctrl+X Ctrl+R ^c*my.

Gilles „SO- przestań być zły”
źródło
0

Apropos (1) powinien również zwrócić człowieka za podmiot, jeśli zawiera on to słowo. Whatis (1) zwraca tylko dopasowania bezwzględne.

Dla odniesienia: Apropos == man -k Whatis == man -f

Te dwa powinny być świetną pomocą, wraz z symbolami wieloznacznymi * i?

baweaver
źródło
1
Pytanie dotyczy przeszukiwania historii poleceń w terminalu ... (nie przeszukiwania stron podręcznika) ... ale w zupełnie osobnej notatce uznałem twoją odpowiedź za przydatną, więc +1 :)
Peter.O
.... Ach cudownie, mój zły na tego jednego partnera.
baweaver