ALPHACON BBSGość · pl
← Protipy

Protipy / Bash / Unix

echo 'PROMPT_COMMAND="history -a"' >> ~/.profile - aktualizuj ~/.bash_history na bieżąco

echo 'PROMPT_COMMAND="history -a"' >> ~/.profile

Wstęp

W zmiennej systemowej $PROMPT_COMMAND zawarte jest polecenie, które uruchamia się przed każdym wyświetleniem prompta w bashu. Dodanie tam polecenia history -a spowoduje w konsekwencji, że po zakończeniu wykonywania polecenia, trafi ono automatycznie do ~/.bash_history.

Warto jeszcze wiedzieć i mieć ustawione shopt -s histappend, które powoduje, ze historia jest dopisywana, a nie nadpisywana. Żeby sprawdzić status można uruchomić shopt -p histappend. W ogóle nie jest głupim pomysłem zapoznanie się z innymi opcjami basha: shopt -p.

I po co?

Może być to super wygodne, zwłaszcza przy częstej pracy z wieloma terminalami jednocześnie:

  • nawet po zabiciu sesji historia nie przepadnie, bo jest zapisywana na bieżąco,
  • w innej sesji/w innym terminalu możemy mieć dostęp do historii innych poprzez wczytanie od nowa aktualnego ~/.bash_history wykorzystując history -r.
  • <redteam> czyż to nie brzmi jak fajny backdor? </redteam> :)

Linki