Możesz połączyć istniejące funkcje Bash z historią i wyszukiwaniem historii. Naciśnij, Ctrl-Raby rozpocząć przyrostowe wyszukiwanie do tyłu, a następnie zacznij wpisywać część ścieżki, która najprawdopodobniej będzie unikalna.
Możesz pisać litery, dopóki nie skończy się ostatnie cd
polecenie dotyczące tego katalogu, lub możesz nacisnąć Ctrl-Rponownie, aby wrócić do historii do następnego najnowszego polecenia pasującego do tego, co wpisałeś do tej pory.
Robię to cały czas.
W rzeczywistości robię krok dalej. Gdy zacznę odkrywać sekwencje poleceń, które warto zachować w historii, ale nie warto angażować się w skrypt powłoki, zaczynam je łączyć w łańcuchy &&
i ;
kombinatory, aby móc odwrócić wyszukiwanie podłańcucha tego jednego długiego polecenia, nacisnąć Enteri uruchomić całą sekwencję w pewnego razu.
Na przykład oto, jak zbudować i uruchomić jeden z moich programów podczas programowania:
$ ( cd .. ; make install ) && ./start_my_program
Robię to z katalogu instalacyjnego, który znajduje się pod katalogiem źródłowym najwyższego poziomu. Pakując część cd
, buduj i instaluj w podpowłoce, upewniam się, że bez względu na to, co się stanie podczas tego procesu, wrócę do mojej normalnej powłoki bez zmian. Tylko jeśli to się powiedzie (&&), uruchomię zbudowany i zainstalowany program. Mogę znaleźć w moim historii z tylko Ctrl-Rwtedy sta, że jest wszystko, czego zazwyczaj potrzeba do jednoznacznego znalezienia tej sekwencji poleceń.
Innym przykładem tego, jak korzystam z tego, jest sekwencja, w której buduje się RPM dla tego samego programu. Większość żmudnej pracy związana jest ze skryptami powłoki, ale nadal istnieje kilka poleceń, które normalnie musiałbym wpisać, aby wykonać całą pracę związaną z budowaniem i wdrażaniem wbudowanych RPM, których teraz rzadko muszę ponownie wpisywać, ponieważ Bash zachowuje dla mnie to w historii.
Połącz to wszystko z, export HISTSIZE=bignum
a shopt histappend
właśnie zbudowałeś pamięć poleceń słoni.
Innym rozwiązaniem, które kiedyś kodowałem, jest moja odpowiedź na inne pytanie tutaj . Może być konieczne dostosowanie go do twoich celów i obsługuje tylko cd
polecenia, podczas gdy opcja wyszukiwania historii działa wszędzie i dla każdego polecenia.