Cerca comandi nella cronologia con parole chiave discontinue


13

Mi chiedevo come cercare i comandi nella storia senza conoscere le prime lettere del comando?

Quando si cerca usando Ctrl- Rin bash, si devono dare le prime lettere del comando. Cosa succede se conosco solo alcuni personaggi nel mezzo, o alcuni all'inizio e alcuni nel mezzo?

Ad esempio, per cercare cat myfile, so solo che c'è atdentro, o call'inizio e mynel mezzo da qualche parte. le parole chiave devono essere posizionate continuamente. Ad esempio, in cat myfile, vorrei cercare entrambi ce my, ma Ctrl+Rnon consentirò di specificare entrambi contemporaneamente.


2
Uso sempre Ctrl-R e cerca automaticamente il testo centrale. Niente di speciale, ma nel tuo esempio basta scrivere my. Confermati RHEL4 e Cygwin.
Aaron D. Marasco,

@Tim: non ci hai provato, vero? Perché non cercare le lettere nel mezzo di un comando.
alex

1
@alex: in realtà volevo dire parole chiave che non sono posizionate in modo continuo. Ad esempio, in cat myfile, vorrei cercare entrambi ce my, ma Ctrl + R non consentirà di specificare entrambi contemporaneamente.
Tim

Risposte:


12

Se stai solo cercando di trovare la linea (per fare jogging sulla tua memoria) potresti semplicemente chiamare la parte del comando che ricordi:

history | grep "substring"

2
Come mai uso i sistemi * nix da oltre 5 anni e historyfino ad ora non sapevo del comando? Grazie!
GMA,

8

Bash ha solo una semplice ricerca di stringhe, per quanto posso vedere.

Considera di passare a zsh , che ha una ricerca con caratteri jolly della cronologia. history-incremental-pattern-search-backwarde history-incremental-pattern-search-forwardnon sono associati alle chiavi per impostazione predefinita, ma puoi associarli:

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

Quindi digitare Ctrl+X Ctrl+R ^c*my.


0

Apropos (1) dovrebbe anche restituire un uomo per il soggetto se l'uomo contiene quella parola. Whatis (1) restituisce solo corrispondenze assolute.

Per riferimento: Apropos == man -k Whatis == man -f

Questi due dovrebbero essere di grande aiuto, insieme ai caratteri jolly * e?


1
La domanda riguarda la ricerca nella cronologia dei comandi nel terminale ... (non la ricerca nelle pagine man) ... ma in una nota completamente separata, ho trovato utile la tua risposta, quindi +1 :)
Peter.O

.... Ah adorabile, mia cattiva su quell'unico amico.
baweaver,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.