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
- web · http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html — więcej o PROMPT_COMMAND,
- web · https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-History-Builtins — więcej o samym history,
- web · https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html — warto poznać shopt.