Niektóre przypadki bash zmieniają historię poleceń, kiedy ponownie używasz i edytujesz poprzednie polecenie, inne najwyraźniej nie. Szukałem i szukałem, ale nie mogę znaleźć niczego, co mówi, jak zapobiec modyfikowaniu poleceń w historii, gdy są one ponownie używane i edytowane.
Są to pytania, takie jak ten , ale to zdaje się mówić, jak radzić sobie z historią edytowany. Dopiero niedawno natknąłem się na instancję bash, która edytuje historię po ponownym użyciu polecenia - wszystkie poprzednie powłoki bash, których użyłem, zostały (o ile zauważyłem) skonfigurowane tak, aby nie zmieniać historii, gdy ponownie używasz i edytuj polecenie. (Być może po prostu nie zwracałem należytej uwagi na moją historię muszli przez ostatnie 15 lat ...)
To chyba najlepsze pytanie: CZY mogę powiedzieć bash NIGDY nie modyfikować historii - a jeśli tak, to w jaki sposób?
set revert-all-at-newline onpytanie, które łączysz, nie rozwiązuje twojego problemu? Czy możesz pokazać, jak odtworzyć problem? Pamiętaj, że możesz również użyć zshdo zachowania bardziej zgodnego z tym, czego chcesz.
history -pjest czymś, co musiałbym zrobić dla każdego polecenia, którego chcę ponownie użyć - prawda? Jeśli tak, to nie do końca tego szukam. Jak wspomniałem, użyłem wystąpień bash, które nigdy nie modyfikują historii, gdy polecenie jest ponownie używane i edytowane.
revert-all-at-newlinejest dokładnie tym, czego potrzebuję. Jeśli edytuję polecenie i naciskam CTRL-C, aby je anulować, nie chcę też, aby wpłynęło to na historię. Nigdy wcześniej nie musiałem konfigurować bash, aby nie modyfikował historii, co jest częściowo powodem, dla którego jestem zdezorientowany, dlaczego czasami nowa instalacja zachowuje się w jeden sposób, a czasem w inny. Nawiasem mówiąc, w instancji, która nie edytuje historii przy ponownym użyciu polecenia, bind -V | grep revertwskazuje, że revert-all-at-newlinejest ustawione na „wyłączone”.
bash. Chodzi o readline. Istnieją różne implementacje readlinebiblioteki, a także ma własny zestaw ustawień (DUŻO z nich) i własny plik konfiguracyjny. Nie jestem pewien, czy jest to ustawienie, czy po prostu różnica w implementacji, ale powinieneś szukać w dokumentacji związanej z readline, a nie bash.
history -pgo do rozszerzenia historii bez wpływu na plik historii. Możesz zrobićhistory -sto samo i dołączyć do historii bez wykonania. Możesz zrobić,HISTIGNORE='start of a command I never want in history.*:command2.*'aby niektóre polecenia pozostały poza historią.