Szukałem, ale nie znalazłem nic na ten temat. Szukam funkcjonalności w bash, używając terminala.
Dawno temu, kiedy miałem użytkownika w systemie Debian, a znajomy skonfigurował mnie z wygodną funkcją wyszukiwania historii (myślę, że wtedy użyłem tcsh), gdzie wpisałbym początek poprzedniego polecenia, strzałkę w górę, i wykonałby wyszukiwanie na podstawie ciągu częściowego.
Np. Jeśli moja historia to:
./script.pl
./script.pl arg1
cat output
cat output | grep yada
I typ .
, a następnie naciśnij przycisk strzałki w górę, to mi pokazać: ./script.pl arg1
. Naciśnij ponownie, aby wyświetlić ./script.pl
itd.
Bardzo, jakby to zrobił grep
.hash_history. Czy istnieje sposób na uzyskanie tej funkcjonalności?
Odpowiedzi:
Umieść następujące wiersze w swoim
~/.inputrc
:Linie zaczynające się od
#
są komentarzami. Nie pamiętam, co jest do tyłu, a co do przodu. Eksperymentuj z tym. Może musisz przełączać się do tyłu i do przodu.Trochę informacji w tle:
Bash używa readline do obsługi pytania.
~/.inputrc
to plik konfiguracyjny dla readline. Pamiętaj, że będzie to również miało zastosowanie w innym oprogramowaniu korzystającym z biblioteki readline, na przykład IPython .Przeczytaj instrukcję bash, aby uzyskać więcej informacji o readline. Tam możesz także znaleźć więcej poleceń readline związanych z historią .
Aby uzyskać kody ucieczki dla klawiszy strzałek, możesz wykonać następujące czynności:
cat
w terminalu (tylkocat
bez dalszych argumentów).^[[A
strzałka w górę i strzałka^[[B
w dół.^[
się\e
.źródło
$include /etc/inputrc
, najlepiej w pierwszym wierszu.Utwórz plik o nazwie setup_readline.sh w trybie 644 w /etc/profile.d/ z następującą zawartością, zaloguj się i sprawdź preferowane klucze:
Myślę, że to najlepszy sposób, aby to zrobić. Głównie, jeśli używasz systemów zarządzania konfiguracją, takich jak szef kuchni, marionetka itp
I konfiguracja systemu nadal nietknięta!
źródło
screen
. Dziwne jest to, że działają inne skróty .inputrc, ale nie te. Więc teraz używam obu rozwiązań.Ctrl + R daje taką funkcjonalność. Zacznij wpisywać częściowe polecenie, a pojawią się stare, którymi możesz poruszać się za pomocą strzałek w górę i w dół. Więcej informacji: http://www.nuxified.org/blog/ctrl_r_in_the_bash_shell
źródło
Ctrl+r
Aby wypełnić odpowiedź lesmana dotyczącą „~ / .inputrc”, którą powinienem utworzyć pod moim Trusty 14.04, sprawdź / dodaj w „~ / .bashrc” (pierwszy wiersz już istnieje w moim „~ / .bashrc”):
Jest to już wyjaśnione w języku francuskim w https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique .
źródło
Być może warto wypróbować https://github.com/dvorka/hstr, który zapewnia proste i wieloliniowe proste filtrowanie historii Bash, które oparte na danych (kiedy, jak często i długość poleceń ma znaczenie) - możesz użyć klawisze strzałek, aby łatwo poruszać się po historii:
Może być łatwo wiąże się Ctrl-ri / lubCtrl-s
źródło
Poniższe rozwiązanie łączy i rozszerza niektóre z wyżej wymienionych podejść: dodaj następujące wiersze do
~/.bash_aliases
pliku (nie ma takiej potrzeby~/.inputrc
), aby osiągnąć następujące zachowanie:Zaloguj się ponownie do powłoki (lub uruchom
source ./bash_aliases
), aby zastosować zmiany.źródło