Esiste la funzione readline end-of-history, per impostazione predefinita mappata su M- >, ma se usata durante la ricerca inversa esce dal prompt di ricerca inversa.
Una possibile soluzione / trucco
Inizia la ricerca di stringhe
Invece, per usare la ricerca inversa, puoi usare history-search-backwarde history-search-forward(default non mappato), mappandoli su up/down(molto utili) nel tuo .inputrc:
# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward
Quindi, dopo aver digitato, è possibile invertire la ricerca premendo up
(anziché Ctrl+ R) e quando si desidera tornare alla fine della cronologia, è possibile utilizzare la end-of-historyfunzione premendo ( M- >)
In questo modo "La stringa di ricerca deve corrispondere all'inizio di una riga della cronologia ", quindi, se si cerca ls -ltr, è necessario digitare lse quindi premere il uptasto.
Ricerca sottostringa
se vuoi " La stringa di ricerca può corrispondere ovunque in una riga della cronologia " devi usare history-substring-search-forward
e history-substring-search-backward:
# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward
In questo modo, se si cerca ls -ltr, è possibile digitare ls, ma anche ltr, prima di premere up.
Riferimento: Manuale di riferimento di Bash - Comandi per la storia .
historyti mostrerà tutti i comandi bash effettuati ..